Prometheus是一个开源的系统监控和报警的工具包,最初由SoundCloud发布。
Prometheus的主要特点是:
Prometheus包含多个组件,其中有许多是可选的:
大多数的组件都是用Go来完成的,使得它们方便构建和部署。
下图说明了Prometheus和它的组件的整体架构:
Prometheus通过直接或者短时jobs中介网关收集监控数据,在本地存储所有收集到的数据,并且通过定义好的rules产生新的时间序列数据,或者发送警报。Promdash或者其他使用API的clients可以将采集到的数据可视化。
接下来给出“Hello World”式的教程,我会介绍如何安装、配置,并且在一个简单的例子中使用Prometheus。在此在本地运行Prometheus,并且配置它监控自己,然后利用查询、规则和图形来使用收集到的时间序列数据。
下载最新版本的Prometheus,然后提取并运行:
tar xvfz prometheus-*.tar.gz
cd 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=` 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
target_groups:
- targets: ['localhost:9090']
labels:
group: 'prometheus'
# Another job or machine
- targets: ['localhost:3000']
labels:
group: 'rails-app'
有关配置选项的完整规范,请查看配置文档。
使用刚刚新创建的文件来启动prometheus服务:
./prometheus -config.file=prometheus.yml
此时prometheus服务应该启动起来了,在http://localhost:9090
可以看到状态页。你也可以通过http://localhost:9090/metrics
查看监控项。
为了验证prometheus已经收集到了自身数据,在http://localhost:9090
中选择“Console”选项卡中的“Graph”视图。我们以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)
想要了解更多有关表达式语言,请查看表达式语言文档。
--------------------- 本文来自 y_xiao_ 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/y_xiao_/article/details/50816248?utm_source=copy