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. AbstractQueuedSynchronizer 源码解读(转载)

    转载文章,拜读了一下原文感觉很不错,转载一下,侵删 链接地址:http://objcoding.com/2019/05/05/aqs-exclusive-lock/ Java并发之AQS源码分析(一) ...

  2. 【ARM-Linux开发】U-Boot启动过程--详细版的完全分析

    ---------------------------------------------------------------------------------------------------- ...

  3. flex布局时,vertical-align:middle无效

    flex布局,子元素内部vertical-align=middle无效,对文字的容器 display: flex; align-items: center;

  4. kafka producer 生产者客户端参数配置

    在生产者向broker发送消息时,需要配置不同的参数来确保发送成功. acks = all #指定分区中有多少副本必须收到这条消息,生产者才认为这条消息发送成功 acks = 0 #生产者发送消息之后 ...

  5. sysbench配置使用

    unzip sysbench-0.5.zipcd sysbench-0.5 #####sysbench下载:https://codeload.github.com/akopytov/sysbench/ ...

  6. Netty的学习

    看了几天高并发和NIO 今晚终于要开始学习Netty http://ifeve.com/netty5-user-guide/ Netty实现通信的步骤 1.创建两个NIO线程组,一个专门用于网络事件的 ...

  7. (MVC — — Demo)客户管理系统的开发日志

    点击一下 目录 第一步:搭建开发环境 第二步:层次包(按照三层架构思想写) 第四步:开发(utils)工具包 第四步:开发 Dao 层 第五步:开发 services 层 第六步:开发 factory ...

  8. 把人都送到房子里的最小花费--最小费用最大流MCMF

    题意:http://acm.hdu.edu.cn/showproblem.php?pid=1533 相邻的容量为inf,费用为1,S到m容量为1,费用为0 ,H到T容量为1,费用为0. 建图跑-最小费 ...

  9. Django-djangorestframework-渲染模块

    目录 渲染模块 渲染模块的效果 源码分析 如何自定义配置使用渲染类 自定义渲染模块 渲染模块 可以根据用户请求 URL 或 用户可接受的类型,筛选出合适的 渲染组件. reponse 数据 json ...

  10. Spring实战(一)Spring简介---呕心沥血只为让Java开发更简单。

    Spring诞生的初衷是为了替代更加重量级的企业级Java技术(EJB). 相对于EJB来说,Spring提供了更加轻量级和简单的编程模型,它增强了POJO(简单老式Java对象)的功能,使简单的Ja ...