目录

  • 1. 前言
  • 2. 初识Prometheus
    • 2.1 Prometheus单词
    • 2.2 什么是Prometheus?
    • 2.3 Prometheus架构
      • 2.3.1 架构图
      • 2.3.2 Prometheus Server
      • 2.3.3 Client Library
      • 2.3.4 Push Gateway
      • 2.3.5 Exporters
      • 2.3.6 Alertmanager
      • 2.3.7 工作流程
      • 2.3.8 Prometheus数据模型
      • 2.3.9 指标类型

1. 前言

进行Prometheus的学习,记录一下,方便后续查看。

2. 初识Prometheus

2.1 Prometheus单词

prometheus
英 [ prəˈmiθju:s ] 美 [ prəˈmiθiəs, -ˌθjus ]
n.<希神>普罗米修斯(造福于人类的神)

2.2 什么是Prometheus?

Prometheus是一个开源的监控报警系统。
它最初由SoundCloud开发。
2016年,Prometheus被纳入了由谷歌发起的Linux基金会旗下的云原生基金会( Cloud Native Computing Foundation),并成为仅次于Kubernetes的第二大开源项目。自此,它成为了一个独立的开源项目,独立于任何公司进行维护。

2.3 Prometheus架构

2.3.1 架构图

2.3.2 Prometheus Server

用于收集、存储和查询时间序列数据。通过静态配置文件管理监控目标,也可以配合使用动态服务发现的方式动态管理监控目标,并从这些监控目标中获取数据。它将采集到的数据按照时间序列的方式存储在本地磁盘当中或者外部的时序数据库中,可通过PromQL语言对数据的查询以及分析。

2.3.3 Client Library

为被监控的应用生成相应的指标(Metric)数据并暴露给Prometheus Server。当Prometheus Server 来拉取时,直接返回实时状态的指标数据。

2.3.4 Push Gateway

主要用于短期存在的Jobs。由于这类Jobs存在时间较短,可能在Prometheus Server来拉取数据之前就消失了。所以,Jobs可以直接向Push Gateway推送它们的指标数据,然后Prometheus Server再从Push Gateway拉取。

2.3.5 Exporters

用于暴露已有的第三方服务的指标数据通过HTTP服务的形式暴露给Prometheus Server,比如HAProxy、StatsD、Graphite等等。Prometheus Server通过访问该Exporter提供的Endpoint,即可获取到需要采集的监控数据。

2.3.6 Alertmanager

从Prometheus Server接收到告警后,会进行去除重复数据,分组,并路由到对收的接受方式,发出报警。Alertmanager的告警方式非常灵活,支持通过邮件、slack或钉钉等多种途径发出告警。

2.3.7 工作流程

  1. Prometheus Server直接从HTTP接口或者Push Gateway拉取指标(Metric)数据。
  2. Prometheus Server在本地存储所有采集的指标(Metric)数据,并在这些数据上运行规则,从现有数据中聚合和记录新的时间序列,或者生成告警。
  3. Alertmanager根据配置文件,对接收到的告警进行处理,发出报警。
  4. 在Grafana或其他API客户端中,可视化收集的数据。

2.3.8 Prometheus数据模型

Prometheus会将所有采集到的监控数据以时间序列的方式保存在内存数据库中,并且定时保存到硬盘上。每一条数据由以下三部分组成:

  • 指标(Metric):由指标名称和描述当前数据特征的标签组成。
    - 指标格式:<指标名称>{<标签名称>=<标签值>, …}
    - 示例:prometheus_http_requests_total{code=“200”,handler="/metrics"}
  • 时间戳(Timestamp):一个精确到毫秒的时间戳。
  • 数据值(Value):一个float64的浮点型数据表示当前数据的值。

2.3.9 指标类型

Prometheus定义了4种不同的指标类型(Metric Type):

  • Counter(计数器)
    Counter类型和计数器一样,只增不减(除非系统发生重置),一般在定义Counter类型指标的名称时推荐使用_total作为后缀。
  • Gauge(仪表盘)
    Gauge类型侧重于反应系统的某一个瞬时的值,这类指标的数据可增可减。
  • Histogram(直方图)
    Histogram类型由_bucket{le=""},_bucket{le="+Inf"}, _sum,_count 组成,主要用于表示一段时间范围内对数据进行采样,并能够对其指定区间以及总数进行统计,通常它采集的数据展示为直方图。
  • Summary(摘要)
    Summary类型由 {quantile="<φ>"},_sum,_count 组成,主要用于表示一段时间内数据采样结果,它直接存储了分位数据,而不是根据统计区间计算出来的。

