prometheus基础

五十岚2022年11月7日
大约 2 分钟

prometheus 的基础概念及使用

Prometheus

1. 概念

Prometheusopen in new window 是由 SoundCloud 开源监控告警解决方案,从 2012 年开始编写代码,再到 2015githubopen in new window 上开源以来,已经吸引了 12k+ 关注,以及很多大公司的使用;2016Prometheus 成为继 k8s 后,第二名 CNCF(Cloud Native Computing Foundationopen in new window) 成员。作为新一代开源解决方案,很多理念与 Google SRE 运维之道不谋而合。

特点

  • 多维数据模型以及由 metrics 名和一组 key/value 标签组成的时序数据
  • 在多维度上灵活且强大的查询语言(PromQlopen in new window)
  • 不依赖分布式存储,支持单主节点工作
  • 通过基于 HTTPpull 方式采集时序数据
  • 支持通过 Pushgateway 进行时序数据跨网关推送(pushing time seriesopen in new window)
  • 支持通过服务发现或者静态配置去获取要采集的目标服务器
  • 支持多种可视化图表及仪表盘(Grafanaopen in new window)

构成

  • Prometheus 主服务器,用来收集和存储时间序列数据
  • 用于应用程序埋点的 client 代码库
  • 用于短时 jobspush gateway
  • 特殊用途的数据收集工具包 exporter包括 HAProxyStatsDGanglia )
  • 用于报警的 AlertManager
  • 命令行查询工具
  • Prometheus Dashboard 展现的绝佳工具 Grafana

大部分 Prometheus 组建都由 go 实现,这使它们易于构建和部署为静态的二进制文件。

架构图

Prometheus 直接或通过 Pushgateway 从各个 job 中爬取时序数据。它在本地存储所有的样品,对这些数据运行规则进行过滤、汇总并记录新的时序数据,同时可以从现有数据生成警报。Grafana 或其它 API 可以将所采集的数据用于可视化展示。

能做什么

Prometheus 可以很好地记录任何纯数字时间序列。它既适用于以服务器为中心的监控,也适用于高度动态的面向服务的体系结构的监控。在微服务的世界中,它支持多维数据收集和查询是一个独特的优势。

不能做什么

Prometheus 的价值在于可靠性,即使在某些时间节点收集失败情况下,您也可以始终查看有关系统的统计信息。如果您需要**100%**的准确性(例如按请求计费),Prometheus 并不是一个好的选择,因为收集的数据可能不够详细和完整。在这种情况下,您最好使用其他系统来收集和分析数据以进行计费,Prometheus 则可以进行其他监控。

2. Metrics

2.1 类型

Exporter

exporteropen in new window

prometheus/client_pythonopen in new window

上次编辑于: 2023/1/9 06:55:55