上手 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 界面配置

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/206939.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第三方实验室LIMS管理系统源码,asp.net LIMS源码

LIMS实验室信息管理系统源码 LIMS系统的功能根据实验室的规模和任务而有所不同&#xff0c;其系统主要功能包括:系统维护、基础数据编码管理&#xff0c;样品管理、数据管理、报告管理、报表打印、实验材料管理、设备管理等。它可以取代传统的手工管理模式而给检测实验室带来巨…

[跑代码]BK-SDM: A Lightweight, Fast, and Cheap Version of Stable Diffusion

Installation(下载代码-装环境) conda create -n bk-sdm python3.8 conda activate bk-sdm git clone https://github.com/Nota-NetsPresso/BK-SDM.git cd BK-SDM pip install -r requirements.txt Note on the torch versions weve used torch 1.13.1 for MS-COCO evaluation…

Xilinx Zynq-7000系列FPGA实现视频拼接显示,提供两套工程源码和技术支持

目录 1、前言免责声明 2、相关方案推荐FPGA图像处理方案FPGA视频拼接叠加融合方案推荐 3、设计思路详解Video Mixer介绍 4、工程代码1&#xff1a;2路视频拼接 HDMI 输出PL 端 FPGA 逻辑设计PS 端 SDK 软件设计 5、工程代码2&#xff1a;4路视频拼接 HDMI 输出PL 端 FPGA 逻辑设…

maven 基础

maven常用命令 clean &#xff1a;清理 compile&#xff1a;编译 test&#xff1a;测试 package&#xff1a;打包 install&#xff1a;安装 maven坐标书写规范 <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</ar…

Javaweb之Vue组件库Element案例的详细解析

4.4.3.3 顶部标题 对于顶部&#xff0c;我们需要实现的效果如下图所示&#xff1a; 所以我们需要修改顶部的文本内容&#xff0c;并且提供背景色的css样式&#xff0c;具体代码如下&#xff1a; <el-header style"font-size:40px;background-color: rgb(238, 241, 24…

【腾讯云 HAI域探秘】借助高性能应用HAI——我也能使用【stable diffusion】制作高级视频封面了

目录 高性能应用服务HAI_GPU云服务器的申请与服务创建 官网地址&#xff1a;高性能应用服务HAI_GPU云服务器_腾讯云 通过高性能应用服务HAI——创建【stable diffusion】 WebUI效果&#xff1a; 服务器后台效果&#xff1a; stable-diffusion服务测试 启动接口服务 配置…

模拟算法【3】——1419.数青蛙

文章目录 &#x1f365;1. 题目&#x1f96e;2. 算法原理&#x1f361;3. 代码实现 &#x1f365;1. 题目 题目链接&#xff1a;1419. 数青蛙 - 力扣&#xff08;LeetCode&#xff09; 给你一个字符串 croakOfFrogs&#xff0c;它表示不同青蛙发出的蛙鸣声&#xff08;字符串 &…

17. Python 数据库操作之MySQL和SQLite实例

目录 1. 简介2. 使用PyMySQL2. 使用SQLite 1. 简介 数据库种类繁多&#xff0c;每种数据库的对外接口实现各不相同&#xff0c;为了方便对数据库进行统一的操作&#xff0c;大部分编程语言都提供了标准化的数据库接口&#xff0c;用户不需要了解每种数据的接口实现细节&#x…

Docker篇之docker部署harbor仓库

一、首先需要安装docker step1&#xff1a;安装docker #1、安装yun源 yum install -y yum-utils #2、配置yum源 yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo # 如果上面源不稳定的话&#xff0c;更换为下列的aliyun源 yu…

SpringBoot 整合 Neo4j 实战(头歌)

文章目录 第1关&#xff1a;认识 Spring DATA Neo4J任务描述相关知识Spring DATA Neo4J - 简介Spring JDBC / Spring ORM 模块的缺点&#xff1a;Spring 数据模块的优点&#xff1a;Spring 数据模块功能&#xff1a;Spring DATA Neo4j 模块的附加功能&#xff1a; Spring DATA …

