欢迎来到Prometheus!Prometheus是一个监控平台,经过在监控目标上的HTTP端点来收集受监控目标的指标。本指南将向您展现如何使用Prometheus安装,配置和监控咱们的第一个资源。 您将下载,安装并运行Prometheus。您还将下载并安装exporter,这些工具可在主机和服务上公开时间序列数据。咱们的第一个exporter将是Prometheus自己,它提供了有关内存使用,垃圾收集等的各类主机级指标。node
根据你的平台prometheus.io/download/,而后解压它:git
tar xvfz prometheus-*.tar.gz
cd prometheus-*
复制代码
Prometheus服务器是一个名为prometheus的二进制文件(或Microsoft Windows上的prometheus.exe)。 咱们能够经过传递--help
标志来运行二进制文件并查看其选项的帮助。github
./prometheus --help
usage: prometheus [<flags>]
The Prometheus monitoring server
. . .
复制代码
在使用欢迎来到Prometheus以前,让咱们配置它。浏览器
Prometheus配置是YAML。Prometheus下载附带一个名为prometheus.yml的文件中的示例配置,这是一个很好的入门之处。bash
咱们删除了示例文件中的大部分注释,使其更简洁(注释是以#为前缀的行)。服务器
global:
scrape_interval: 15s
evaluation_interval: 15s
rule_files:
# - "first.rules"
# - "second.rules"
scrape_configs:
- job_name: prometheus
static_configs:
- targets: ['localhost:9090']
复制代码
示例配置文件中有三个配置块:global,rule_files和scrape_configs。ide
全局块控制Prometheus服务器的全局配置。 咱们有两种选择。 第一个是scrape_interval,它控制Prometheus抓取目标的频率。 您能够为单个目标重写此值。 在这种例子下,全局设置是每15s抓取一次。 evaluation_interval选项控制Prometheus评估规则的频率。 Prometheus使用规则建立新的时间序列并生成警报。工具
rule_files块指定咱们但愿Prometheus服务器加载的任何规则的位置。 如今咱们没有规则。性能
最后一个块scrape_configs控制Prometheus监视的资源。 因为Prometheus还将本身的数据公开为HTTP端点,所以它能够抓取并监控自身的健康情况。 在默认配置中,有一个名为prometheus的做业,它会抓取Prometheus服务器公开的时间序列数据。 该做业包含一个静态配置的目标,即端口9090上的localhost。Prometheus但愿指标在/metrics路径上的目标上可用。 因此这个默认的工做是经过URL抓取:http//localhost:9090/metrics。学习
返回的时间序列数据将详细说明Prometheus服务器的状态和性能。
有关配置选项的完整规范,请参阅配置文档。
要使用咱们新建立的配置文件启动Prometheus,请切换到包含Prometheus二进制文件的目录并运行:
./prometheus --config.file=prometheus.yml
复制代码
prometheus应该启动。您还应该可以在http//localhost:9090浏览到本身的状态页面。给它大约30秒的时间从本身的HTTP指标端点收集有关本身的数据。
您还能够经过导航到其本身的指标端点来验证Prometheus是否正在提供有关自身的指标:http//localhost:9090/metrics。
让咱们试着看一下Prometheus收集的关于本身的一些数据。 要使用Prometheus的内置表达式浏览器,请导航到http//localhost:9090/graph并在“Graph”选项卡中选择“Console”视图。
正如您能够从http//localhost:9090/metrics收集的那样,Prometheus导出的一个度量标准称为promhttp_metric_handler_requests_total
(Prometheus服务器已服务的/ metrics请求的总数)。 继续并将其输入表达式控制台:
promhttp_metric_handler_requests_total
复制代码
这应该返回许多不一样的时间序列(以及为每一个记录的最新值),全部时间序列都使用度量标准名称promhttp_metric_handler_requests_total
,但具备不一样的标签。 这些标签指定不一样的请求状态。
若是咱们只对致使HTTP代码200的请求感兴趣,咱们可使用此查询来检索该信息:
promhttp_metric_handler_requests_total{code="200"}
复制代码
要计算返回的时间序列总数,您能够写:
count(promhttp_metric_handler_requests_total)
复制代码
有关表达式语言的更多信息,请参阅表达式语言文档。
要绘制表达式图表,请导航到http//localhost:9090/graph graph并使用“图表”选项卡。
例如,输入如下表达式来绘制在自我抓取的Prometheus中发生的返回状态代码200的每秒HTTP请求率:
rate(promhttp_metric_handler_requests_total{code="200"}[1m])
复制代码
您能够尝试图形范围参数和其余设置。
仅从Prometheus那里收集指标并不能很好地反映Prometheus的能力。 为了更好地了解Prometheus能够作什么,咱们建议您浏览有关其余exporter的文档。 使用node exporter指南监控Linux或macOS主机指标是一个很好的起点。
在本指南中,您安装了Prometheus,配置了Prometheus实例来监视资源,并学习了在Prometheus表达式浏览器中处理时间序列数据的一些基础知识。 要继续了解Prometheus,请查看概述,了解接下来要探索的内容。
Prometheus官网地址:prometheus.io/ 个人Github:github.com/Alrights/pr…