Prometheus学习记录(一)相关推荐

  1. kubernetes 学习记录

    Kubernetes 学习记录 一.`kubernetes` 入门学习 1.1 部署第一个 `Deployment` 1.2 查看资源的命令 1.3 发布应用程序 1.3.1 暴漏服务的三种模式 1. ...

  2. Prometheus 学习之——本地存储 TSDB

    Prometheus 学习之--本地存储 TSDB 文章目录 Prometheus 学习之--本地存储 TSDB 前言 一.TSDB 核心概念 二.详细介绍 1.block 1)chunks 2)in ...

  3. Pytorch学习记录-torchtext和Pytorch的实例( 使用神经网络训练Seq2Seq代码)

    Pytorch学习记录-torchtext和Pytorch的实例1 0. PyTorch Seq2Seq项目介绍 1. 使用神经网络训练Seq2Seq 1.1 简介,对论文中公式的解读 1.2 数据预 ...

  4. HTML5与CSS3权威指南之CSS3学习记录

    title: HTML5与CSS3权威指南之CSS3学习记录 toc: true date: 2018-10-14 00:06:09 学习资料--<HTML5与CSS3权威指南>(第3版) ...

  5. springboot @cacheable不起作用_Springboot学习记录13 使用缓存:整合redis

    本学习记录的代码,部分参考自gitee码云的如下工程.这个工程有详尽的Spingboot1.x教程.鸣谢! https://gitee.com/didispace/SpringBoot-Learnin ...

  6. 【Cmake】Cmake学习记录

    Cmake学习记录 1.1 常例 add_library(gen_reference_infogen_reference_info/gen_reference_info.hgen_reference_ ...

  7. ASP.NETCore学习记录(一)

    ASP.NETCore学习记录(一) asp.net core介绍  Startup.cs  ConfigureServices  Configure  0. ASP.NETCore 介绍 ASP.N ...

  8. Android开发技术周报176学习记录

    Android开发技术周报176学习记录 教程 当 OkHttp 遇上 Http 2.0 http://fucknmb.com/2018/04/16/%E5%BD%93OkHttp%E9%81%87% ...

  9. add函数 pytorch_Pytorch学习记录-Pytorch可视化使用tensorboardX

    Pytorch学习记录-Pytorch可视化使用tensorboardX 在很早很早以前(至少一个半月),我做过几节关于tensorboard的学习记录. https://www.jianshu.co ...

最新文章

  1. ubuntu12.04手动安装virtualbox增强功能
  2. secureCrt个人操作手册
  3. n1Linux分辨率,看看诺基亚曾经的六款平板电脑 N1不是第一
  4. Python-使用jmespath来格式化处理json数据
  5. 电商设计没灵感,PSD分层模板,快速提升你的设计水平!
  6. PAT 1011 A+B 和 C(C语言)
  7. 手机端php mime设置,php,_如何使用MIME协议配合表单在iphone手机上下载文件?,php - phpStudy...
  8. chanlist.php,Nginx+FastCgi+Php 的工作机制
  9. Git学习笔记 - 钢钢更新
  10. 【AWVS12】安全漏洞扫描工具,使用详解
  11. 渗透测试工具——BurpSuite
  12. arm架构安装rxtx_Ubuntu下安装和配置RXTX实现串口通讯
  13. android网络编程案例,深入理解Android网络编程pdf 完整版
  14. html文本内容自动滚动,网页HTML代码滚动文字制作
  15. Molten 功能简介以及使用指南
  16. 变异凯撒(实验吧CTF题库-密码学)
  17. Atitit 算法之道 attilax著 1. 编码算法 3 1.1. Base64 htmlencode urlencode 3 2. Ui方面的算法 3 2.1. 软键盘算法 计算软键盘上下
  18. Android的Logcat命令详解:翻译Enabling logcat Logging
  19. ChatGPT横空出世,让人们看到了AI的更大创造力,聚光灯再度打到了OpenAI的身上
  20. JavaScript中的标签语句

热门文章

  1. 西太平洋最大金枪鱼供应商丰群水产通过海洋管理委员会认证
  2. 雅思写作---顾家北写作词伙班
  3. 企业在数字化管理中有哪些难点?如何有效解决?
  4. 浅谈python中使用C/C++:ctypes
  5. Count prime
  6. (附源码)计算机毕业设计SSM幼儿健康管理系统
  7. 关于kali无线网络配置
  8. 媒体查询适配代码 适配IOS等各类机型
  9. JavaScript基础学习——基础(三)
  10. “顺纹路,单向疏导”抚平皱纹按摩手法