开始
基于 v2.30 版本进行编写。
本文是一个 "Hello World" 风格的教程,该教程显示了如何在简单的示例设置中安装,配置和使用 Prometheus. 可以在本地下载并运行Prometheus,对其进行配置以抓取自身和示例应用程序,然后使用查询,规则和图形来利用收集的时间序列数据.
下载 Prometheus
在使用 Prometheus 之前,应该先确认 Prometheus 运行的平台和操作系统,确认好以后,到 Prometheus 的下载页面下载最新版本的 Prometheus 即可,大部分常见的平台和常见的操作系统都可以运行 Prometheus 。比如我们准备在 X86 64 位的平台上运行,我们本地安装的操作系统是 CentOS 7.x 或者 CentOS 8.x ,那么我们可以可以选择 linux-amd64 的安装包进行下载。
下载的页面是 https://prometheus.io/download/ ,可以使用任何工具进行下载,比如我们使用 Wget 进行下载。
wget https://github.com/prometheus/prometheus/releases/download/v2.30.0/prometheus-2.30.0.linux-amd64.tar.gz
# 解压该文件即可使用
tar -zxf prometheus-2.30.0.linux-amd64.tar.gz
配置 Prometheus 监控自身
下载好的 Prometheus 在启动前,需要先对其进行配置。
Prometheus 通过在这些目标上访问标准HTTP端点来从被监视的目标收集度量标准. 由于Prometheus还以相同的方式公开有关其自身的数据,因此它也可以抓取并监视其自身的健康状况.
虽然仅收集有关自身数据的 Prometheus 服务器在实践中不是很有用,但它是一个很好的入门示例,并且,在实际运行当前,收集自身的监控数据是一个必须的过程。 将以下基本Prometheus配置保存为名为 prometheus.yml 的文件:
global:
scrape_interval: 15s # By default, scrape targets every 15 seconds.
# Attach these labels to any time series or alerts when communicating with
# external systems (federation, remote storage, Alertmanager).
external_labels:
monitor: 'codelab-monitor'
# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
- job_name: 'prometheus'
# Override the global default and scrape targets from this job every 5 seconds.
scrape_interval: 5s
static_configs:
- targets: ['localhost:9090']
有关配置选项的完整说明,可以参考配置文档
启动 Prometheus
要使用新创建的配置文件启动Prometheus,请切换到包含Prometheus二进制文件的目录并运行
# Start Prometheus.
# By default, Prometheus stores its database in ./data (flag --storage.tsdb.path).
./prometheus --config.file=prometheus.yml
如果想要了解 Prometheus 更多的启动参数,可以在执行的时候使用 --help
来获取更多的支持。
Prometheus 启动后可以在 localhost:9090
浏览到有关其自身的状态页. 给它几秒钟的时间,以从其自己的HTTP指标终结点收集有关其自身的数据.
您还可以通过访问到其指标端点来验证Prometheus是否正在提供有关其自身的指标: localhost:9090/metrics
使用 Prometheus 的内置表达式浏览器
正常启动以后,你可以浏览 Prometheus 收集的有关自身的一些数据. 要使用 Prometheus 的内置表达式浏览器,需要访问http://localhost:9090/graph
并在 "graph" 选项卡中选择 "Console" 视图.
正如您可以从 localhost:9090/metrics
收集的那样,Prometheus 导出的有关其自身的一个指标称为prometheus_target_interval_length_seconds
(目标刮擦之间的实际时间). 继续并将其输入到表达式控制台中,然后单击"执行":
prometheus_target_interval_length_seconds
这应该返回多个不同的时间序列(以及每个时间序列的最新值),所有时间序列的度量标准名称均为prometheus_target_interval_length_seconds
,但标签不同. 这些标签指定不同的等待时间百分位数和目标组间隔.
如果我们只对第99个百分位延迟感兴趣,则可以使用以下查询来检索该信息:
prometheus_target_interval_length_seconds{quantile="0.99"}
要计算返回的时间序列数,您可以编写:
count(prometheus_target_interval_length_seconds)
有关表达语言的更多信息,可以参考官方的表达语言文档,也可以参考本笔记相关查询文章。
使用 Prometheus 的图形选项卡
要绘制图形表达式,请浏览至 http://localhost:9090/graph
并使用"图形"选项卡.
例如,输入以下表达式以绘制在自抓取的 Prometheus 中创建的块的每秒速率:
rate(prometheus_tsdb_head_chunks_created_total[1m])
使用图形范围参数和其他设置进行调整,获取需要的数据。
如果想要添加其他其他采集项,可以参考后边的文章。