Prometheus

Prometheus是一套开源的监控&报警&时间序列数据库的组合。对我来说,它跟 zabbix 最大的区别就是它没有模板,所有的告警规则都得自己写。。。

它有一套查询命令(promQL)可以进行很多的运算。

组成及架构

介绍以下几个常用的组件:

  • Prometheus Server: 用于收集和存储时间序列数据。

  • exporters: 用于暴露已有的第三方服务的 metrics 给 Prometheus。

  • Alertmanager: 从 Prometheus server 端接收到 alerts 后,会进行去除重复数据,分组,并路由到对收的接受方式,发出报警。常见的接收方式有:电子邮件,微信、钉钉等。

大概流程:

  1. Prometheus Server 定时去目标上抓取 metrics ,如配置好的 jobs、exporters ,每个目标需要暴露一个 http 接口给它定时抓取。
  2. Prometheus Server 存储收集到的 metrics ,并运行已定义好的 alert.rules,记录新的时间序列或者向 Alertmanager 推送警报。
  3. Alertmanager 根据配置文件,对接收到的告警进行处理,并发出告警。
  4. Grafana 使用 Prometheus 作为数据源,根据收集到的 metrics 生成可视化数据

概念

数据模型

Prometheus 存储的数据为时间序列,由 metrics (指标名称) 和 label (一个或多个标签)组成。不同的 label 表示不同的时间序列。

每条时间序列是由唯一的指标名称和一组标签(key=value)的形式组成。

  • 指标名称: 一般用于表示 metrics 的功能,例如 probe_http_status_code 这样
  • 标签: 就是对一条时间序列不同维度的识别了。例如probe_http_status_code{instance="https://baidu.com",job="blackbox_http"}
四种数据类型(抄的)
  • Counter

一种累加的 metric,典型的应用如:请求的个数,结束的任务数, 出现的错误数等等。

例如,查询 http_requests_total{method="get", job="Prometheus", handler="query"} 返回 8,10 秒后,再次查询,则返回 14。

  • Gauge

一种常规的 metric,典型的应用如:温度,运行的 goroutines 的个数。

可以任意加减。

例如:go_goroutines{instance="172.17.0.2", job="Prometheus"} 返回值 147,10 秒后返回 124。

  • Histogram

可以理解为柱状图,典型的应用如:请求持续时间,响应大小。

可以对观察结果采样,分组及统计。

例如,查询 http_request_duration_microseconds_sum{job="Prometheus", handler="query"} 返回的结果

Summary

类似于 Histogram, 典型的应用如:请求持续时间,响应大小。

提供观测值的 count 和 sum 功能。

提供百分位的功能,即可以按百分比划分跟踪结果。

instance 和 jobs

instance: 一个单独 scrape 的目标, 一般对应于一个进程。

jobs: 一组同种类型的 instances(主要用于保证可扩展性和可靠性),例如:

job 和 instance 的关系

  - job_name: 'pxc'
static_configs:
- targets: ['172.18.201.66:9100', '172.18.201.67:9100', '172.18.201.68:9100']

