当前位置: 首页 > news >正文

上手 Promethus - 开源监控、报警工具包

名词解释

Promethus 是什么

开源的【系统监控和警报】工具包

专注于:
1)可靠的实时监控
2)收集时间序列数据
3)提供强大的查询语言(PromQL),用于分析这些数据

功能:
1)【监控】各种资源、服务和应用程序的性能指标
2)支持多维数据模型和灵活的查询语言,从而 -> 用户,可以轻松地获取他们关心的信息

Actuator 是什么

监控 SpringBoot 应用程序

在Java生态系统中,Spring Boot 提供了 Actuator 模块,用于【监控和管理】应用程序

举例

1)监控应用程序健康状况:
Actuator 提供了 /actuator/health 端点,用于检查应用程序的健康状态。通过这个端点,你可以了解应用程序是否运行正常、数据库连接是否正常等。

2)查看应用程序信息:
使用 /actuator/info 端点,可以查看应用程序的自定义信息,比如构建版本、作者、描述等。

3)监控应用程序性能:
Actuator 提供了 /actuator/metrics 端点,用于查看应用程序的各种性能指标,比如内存使用情况、线程池状态、垃圾回收等

4)查看运行时环境:
使用 /actuator/env 端点,可以查看应用程序的环境属性,包括配置属性、系统属性等。

5)查看配置信息:
通过 /actuator/configprops 和 /actuator/beans 端点,可以查看应用程序的配置信息和所有注册的 Spring beans。

Promethus 和 Actuator 的关系是什么?

一句话:Actuator 为 Promethus 提供数据

Prometheus 和 Spring Boot Actuator 是两个不同的工具,但它们可以结合使用以提供更全面的监控和管理解决方案。

Spring Boot Actuator 提供了一些默认的监控端点,包括 /actuator/prometheus 端点,该端点可以为 Prometheus 提供可以抓取的指标数据

通过配置 Prometheus,来定期从这个端点获取数据,你可以将 Spring Boot 应用程序的监控数据,整合到 Prometheus 中,从而实现集中的监控和数据分析

这种结合使用的方式使得开发人员和运维团队可以在 Prometheus 中集成 Spring Boot 应用程序的监控数据,并在 Grafana 等可视化工具中创建仪表盘,以更好地了解应用程序的性能和运行状况。

AlertManager 是什么

报警用的

AlertManager 是由Prometheus社区开发的一个组件
用于处理:Prometheus 监控系统 生成的警报。它能够管理和路由警报发送通知以及对警报进行抑制和静音

Grafna是什么

用于【可视化和分析时序数据】的开源平台
它支持多种数据源,包括 Graphite、Prometheus、Elasticsearch、InfluxDB 等

Promethus 基本概念

官网地址

Promethus 工作方式:收集、存储 metrics(指标),并将其存储为:time series data(时间序列数据)
收集 metrics(指标)的方式:【抓取(scrape)】目标的 metrics HTTP endpoints

time series: 随时间变化的记录
Metrics : 在理解应用程序,为什么,以某种方式运行、方面,发挥着重要作用

由于 Prometheus 以同样的方式,公开其自身的数据,因此,它还可以,抓取和监控,其自身的健康状况

虽然,单纯收集 Promethus 自身的数据,没什么用,但是,它却是一个很好的,快速上手的例子

prometheus.yml 配置文件如下

global:scrape_interval:     15s # By default, scrape targets every 15 seconds.# 当与外部系统通信时,将这些标签,附加到所有:【time series(时间序列)】或【alert(警报)】上# Attach these labels to any time series or alerts when communicating with# external systems (federation, remote storage, Alertmanager).external_labels:monitor: 'codelab-monitor'# 一个抓取配置,在这里,仅包含一个要抓取的端点,就是 Prometheus 自身
# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.- job_name: 'prometheus'# 覆盖全局的(第二行的那个)scrape_interval# Override the global default and scrape targets from this job every 5 seconds.scrape_interval: 5sstatic_configs:- targets: ['localhost:9090']

