美文网首页
Prometheus(一)背景

Prometheus(一)背景

作者: 咩咩的毛球 | 来源:发表于2019-07-17 10:48 被阅读0次

一、背景

  1. 由SoundCloud开发的开源监控报警系统和时序列数据库(TSDB)。Prometheus使用Go语言开发,是Google BorgMon监控系统的开源版本。
  2. Kubernetes —— 容器集群管理系统
    Prometheus —— 用于 Kubernetes 集群的监控系统中
  3. Prometheus 特点:
    (1) 强大的多维度数据模型:
    • 时间序列数据通过 metric 名和键值对来区分。
    • 所有的 metrics 都可以设置任意的多维标签。
    • 数据模型更随意,不需要刻意设置为以点分隔的字符串。
    • 可以对数据模型进行聚合,切割和切片操作。
    • 支持双精度浮点类型,标签可以设为全 unicode。
      (2)灵活而强大的查询语句(PromQL):在同一个查询语句,可以对多个 metrics 进行乘法、加法、连接、取分数位等操作。
      (3)易于管理: Prometheus server 是一个单独的二进制文件,可直接在本地工作,不依赖于分布式存储。
      (4)高效:平均每个采样点仅占 3.5 bytes,且一个 Prometheus server 可以处理数百万的 metrics。
      (5)使用 pull 模式采集时间序列数据,这样不仅有利于本机测试而且可以避免有问题的服务器推送坏的 metrics。
      (6)可以采用 push gateway 的方式把时间序列数据推送至 Prometheus server 端。
      (7)可以通过服务发现或者静态配置去获取监控的 targets。
      有多种可视化图形界面。
      (8)易于伸缩。
  4. 注意:
    由于数据采集可能会有丢失,所以 Prometheus 不适用对采集数据要 100% 准确的情形。但如果用于记录时间序列数据,Prometheus 具有很大的查询优势,此外,Prometheus 适用于微服务的体系架构
  5. Prometheus 的主要模块包括:Prometheus server, exporters, Pushgateway, PromQL, Alertmanager 以及图形界面。


    Prometheus 架构图

工作流程

  • Prometheus server 定期从配置好的 jobs 或者 exporters 中拉 metrics,或者接收来自 Pushgateway 发过来的 metrics,或者从其他的 Prometheus server 中拉 metrics。
  • Prometheus server 在本地存储收集到的 metrics,并运行已定义好的 alert.rules,记录新的时间序列或者向 Alertmanager 推送警报。
  • Alertmanager 根据配置文件,对接收到的警报进行处理,发出告警。
  • 在图形界面中,可视化采集数据。

相关文章

网友评论

      本文标题:Prometheus(一)背景

      本文链接:https://www.haomeiwen.com/subject/aanflctx.html