Prometheus的基础知识

Prometheus 的组件

Prometheus 生态系统由多个组件组成,其中有许多组件是可选的:

  • Exporter 用来监控 HAProxy,StatsD,Graphite 等特殊的监控目标,并向 Prometheus 提供标准格式的监控样本数据。

  • 其他各种周边工具。

其中大多数组件都是用 Go 编写的,因此很容易构建和部署为静态二进制文件

Prometheus 的架构

prometheus 的整体架构以及生态系统组件如下图所示:

Prometheus Server 直接从监控目标中或者间接通过推送(push)网关来拉取(pull)监控对象的指标,它在本地存储所有抓取到的样本数据,并对此数据执行一系列规则,以汇总和记录现有数据的新时间序列或生成告警。可以通过 Grafana 或者其他工具来实现监控数据的可视化。

补充一下push与pull的差异性

push:Prometheus使用的是拉取模型。这意味着Prometheus服务器负责从目标服务(被监控的应用或节点)主动拉取数据,在这种模型中,被监控的目标(例如应用程序或服务器)会提供一个HTTP或HTTPS端点,Prometheus服务器会定期(按照配置的间隔)向这些端点发起HTTP请求,获取监控数据

pull:与拉取模型相反,推送模型是目标服务主动将数据推送给Prometheus服务器。在推送模型中,被监控的目标会定期或根据事件触发向Prometheus服务器发送监控数据。目标服务需要向Prometheus提供一个可以接收数据的HTTP端点。

Prometheus 的数据模型

Prometheus 所有采集的监控数据均以指标(metric)的形式保存在内置的时间序列数据库当中

指标名称和标签

每一条时间序列由指标名称(Metrics Name)以及一组标签(键值对)唯一标识。其中指标的名称(metric name)可以反映被监控样本的含义(例如,http_requests_total — 表示当前系统接收到的 HTTP 请求总量),指标名称只能由 ASCII 字符、数字、下划线以及冒号组成,同时必须匹配正则表达式 [a-zA-Z_:][a-zA-Z0-9_:]*

样本

时间数列是一个由点组成的矩形方阵,在时间序列中的每一个点称为一个样本(sample),样本由以下三部分组成:

  • 指标(metric):指标名称和描述当前样本特征的 labelsets;

  • 时间戳(timestamp):一个精确到毫秒的时间戳;

  • 样本值(value): 一个 folat64 的浮点型数据表示当前样本的值

Prometheus 的指标类型

Counter(计数器):Counter 类型代表一种样本数据单调递增的指标,即只增不减,除非监控系统发生了重置;例如,你可以使用 counter 类型的指标来表示服务的请求数、已完成的任务数、错误发生的次数等

Gauge(仪表盘):Gauge 类型代表一种样本数据可以任意变化的指标,即可增可减。Gauge 通常用于像温度或者内存使用率这种指标数据,也可以表示能随时增加或减少的“总数”,例如:当前并发请求的数量。

Histogram(直方图):在大多数情况下人们都倾向于使用某些量化指标的平均值,例如 CPU 的平均使用率、页面的平均响应时间,而这些指标存在一个buckets中的

Summary(摘要):在Prometheus中,Summary是一种用于度量和分析样本观测值分布的指标类型。与Histogram类似,Summary也允许记录观测值的分位数和总数,但相对于HistogramSummary更适用于长期的、动态的、高基数的样本数据。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值