[TOC]
## **rate**
该函数用来计算某个指标在最近一个区间时间内的变化率。
比如说,Prometheus每15秒采集一次数据,当某个指标metric1的数据采集如下:
| timestamp | value |
| --- | --- |
| 15:00:00 | 10000 |
| 15:00:15 | 10030 |
| 15:00:30 | 10045 |
| 15:00:45 | 10090 |
假设当前时间为15:00:50,我们执行PromQL语句`rate(metric1[1m])`,该语句的返回值为2,计算过程如下:
> Prometheus会查找PromQL语句执行时,1m内(14:59:51 - 15:00:50)该指标的采集点,找到如上四个采集点,然后用该区间最后一个采集点与第一个采集点的value差,除以两个采集点的时间差(秒),即(10090-10000)/(15:00:45-15:00:00)=2。
需要注意的是,时间区间的值至少要为采样间隔的两倍,因为只有这样才能保证时间区间内有两个采样点。比如上面的例子中,假设时间区间设为29秒,PromQL语句的执行时间为15:00:59.99秒,那么它会查找`[15:00:30.99, 15:00:59.99]`时间内的采集点,发现只有一个,那么就没有办法计算,就会报No datapoints found的错误。
## **irate**
该函数与rate函数不同的是,它是用区间内的最后一个采集点与倒数第二个采集点的value差,除以两个采集点的时间差。即15:00:50执行语句`irate(metric1[1m])`时,计算出来的值为`(10090-10045)/(15:00:45-15:00:30)=3`
- (一)快速开始
- 安装Prometheus
- 使用NodeExporter采集数据
- AlertManager进行告警
- Grafana数据可视化
- (二)探索PromQL
- 理解时间序列
- Metrics类型
- 初识PromQL
- PromQL操作符
- PromQL内置函数
- rate和irate
- 常见指标的PromQL
- 主机CPU使用率
- 主机内存使用率
- 主机磁盘使用率
- 主机磁盘IO
- 主机网络IO
- API的响应时间
- (三)Promtheus告警处理
- 自定义告警规则
- 示例-对主机进行监控告警
- 部署AlertManager
- 告警的路由与分组
- 使用Receiver接收告警信息
- 集成邮件系统
- 屏蔽告警通知
- 扩展阅读
- AlertManager的API
- Prometheus发送告警机制
- 实践:接收Prometheus的告警
- 实践:AlertManager
- (四)监控Kubernetes集群
- 部署Prometheus
- Kubernetes下的服务发现
- 监控Kubernetes集群
- 监控Kubelet的运行状态
- 监控Pod的资源(cadvisor)
- 监控K8s主机的资源
- KubeStateMetrics
- K8S及ETCD常见监控指标
- ETCD监控指标
- Kube-apiserver监控指标
- (五)其他
- Prometheus的relabel-config
- Target的Endpoint
- Prometheus的其他配置
- (六)BlackboxExporter
- 安装
- BlackboxExporter的应用场景
- 在Promtheus中使用BlackboxExporter
- 参考