Prometheus(1) 概念的更多相关文章

  1. prometheus基本概念(思维导图)

    参考文章: prometheus词汇表 prometheus的summary和histogram指标的简单理解

  2. 第七模块 :微服务监控告警Prometheus架构和实践

    119.监控模式分类~1.mp4 logging:日志监控,Logging 的特点是,它描述一些离散的(不连续的)事件. 例如:应用通过一个滚动的文件输出 Debug 或 Error 信息,并通过日志 ...

  3. 一步步教你用Prometheus搭建实时监控系统系列(一)——上帝之火,普罗米修斯的崛起

    上帝之火 本系列讲述的是开源实时监控告警解决方案Prometheus,这个单词很牛逼.每次我都能联想到带来上帝之火的希腊之神,普罗米修斯.而这个开源的logo也是火,个人挺喜欢这个logo的设计. 本 ...

  4. 一步步教你用Prometheus搭建实时监控系统系列(二)——详细分析拉取和推送两种不同模式

    前言 本系列着重介绍Prometheus以及如何用它和其周边的生态来搭建一套属于自己的实时监控告警平台. 本系列受众对象为初次接触Prometheus的用户,大神勿喷,偏重于操作和实战,但是重要的概念 ...

  5. 部署Prometheus+Grafana监控

    Prometheus 1.不是很友好,各种配置都手写 2.对docker和k8s监控有成熟解决方案 Prometheus(普罗米修斯) 是一个最初在SoudCloud上构建的监控系统,开源项目,拥有非 ...

  6. Python调用Prometheus监控数据并计算

    Prometheus是什么 Prometheus是一套开源监控系统和告警为一体,由go语言(golang)开发,是监控+报警+时间序列数 据库的组合.适合监控docker容器.因为kubernetes ...

  7. Prometheus学习系列(三)之Prometheus 概念:数据模型、metric类型、任务、实例

    前言 本文来自Prometheus官网手册1.Prometheus官网手册2 和 Prometheus简介 说明 Prometheus从根本上存储的所有数据都是时间序列: 具有时间戳的数据流只属于单个 ...

  8. prometheus(1)之核心概念

    个人理解:prometheus核心在于 1.prom数据类型的理解 (4钟数据类型 与常用的promQL语法 其实很容易) 2.各种服务发现与正则拼接(服务发现的拼接其实官方定义好的 理解就行) 3. ...

  9. 使用 Prometheus + Grafana 对 Kubernetes 进行性能监控的实践

    1 什么是 Kubernetes? Kubernetes 是 Google 开源的容器集群管理系统,其管理操作包括部署,调度和节点集群间扩展等. 如下图所示为目前 Kubernetes 的架构图,由 ...

随机推荐

  1. iOS面试-关于秒退

    1 为什么很多的 iOS app 都有秒退现象?有什么好方法避免它?有哪些好方法避免这种现象吗? 问题里的“秒退”如果我没理解错,应该是指程序显示完默认启动图片后,在初始化阶段就崩溃了(也可以叫“闪退 ...

  2. STM32命名规则解析

  3. node.js 安装配置笔记

    先设置 NODEJS_MODULES 系统环境变量,我在这里设置为:D:\Program Files\nodejs\node_modules, 然后修改 npm.cmd 文件中 SET "N ...

  4. springmvc 参数解析绑定原理

    handlerMethodArgumentResolver:方法参数解析器接口,这个接口是springmvc参数解析绑定的核心接口.不同的参数类型绑定都是通过实行这个接口来实现.也可以通过实现这个接口 ...

  5. Spring框架IOC和AOP介绍

    说明:本文部分内容参考其他优秀博客后结合自己实战例子改编如下 Spring框架是个轻量级的Java EE框架.所谓轻量级,是指不依赖于容器就能运行的.Struts.Hibernate也是轻量级的. 轻 ...

  6. poj1915(双向bfs)

    题目链接:https://vjudge.net/problem/POJ-1915 题意:求棋盘上起点到终点最少的步数. 思路:双向广搜模板题,但玄学的是我的代码G++会wa,C++过了,没找到原因QA ...

  7. 服务器做raid1后安装windows server 2012遇到的问题

    问题: 在服务器上用2个300G的硬盘做了raid1之后,其他的盘做的raid5,安装windows server 2012的时候,到安装界面发现raid1的那个盘是600G,而且在这个磁盘上安装操作 ...

  8. 树链剖分 树剖求lca 学习笔记

    树链剖分 顾名思义,就是把一课时分成若干条链,使得它可以用数据结构(例如线段树)来维护 一些定义: 重儿子:子树最大的儿子 轻儿子:除了重儿子以外的儿子 重边:父节点与重儿子组成的边 轻边:除重边以外 ...

  9. dede添加自定义变量不显示

    dedecms前端无法调用自定义变量要怎么解决,登录他的网站后台看了一下,自定义变量已经添加了,也写入了数据库表中,但是就是前台没办法调用出来,后面想想可能是文件权限不够,具体是哪个文件呢?查了相关文 ...

  10. fiddler笔记:TimeLine时间轴选项卡

    1.TimeLine选项卡介绍 TimeLine选项卡支持使用"瀑布"模型查看1~250个选中的Session.主要用于帮助性能分析和理解请求之间的关联.选项卡的主体内容是数据流视 ...