Modbus RTU协议及modbus库函数使用

一、与Modbus TCP的区别 在一般工业场景使用modbus RTU的场景还是更多一些&#xff0c;modbus RTU基于串行协议进行收发数据&#xff0c;包括RS232/485等工业总线协议。 与modbus TCP不同的是RTU没有报文头MBAP字段&#xff0c;但是在尾部增加了两个CRC检验字节&#xff08;CRC…

【Web】UUCTF 2022 新生赛 个人复现

目录 ①websign ②ez_rce ③ez_upload ④ez_unser ⑤ezsql ⑥ezpop ⑦funmd5 ⑧phonecode ⑨ezrce ①websign 右键打不开&#xff0c;直接抓包发包看源码 ②ez_rce “反引号” 在PHP中会被当作SHELL命令执行 ?codeprintf(l\s /); ?codeprintf(ta\c /ffffffffffl…

特征变换1

编译工具&#xff1a;PyCharm 有些编译工具不用写print可以直接将数据打印出来&#xff0c;pycharm需要写print才会打印出来。 概念 1.特征类型 特征的类型&#xff1a;“离散型”和“连续型” 机器学习算法对特征的类型是有要求的&#xff0c;不是任意类型的特征都可以随意…

Spring RabbitMQ那些事(2-两种方式实现延时消息订阅)

目录 一、序言二、死信交换机和消息TTL实现延迟消息1、死信队列介绍2、代码示例(1) 死信交换机配置(2) 消息生产者(3) 消息消费者 3、测试用例 三、延迟消息交换机实现延迟消息1、安装延时消息插件2、代码示例(1) 延时消息交换机配置(2) 消息生产者(3) 消息消费者 3、测试用例 …

set和map + multiset和multimap(使用+封装(RBTree))

set和map 前言一、使用1. set(1)、模板参数列表(2)、常见构造(3)、find和count(4)、insert和erase(5)、iterator(6)、lower_bound和upper_bound 2. multiset3. map(1)、模板参数列表(2)、构造(3)、modifiers和operations(4)、operator[] 4. multimap 二、封装RBTree迭代器原理R…

科技与教育:未来教育的新趋势

在21世纪&#xff0c;科技的快速发展正在深刻地改变教育行业。从在线学习平台到虚拟现实教室&#xff0c;科技为教育带来了革命性的变化。本文将探讨科技如何影响现代教育&#xff0c;并预测未来教育的发展趋势。 一、科技在教育中的应用 在线学习平台&#xff1a;通过平台如C…

JSON 与 FastJSON

JSON 与 FastJSON JSON JavaScript Object Notation&#xff08;JavaScript 对象表示法&#xff09;是目前最常用的执行对象序列化的方式。 虽然 json 最初是为了在 JavaScript 语言中使用的&#xff0c;但实际上 json 本身跟语言没有任何关系&#xff0c;各种编程语言都可以使…

微服务--08--Seata XA模式 AT模式

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 分布式事务Seata 1.XA模式1.1.两阶段提交1.2.Seata的XA模型1.3.优缺点 AT模式2.1.Seata的AT模型2.2.流程梳理2.3.AT与XA的区别 分布式事务 > 事务–01—CAP理论…

Flutter使用flutter_gen管理资源文件

pub地址&#xff1a; https://pub.dev/packages/flutter_gen 1.添加依赖 在你的pubspec.yaml文件中添加flutter_gen作为开发依赖 dependencies:build_runner:flutter_gen_runner: 2.配置pubspec.yaml 在pubspec.yaml文件中&#xff0c;配置flutter_gen的参数。指定输出路…

msvcp140.dll的解决方法有哪些。详细解析五种可以修复msvcp140.dll丢失的方法

引言&#xff1a; 在日常使用电脑的过程中&#xff0c;我们可能会遇到一些错误提示&#xff0c;其中之一就是“msvcp140.dll丢失”。那么&#xff0c;什么是msvcp140.dll文件&#xff1f;它的作用是什么&#xff1f;当它丢失时会对电脑产生什么影响&#xff1f;本文将详细介绍…