在shell中,将变量输出为 Prometheus Metrics 标准格式可以通过以下方式实现:
#!/bin/bash
# 定义变量
num_requests=0
last_request_time=$(date +%s)
# 模拟请求处理逻辑
handle_request() {
num_requests=$((num_requests + 1))
last_request_time=$(date +%s)
}
# 输出变量为 Prometheus Metrics 标准格式
output_metrics() {
echo "http_requests_total{method=\"GET\", handler=\"/api/v1/users\"} $num_requests"
echo "last_request_timestamp_seconds $(($(date +%s) - last_request_time))"
}
# 测试代码
for i in {1..10}
do
handle_request
done
output_metrics
在这个示例中,我们定义了 num_requests 和 last_request_time 变量,并编写了一个简单的模拟请求处理逻辑。然后,在 output_metrics() 函数中,我们使用 echo 命令将变量输出为 Prometheus Metrics 标准格式。对于计数器类型的指标(如本例中的 http_requests_total),我们只需打印出当前值即可;而对于测量型指标(如本例中的 last_request_timestamp_seconds),我们需要计算出最新时间戳与上次请求时间戳之间的差异并打印出来。
请注意,此处假设所有参数都是硬编码的。实际生产环境下可能需要使用更复杂的逻辑来生成指标数据。此示例仅用于说明如何将变量输出为 Prometheus Metrics 标准格式。




