Prometheus入门

Prometheus 简介

Prometheus 是一套开源的系统监控报警框架,现已广泛用于 Kubernetes 集群的监控系统中。

功能

Prometheus主要功能:

  • 多维数据模型的时间序列数据,用键值对来区分。
  • 灵活查询语言(PromQL)。
  • 不依赖分布式存储,单个节点自治。
  • 通过HTTP pull方式收集时间序列数据。
  • 可以采用push gateway的方式把时间序列数据推送数据到服务端。
  • 通过服务发现或者静态配置的方法来发现目标。
  • 支持多种模式图形展示。

组件

Prometheus包含多个组件,大多是可选:

  • Prometheus server:收集并存储时间序列数据
  • client library:为需要监控的对象生成相应的metrics并暴露给Prometheus server。
  • Push gateway:支持短期jobs。这类jobs存在时间较短,因此这些jobs向Prometheus server推送metrics。这种方式主要用于app层面,对于机器层面需要使用node exporter。
  • Exporter:用于暴露已有的第三方服务的metrics给Prometheus,比如 HAProxy、StatsD、Graphite等。
  • Alertmanager:处理告警。
  • 其他丰富的工具。

架构

数据模型

Prometheus 中存储的数据为时间序列,是由相同metric及标签的时间戳数值的流数据组成的。除了存储时间序列,Prometheus还会生成临时提取的时间序列作为查询结果。

每个时间序列是由metric名和键值对集合(标签)作为唯一标识。

  • metric名字:metric 名字指定系统基本功能,例如http_requests_total表示接收到的HTTP 请求总数。名字可以包含 ASCII 字符,数字,下划线,以及冒号,必须满足正则表达式 [a-zA-Z_:][a-zA-Z0-9_:]*。
  • 标签:相同的metric名字结合label可以标识为特殊的维度实例。例如所有使用POST方法访问/api/tracks的HTTP请求,查询语言可以基于这些维来过滤聚合数据。修改任意label值,都会创建一个新的时间序列。标签中的键由 ASCII 字符,数字,以及下划线组成,且必须满足正则表达式 [a-zA-Z_:][a-zA-Z0-9_:]*。以_开始label为内部使用保留。label可以包含Unicode字符.

Metric类型

Counter:一种累加的 metric,例如请求数、完成的任务数目或错误数。不用使用counter来暴露一个可以减少的值,比如不要使用counter来代表运行中的进程,而要使用gauge。

Gauge:代表可以反复增减的数值。通常用于度量类似温度、内存使用率等。

Histogram:柱状图,典型的应用如:请求持续时间,响应大小。

Summary:类似于 Histogram。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值