指标类型
2024年12月24日
一、Counter(计数器)
Counter
(计数器) 用于计数发生的事件,值只会增加。例如,记录请求的数量或错误的数量。并在进程重新启动时重置。
const client = require('prom-client');
const httpRequestCounter = new client.Counter({
name: 'http_requests_total',
help: 'Total number of HTTP requests',
labelNames: ['method', 'status_code'],
});
// 增加计数
httpRequestCounter.inc({ method: 'GET', status_code: 200 });
二、Gauge(仪表盘)
Gauge
(仪表盘) 用于记录一个值,可以增大、减小或保持不变,适用于记录瞬时值。例如,记录当前活跃连接数、内存使用量等。
const client = require('prom-client');
const activeConnectionsGauge = new client.Gauge({
name: 'active_connections',
help: 'Current number of active connections',
});
// 设置当前连接数
activeConnectionsGauge.set(10);
三、Histogram(直方图)
Histogram
(直方图) 用于记录多个观察值的分布情况,并计算相应的统计数据(如平均值、最大值、百分位等)。例如,记录 HTTP
请求的响应时间。
const client = require('prom-client');
const responseDurationHistogram = new client.Histogram({
name: 'http_response_duration_seconds',
help: 'Histogram of HTTP response durations in seconds',
buckets: [0.1, 0.5, 1, 2, 5, 10], // 定义时间分布的桶(即阈值)
});
// 记录响应时间
responseDurationHistogram.observe(2.3); // 记录 2.3 秒的响应时间
四、Summary(概述)
Summary
(概述) 用于记录一组观察值的统计信息,类似于 Histogram
,但提供了更多的统计信息(如平均值、百分位等)。例如,记录 HTTP
请求的延迟。
const client = require('prom-client');
const responseLatencySummary = new client.Summary({
name: 'http_response_latency_seconds',
help: 'Summary of HTTP response latency in seconds',
});
// 记录延迟
responseLatencySummary.observe(1.23); // 记录 1.23 秒的响应延迟