查看抓取的端点

http://localhost:9090/targets
在这里插入图片描述
蓝色,代表成功抓取 Prometheus 自身的数据

Prometheus 自带浏览器

让我们看一下,Promethus 抓到的,它自己的数据

访问下面地址,来使用 Prometheus 自带的浏览器地址:
http://localhost:9090/graph

另外,从 http://localhost:9090/metrics 中,可以看到:Prometheus 所暴露的,自身的指标

prometheus_target_interval_length_seconds(目标,抓取,时间间隔)

在这里插入图片描述

Expression browser

expression browser,位于 Prometheus 服务器上的 /graph 中,允许您输入任何表达式,并以表格形式,或随时间变化的图表形式查看其结果

这主要用于【临时查询和调试】

对于图表,请使用 Grafana 或控制台模板

如下:(和上边一致)

在这里插入图片描述

配置规则(将抓取的数据,聚合到新的时间序列中)

对,聚合了上千条数据的【时间序列】,进行查询,会导致缓慢

为了提高效率,Prometheus 通过配置 recording rules.,将 表达式,提前记录到,新的、持久化的,时间序列中

一个例子:
假设,我对所记录的,每个实例上的,【per-second rate of cpu time (node_cpu_seconds_total) (cpu 使用率)】感兴趣,(但要保留 job, instance, mode 维度),并对其进行测量(5 分钟的时间窗口为维度)

我们可以使用

avg by (job, instance, mode) (rate(node_cpu_seconds_total[5m]))

对应 prometheus.rules.yml 文件

groups:
- name: cpu-noderules:- record: job_instance_mode:node_cpu_seconds:avg_rate5mexpr: avg by (job, instance, mode) (rate(node_cpu_seconds_total[5m]))

同时 prometheus.yml. 中新增

rule_files:- 'prometheus.rules.yml'

在这里插入图片描述

在这里插入图片描述

让 Grafana 支持 Prometheus

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
最终效果
在这里插入图片描述

alerting 概述

ALERTING OVERVIEW

Prometheus 中的 Alerting(报警) 分为两部分
1)Prometheus servers 中的 Alerting rules 将 alerts 发送给 Alertmanager
2)之后,Alertmanager 管理这些 alerts

alerts 包括:silencing, inhibition, aggregation
以及通过 email, on-call notification systems(呼叫通知系统)和聊天平台等方式,发送通知

设置 alerting 和 notifications 的主要步骤是:

  • 设置和配置 Alertmanager
  • 配置 Prometheus 与 Alertmanager 对话
  • 在 Prometheus 中创建警报规则

ALERTMANAGER

Alertmanager 用于处理 客户端应用(如 Prometheus Server)发出的 alerts
负责:deduplicating, grouping, and routing them to the correct receiver integration such as email, PagerDuty, or OpsGenie.
同样还负责:silencing and inhibition of alerts

下面介绍 Alertmanager 所实现的核心概念。 请参阅配置文档以了解如何更详细地使用它们。

Grouping

Grouping 将相似性质的 alerts 分类到 a single notification.
非常实用的场景:大规模停机,同时出发成百上千个警告

Inhibition

Inhibition:如果某些其他警报已经触发,则抑制某些警报的通知

举例:如果特定警报正在触发,Alertmanager 可以配置,与此集群相关的、所有其他警报静音
好处:防止无关警报出发

Silences

在给定时间内,简单地静音警报
基于 matchers 进行配置
检查 alert 是否与 等式 或 正则 匹配,是,则不会发出警报
在 Alertmanager Web 界面配置

相关文章:

上手 Promethus - 开源监控、报警工具包

名词解释 Promethus 是什么 开源的【系统监控和警报】工具包 专注于&#xff1a; 1&#xff09;可靠的实时监控 2&#xff09;收集时间序列数据 3&#xff09;提供强大的查询语言&#xff08;PromQL&#xff09;&#xff0c;用于分析这些数据 功能&#xff1a; 1&#xff0…...

