Prometheus监控(二)

news/2024/5/19 0:03:43 标签: prometheus

文章目录

    • 特点
      • 易于管理
      • 监控服务的内部运行状态
      • 强大的数据模型
      • 强大的promSQL查询语言
      • 高效
      • 可扩展
      • 易于集成
      • 可视化
      • 开放性

特点

Prometheus是一个开源的完整监控解决方案,其对传统监控系统的测试告警模型进行了彻底的颠覆,形成了基于中央化规则计算、统一分析和告警的心模型。其具有以下几个特点

易于管理

  • Prometheus的核心文件只有一个二进制文件,并没有过多的第三方库的引入。需要的是一个本地磁盘,因此不会有级联故障的出现
  • 消息队列采用pull模型,可以将监控系统部署在任何地方(本地电脑、开发环境、测试环境)等
  • 对于一些特殊的复杂情景,Prometheus可以使用service discovery服务发现的能力来实现动态管理监控目标

监控服务的内部运行状态

Prometheus监控鼓励用户监控服务的内部运行状态,这点不同于nagios监控。也是基于Prometheus丰富的client库,使得用户可以轻松在应用中获取Prometheus的支持,以此获取对服务和应用真实的内部运行状态。

强大的数据模型

Prometheus采集到的监控数据都会以 指标(metric)的形式保存在时间序列数据库(TSDB)中的,在其后会跟着用于描述该样本特征的标签。如下所示:

http_request_status{code='200',content_path='/api/path',environment='produme
nt'} => [value1@timestamp1,value2@timestamp2...]
http_request_status{code='200',content_path='/api/path2',environment='produm
ent'} => [value1@timestamp1,value2@timestamp2...]
##
##http_request_status:指标名称
##{code='200',content_path='/api/path',environment='produment'}:表示纬度的标签,基于这些 Labels 我们可以方便地对监控数据进行聚合,过滤,裁剪。
##[value1@timestamp1,value2@timestamp2...]:按照时间顺序存储的样本值

每一条时间序列由指标名称(Metrics Name)以及一组标签(Labels)唯一标识组成。
每条时间序列按照时间的先后顺序存储一系列的样本值。

强大的promSQL查询语言

Prometheus拥有一个强大的内置查询语言promSQL,通过它可以实现对监控数据的查询、聚合。同时,promSQL也被应用于监控数据的可视化(grafana)以及告警中。
通过 PromQL 可以轻松回答类似于以下问题:

  • 在过去一段时间中 95%应用延迟时间的分布范围?
  • 预测在 4 小时后,磁盘空间占用大致会是什么情况?
  • CPU 占用率前 5 位的服务有哪些?(过滤)

高效

对于监控系统而言,大量的监控任务必然会产生大量的监控数据,而Prometheus可以高效的处理这些数据,在单个Prometheus Server实例中,它能够做到:

  • 数以百万的监控指标
  • 每秒处理数十万的数据点

可扩展

可以在每个数据中心、每个团队运行独立的Prometheus Server。Prometheus Server对于联邦集群的支持,使得多个Prometheus实例产生一个逻辑集群

当单实例Prometheus Server处理的任务量过大时,通过功能分区(garading)和联邦分区(fedreration)可以对其进行扩展

易于集成

使用 Prometheus 可以快速搭建监控服务,并且可以非常方便地在应用程序中进行集成。目前支持:Java,JMX,Python,Go,Ruby,.Net,Node.js 等等语言的客户端SDK,基于这些 SDK 可以快速让应用程序纳Prometheus 的监控当中,或者开发自己的监控数据收集程序。
同时这些客户端收集的监控数据,不仅仅支持 Prometheus,还能支Graphite 这些其他的监控工具。

可视化

  • Prometheus Server 中自带的 Prometheus UI,可以方便地直接对数据进行查询,并且支持直接以图形化的形式展示数据。同时 Prometheus 还提供了一个独立的基于Ruby On Rails 的 Dashboard 解决方案 Promdash
  • 最新的 Grafana 可视化工具也已经提供了完整的 Prometheus 支持,基于 Grafana 可以创建更加精美的监控图标。
  • 基于 Prometheus 提供的 API 还可以实现自己的监控可视化 UI。

开放性

对于 Prometheus 来说,使用 Prometheus 的 client library 的输出格式不止支持Prometheus 的格式化数据,也可以支持输出其它监控系统的格式化数据,比如 Graphite。
因此甚至可以在不使用 Prometheus 的情况下,采用 Prometheus 的 client library 来让应用程序支持监控数据采集。


http://www.niftyadmin.cn/n/4980890.html

相关文章

【Linux】序列化与反序列化

目录 前言 什么是应用层? 再谈"协议" 什么是序列化和反序列化 网络版计算器 整体流程实现 Sock.hpp的实现 TcpServer.hpp的实现 Protocol.hpp的实现 CalServer.cc的编写 CalClient.cc的编写 整体代码 前言 本章是属于TCP/UDP四层模型中的第一层…

Programming abstractions in C阅读笔记:p130-p131

《Programming Abstractions In C》学习第52天,p130-p131,总结如下: 一、技术总结 1. pig latin game 通过pig latin game掌握字符复制,指针遍历等操作。 /** 输入:字符串,这里采用书中坐着自定义的get…

企业补丁管理必备的11个关键步骤

补丁管理是发布和部署软件更新的持续过程,最常见的是解决安全和功能问题。但要做好补丁管理,就必须具备一个详细的、可重复的过程。 建立有效的补丁管理流程对于保持系统的安全和稳定至关重要。补丁解决可能被黑客利用的漏洞;漏洞修复用于纠…

Android 13 Ethernet变更

Android13 有线变更 以太网相关的功能在Android12 和13 网络部分变化是不大的,Android11 到Android 12 网络部分无论是代码存放目录和代码逻辑都是有较多修改的,主要包括以下几个部分 限制了设置有线网参数设置接口方法 新增有线网开启关闭接口方法 新…

常见矿石材质鉴定VR实训模拟操作平台提高学员的学习效果和实践能力

随着“元宇宙”概念的不断发展,在矿山领域中,长期存在传统培训内容不够丰富、教学方式单一、资源消耗大等缺点,无法适应当前矿山企业发展需求的长期难题。元宇宙企业借助VR虚拟现实、web3d开发和计算机技术构建的一个虚拟世界,为用…

44、基于51单片机的热敏电阻的数字温度计(AD1674)(程序+Proteus仿真)

编号:44 基于51单片机的热敏电阻的数字温度计(AD1674) 功能描述: 本设计由51单片机最小系统AD1674模块热敏电阻模块液晶1602显示模块 1、主控制器是89C82单片机 2、AD1674模块模数转换器进行A/D转换,读取热敏电阻值电…

ElasticSearch基础知识汇总

文章目录 前言一、认识ElasticSearch1.正向索引和倒排索引2. MySql与ElasticSearc3.IK分词器 二、ES索引库操作1.mapping映射属性2.索引库的CRUD 三、ES文档库操作 前言 Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基…

生成动态柱状图【Python思路】

# 1.导包 import json from pyecharts.charts import Bar,Timeline from pyechasts.options import * from pyecharts.globals import ThemeType# 2.打开文件(此次数据格式.csv文件) f open("D:/data.csv","r",encoding"GB231…