Prometheus 初体验
本文环境 Redhat Linux 6.7, Prometheus 2.2.1,node_exporter 1.5.2
介绍
Prometheus 是2012年由 SoundCloud 开源的系统监控和报警工具集,在 《Google SRE 运维解密》一书中也提到与Google内部的Borgmon思想一致。使用 Go 语言开发,适用于各个平台。
安装
[root@bj1eccap01 ~]# tar -xvzf prometheus-2.2.1.linux-amd64.tar.gz
[root@bj1eccap01 ~]# cd prometheus-2.2.1.linux-amd64
[root@bj1eccap01 prometheus-2.2.1.linux-amd64]# ./prometheus --help
usage: prometheus [<flags>]
配置
安装包下有一个默认的配置文件,是 YAML 格式,默认配置文件包括三个分区:global
、rule_files
、scrape_configs
。
global
控制 Prometheus 服务器的全局配置。scrape_interval
决定数据抓取的间隔。evaluation_interval
决定数据计算的间隔,Prometheus会根据rule_file来产生新的时间序列值。
rule_files
决定规则文件的保存路径。
scrape_config
决定Prometheus监控的资源。Prometheus通过HTTP暴露自己的数据,因此也可以监控自己的健康状况。
启动
启动非常简单
[root@bj1eccap01 prometheus-2.2.1.linux-amd64]# ./prometheus --config.file=prometheus.yml
这之后就可以通过浏览查看服务的运行状况了,打开浏览器输入 http://localhost:9090/graph
Prometheus 提供了两种方式查看指标 graph 模式可以直接看到指标曲线,metrics 则看到原始的监控数据。通过切换到 console 界面可以看到。
node_exporter 安装
node_exporter 用来收集服务器的监控信息,目前稳定版本为1.15.2。node_exporter 默认使用 9100 端口监听,Prometheus 会从 node_exporter 中获取信息。
[root@bj1eccap01 ~]# tar -xzvf node_exporter-0.15.2.linux-amd64.tar.gz
[root@bj1eccap01 ~]# cd node_exporter-0.15.2.linux-amd64
[root@bj1eccap01 node_exporter-0.15.2.linux-amd64]# ./node_exporter
运算与统计
Prometheus 提供了一套查询语言,支持运算以及一些常用的统计运算。
运算符号
Prometheus 支持如下运算符。
运算符 | 说明 |
---|---|
+ | 加法 |
- | 减法 |
* | 相乘 |
/ | 相除 |
% | 取摸运算 |
== | 相等 |
!= | 不相等 |
|大于
<|小于
=|大于或等于
<=|小于或等于
|
and|逻辑和
or|逻辑或
unless|除非,取补集
统计函数
方法名 | 介绍 |
---|---|
sum | 求和 |
min | 求最小值 |
max | 求最大值 |
avg | 取平均值 |
stddev | 计算标准差 |
stdvar | |
count | 计算总数 |
count_values | 计算相同值的数量 |
bottomk | 最小的k个元素 |
topk | 最大的k个元素 |
quantile |
本文为作者原创,如果您觉得本文对您有帮助,请随意打赏,您的支持将鼓励我继续创作。
参考资料:
1、Prometheus
2、Prometheus First Step
3、Prometheus 入门尝试
相关文章
- 聊一聊企业内身份验证的安全问题 | FreeBuf甲方群讨论
- 每年这一天,互联网公司的愚人节“玩笑”
- 数据结构与算法之动态规划就这些招式!
- Could not get any response postman报错 但是浏览器可以访问
- Golang AI 开发:通过将 AI 集成到你的应用程序
- 基于PHP方法,微信公众号小程序获取code,access_token,openid,用户信息
- iOS冰与火之歌–利用XPC过sandbox
- GRecX: 高效统一的图推荐框架再度升级, 深度优化基准推荐算法
- 从C语言的变量声明到Objective-C中的Block语法
- 程序员必备的21条Linux 命令,值得收藏!
- 一篇好的BUG报告是如何炼成的
- 微信支付基于PHP
- 三分钟回顾!2021年12月自动驾驶行业发展动态速览
- 微擎:URL路由&创建
- 机器人会取代人类吗?
- php之微信公众号发送模板消息
- 外媒:机器人改变人类生活 冲击就业与婚姻模式
- 微信开发之消息模板推送 + php
- 人类,误读机器人形态百年
- 深度分析 Dubbo SPI 源码,扩展 Dubbo Validation (groups)