Linux学习教程(第十二章 Linux系统管理)三

第十二章 Linux系统管理&#xff08;进程管理、工作管理和系统定时任务&#xff09;&#xff08;三&#xff09; 十九、Linux 定时执行任务&#xff08;at命令&#xff09; Linux at命令详解&#xff1a;定时执行任务 要想使用 at 命令&#xff0c;读者需提前安装好 at 软件…...

网络篇---第三篇

系列文章目录 文章目录 系列文章目录前言一、说一下HTTP的长连接与短连接的区别二、TCP 为什么要三次握手,两次不行吗?为什么?三、说一下 TCP 粘包是怎么产生的?怎么解决粘包问题的?前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大…...

tensorflow和pytorch的联系与区别

TensorFlow和PyTorch是两个流行的深度学习框架&#xff0c;它们在很多方面都有相似之处&#xff0c;因为它们都旨在解决相同的问题&#xff0c;即构建和训练神经网络。 以下是它们之间的一些联系&#xff1a; 1.深度学习框架&#xff1a; TensorFlow和PyTorch都是开源的深度学…...

为什么选择美国VPS服务器

企业、个人和组织都需要一个稳定高效的服务器来托管他们的网站、应用程序和数据。而对于中国用户来说&#xff0c;寻找一个性价比高的便宜美国VPS服务器&#xff0c;既能满足需求&#xff0c;又能节约成本&#xff0c;成为了一个非常重要的问题。 VPS即虚拟专用服务器&#xf…...

StarRocks Evolution:One Data,All Analytics

在 11 月 17 日举行的 StarRocks Summit 2023上&#xff0c;StarRocks TSC Member、镜舟科技 CTO 张友东详细介绍了 StarRocks 社区的发展情况&#xff0c;并全面解析了 StarRocks 的核心技术与未来规划&#xff1b;我们特意将他的精彩演讲整理出来&#xff0c;以帮助大家更深入…...

微信小程序富文本拓展rich-text

微信小程序富文本插件 功能介绍 支持解析<style>标签中的全局样式支持自定义默认的标签样式支持自动设置标题 若html中存在title标签,将自动把title标签的内容设置到页面的标题上,并在回调bindparse中返回,可以用于转发支持添加加载提示 可以在Parser标签内添加加载提…...

Postman:专业API测试工具,提升Mac用户体验

如果你是一名开发人员或测试工程师&#xff0c;那么你一定知道Postman。这是一个广泛使用的API测试工具&#xff0c;适用于Windows、Mac和Linux系统。今天&#xff0c;我们要重点介绍Postman的Mac版本&#xff0c;以及为什么它是你进行API测试的理想选择。 一、强大的功能和易…...

3.golang数组以及切片

数组 数组的声明 数组是具有相同 唯一类型 的一组以编号且长度固定的数据项序列。一个数组的表示形式为 T[n]。n 表示数组中元素的数量&#xff0c;T 代表每个元素的类型。 var a [3]int fmt.Println(a)var a[3]int 声明了一个长度为 3 的整型数组。数组中的所有元素都被自动…...

ElasticSearch02

ElasticSearch客户端操作 ElasticSearch 版本&#xff1a;7.8 学习视频&#xff1a;尚硅谷 笔记&#xff1a;https://zgtsky.top/ 实际开发中&#xff0c;主要有三种方式可以作为elasticsearch服务的客户端&#xff1a; 第一种&#xff0c;使用elasticsearch提供的Restful接口…...

比特币挖矿过程,双花攻击,女巫攻击,DID聚合身份

目录 比特币挖矿过程 双花攻击 双花攻击的原理 双花攻击的类型 双花攻击防范措施:...

加载minio中存储的静态文件html,不显示样式与js

