Joh*_*abb 5 javascript node.js grafana prometheus
我正在尝试使用汇总指标而不是安静地了解我将 summary.observe 调用放在哪里?这是舞会客户端示例(您可以在 npm 上找到):
const client = require('prom-client');
const summary = new client.Summary({
name: 'metric_name',
help: 'metric_help'
});
summary.observe(10);
Run Code Online (Sandbox Code Playgroud)
但没有足够的信息如何使用它。
const client = require('prom-client');
const summary = new client.Summary({
name: 'metric_name',
help: 'metric_help'
});
summary.observe(10); // do I put it here?
async myFunc(){
await this.serviceCall();
summary.observe(10); // or here?
}
Run Code Online (Sandbox Code Playgroud)
有人有总结观察的好例子/解释吗?
首先,让我们澄清一下什么是摘要:摘要度量从事件中捕获单个观察结果并将它们汇总为许多相关的度量:
举个例子:如果你正在测量一个服务的响应时间:
首先,您创建一个汇总指标,提供
foobar_request_duration_seconds对于每个请求,您将计算请求的响应时间 - 这是一个观察
当 Prometheus 抓取您的端点时,根据观察到的响应时间度量计算指标
foobar_request_duration_seconds_sum: 请求消耗的总秒数foobar_request_duration_seconds_count:请求数(注意你可以用总和计算平均值)foobar_request_duration_seconds_seconds{quantile="0.1"}:响应时间 10%(...对于所有配置的分位数都相同)我希望这可以帮助您理解prom-client 文档:
第一个示例显示如何指示要计算的分位数
new client.Summary({
name: 'metric_name',
help: 'metric_help',
percentiles: [0.01, 0.1, 0.9, 0.99]
});
Run Code Online (Sandbox Code Playgroud)
第二个如何限制测量窗口;在这里,度量是在过去 10 分钟内计算的(使用 5 个桶 - 这会影响值的平滑):
new client.Summary({
name: 'metric_name',
help: 'metric_help',
maxAgeSeconds: 600,
ageBuckets: 5
});
Run Code Online (Sandbox Code Playgroud)
回到您的问题,observe()应该根据您正在观察的内容调用该方法。
如果要测量 返回的某些数据serviceCall(),请将其提供给摘要
number_bytes_exchanged = await this.serviceCall();
summary.observe(number_bytes_exchanged);
Run Code Online (Sandbox Code Playgroud)
如果您想测量服务呼叫所花费的时间
const observe_response_time = summary.startTimer();
await this.serviceCall();
observe_response_time();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2429 次 |
| 最近记录: |