开始

基于 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])

使用图形范围参数和其他设置进行调整,获取需要的数据。

如果想要添加其他其他采集项,可以参考后边的文章。

results matching ""

    No results matching ""