问题描述:点击链接获取的就是纯静态文件,但是通过浏览器可以看到明明加载了css文件与js文件 原因:仔细看你会发现加载css文件显示的contentType:text/html文件,原来是minio上传文件时将所有文件的contentType设置成了text/html 要在上传时指定文件,根据文章的类型指定的Conten…...

kali安装内网穿透工具并实现ssh远程连接

文章目录 1. 启动kali ssh 服务2. kali 安装cpolar 内网穿透3. 配置kali ssh公网地址4. 远程连接5. 固定连接SSH公网地址6. SSH固定地址连接测试 简单几步通过[cpolar 内网穿透](cpolar官网-安全的内网穿透工具 | 无需公网ip | 远程访问 | 搭建网站)软件实现ssh远程连接kali 1…...

机器学习探索计划——KNN实现Iris鸢尾花分类

文章目录 1. 加载数据集2.拆分数据集3.预测4.评价 1. 加载数据集 import numpy as np from sklearn import datasetsiris datasets.load_iris()iris.keys()dict_keys([data, target, frame, target_names, DESCR, feature_names, filename, data_module])X iris.data X.shap…...

鸿蒙(HarmonyOS)应用开发——装饰器

简介 ArkTS是HarmonyOS优选的主力应用开发语言。它在TypeScript&#xff08;简称TS&#xff09;的基础上&#xff0c;扩展了声明式UI、状态管理等相应的能力&#xff0c;让开发者可以以更简洁、更自然的方式开发高性能应用。TS是JavaScript&#xff08;简称JS&#xff09;的超…...

使用脚手架创建Vue3项目

✅作者简介&#xff1a;大家好&#xff0c;我是Leo&#xff0c;热爱Java后端开发者&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609; &#x1f34e;个人主页&#xff1a;Leo的博客 &#x1f49e;当前专栏&#xff1a; Vue ✨特色专栏&#xff1a; MySQL学习…...

SpringBoot 2 系列停止维护,Java8 党何去何从?

SpringBoot 2.x 版本正式停止更新维护&#xff0c;官方将不再提供对 JDK8 版本的支持 SpringBoot Logo 版本的新特性 3.2 版本正式发布&#xff0c;亮点包括&#xff1a; 支持 JDK17、JDK21 版本 对虚拟线程的完整支持 JVM Checkpoint Restore&#xff08;Project CRaC&…...

Cadence Vmanager vsif文件编写指南(持续更新...)

目录 1.NTF格式介绍 1.1.1 {属性&#xff1a;值}定义 1.1.2类别 1.1.3语法 2.vsif文件中有效的container 2.1 session {…} 1.NTF格式介绍 Cadence的Vmanager工具采用vsif类型的文件作为regression的输入文件&#xff0c;采用vplanx/csv类型的文件作为vplan的输入文件&am…...

html实现我的故乡,城市介绍网站(附源码)

文章目录 1. 我生活的城市北京&#xff08;网站&#xff09;1.1 首页1.2 关于北京1.3 北京文化1.4 加入北京1.5 北京景点1.6 北京美食1.7 联系我们 2.效果和源码2.1 动态效果2.2 源代码 源码下载 作者&#xff1a;xcLeigh 文章地址&#xff1a;https://blog.csdn.net/weixin_43…...

外汇天眼:嘿!他们说这个比赛有手就能赢,你敢不敢来试试?

在外汇市场的波涛汹涌中&#xff0c;一场引人注目的模拟交易比赛正在悄然展开&#xff0c;参与者们纷纷聚焦&#xff0c;听所有获奖的参赛投资者们说&#xff1a;这个比赛有手就能赢&#xff0c;你敢不敢来试试&#xff1f; 比赛规则简单而富有挑战性。你只需在外汇天眼APP开通…...

【2026年最新600套毕设项目分享】校园水电费管理微信小程序(30004)

有需要的同学&#xff0c;源代码和配套文档领取&#xff0c;加文章最下方的名片哦 一、项目演示 项目演示视频 二、资料介绍 完整源代码&#xff08;前后端源代码SQL脚本&#xff09;配套文档&#xff08;LWPPT开题报告/任务书&#xff09;远程调试控屏包运行一键启动项目&…...

Ostrakon-VL-8B模型微调入门:使用自定义餐饮数据集

Ostrakon-VL-8B模型微调入门&#xff1a;使用自定义餐饮数据集 你是不是也遇到过这样的情况&#xff1f;看到一个很棒的视觉语言模型&#xff0c;它能识别各种通用物体&#xff0c;但当你拿一张特色地方菜或者自家餐厅的新品图片给它看时&#xff0c;它却常常“答非所问”&…...

Z-Image-Turbo-辉夜巫女高性能部署:Xinference量化加载+Gradio并发优化实测

Z-Image-Turbo-辉夜巫女高性能部署&#xff1a;Xinference量化加载Gradio并发优化实测 1. 项目简介 Z-Image-Turbo-辉夜巫女是基于Z-Image-Turbo模型的Lora版本&#xff0c;专门用于生成高质量的辉夜巫女风格图片。这个镜像通过Xinference框架实现了高效的模型部署&#xff0…...

嵌入式轻量级RPC框架:串口远程调用与调试技术

1. RPC库技术解析&#xff1a;面向嵌入式系统的轻量级远程过程调用框架1.1 设计背景与工程定位RPC&#xff08;Remote Procedure Call&#xff09;在嵌入式系统中并非传统服务器场景下的高吞吐通信协议&#xff0c;而是一种面向调试、配置与现场维护的低带宽、高语义、强交互性…...

如何用双路PWM实现16bit DAC输出?MCU音频信号处理实战

如何用双路PWM实现16bit DAC输出&#xff1f;MCU音频信号处理实战 在嵌入式音频开发中&#xff0c;高精度DAC输出往往是提升音质的关键。但当你手头的MCU主频有限&#xff0c;内置DAC分辨率不足时&#xff0c;如何突破硬件限制&#xff1f;本文将带你深入双路PWM分频叠加技术的…...

NBIO Websocket支持:通过Autobahn测试套件的完整指南

NBIO Websocket支持&#xff1a;通过Autobahn测试套件的完整指南 【免费下载链接】nbio Pure Go 1000k connections solution, support tls/http1.x/websocket and basically compatible with net/http, with high-performance and low memory cost, non-blocking, event-drive…...

Verdi 快速上手:信号追踪与波形调试实战

1. Verdi工具入门&#xff1a;数字IC调试的瑞士军刀 刚接触数字IC设计时&#xff0c;最让我头疼的就是仿真波形调试。密密麻麻的信号线像一团乱麻&#xff0c;根本不知道从哪里下手。直到同事推荐了Verdi&#xff0c;这个被业界称为"调试神器"的工具彻底改变了我的工…...

抖音批量下载工具架构设计与部署实践

抖音批量下载工具架构设计与部署实践 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback support. 抖音批量下载工具&#x…...

CentOS 7.7(基于 RHEL 7 系列)中,账号管理与权限控制是系统安全管理【20260408】001篇

文章目录 一、用户与组管理(本地账号) 1. 用户管理命令 2. 组管理命令 3. 关键配置文件 二、权限控制机制 1. 传统 Linux 权限(UGO + rwx) 2. 特殊权限(慎用) 3. 访问控制列表(ACL)— 突破传统 UGO 限制 三、sudo 权限精细化管理(推荐替代 `su`) 1. 配置原则 2. 最小…...

树莓派Ubuntu20.04静态IP配置后DNS解析失败的排查与修复

1. 静态IP配置后的典型症状 刚给树莓派刷完Ubuntu 20.04系统&#xff0c;配置静态IP本来是为了远程连接更稳定&#xff0c;结果发现浏览器打不开网页&#xff0c;终端里ping百度也提示"暂时无法解析域名"。右上角WiFi图标上那个黄色问号特别扎眼——这场景我太熟悉了…...