1.7.1 • Published 10 months ago
egg-prometheus v1.7.1
egg-prometheus
为 egg 提供 Prometheus 功能支持
安装
npm i egg-prometheus --save
用法
开启插件
通过 ${app_root}/config/plugin.js
配置启动 Prometheus 插件:
exports.prometheus = {
enable: true,
package: "egg-prometheus",
};
配置
exports.prometheus = {
timeout: 3000,
scrapePort: 3000,
scrapePath: '/metrics',
defaultHttpMetricsFilter: ({ method, status, routerName, path }) => true,
defaultLabels: { ... },
};
timeout
: metrics 数据的拉取超时时间scrapePort
: 监听的用于采集 metrics 的端口scrapePath
: 监听的采集 metrics 的服务路径defaultLabels
: 默认的 metrics 标签,全局生效defaultHttpMetricsFilter
: 默认的 http metrics 的过滤函数,自定义过滤逻辑,返回 true 就是不过滤,返回 false 就是过滤
内置的 Metrics
http_response_time_ms summary
: http 请求耗时http_request_rate counter
: http 请求数
当 egg-rpc-base 插件开启时,还会提供下面 metrics
rpc_consumer_response_time_ms summary
: rpc 客户端请求耗时rpc_consumer_request_rate counter
: rpc 客户端请求数rpc_consumer_fail_response_time_ms summary
: rpc 客户端失败的请求耗时rpc_consumer_request_fail_rate counter
: rpc 客户端失败的请求数rpc_consumer_request_size_bytes summary
: rpc 请求大小统计rpc_consumer_response_size_bytes summary
: rpc 响应大小统计rpc_provider_response_time_ms summary
: rpc 服务端处理时间rpc_provider_request_rate counter
: rpc 服务端收到请求数rpc_provider_fail_response_time_ms summary
: rpc 服务端失败的请求处理时间rpc_provider_request_fail_rate counter
: rpc 服务端失败的请求数
自定义 Metrics
可以通过下面 API 自定义业务 metrics
const counter = new app.prometheus.Counter({
name: "xxx_total",
help: "custom counter",
labelNames: ["xxx"],
});
const gauge = new app.prometheus.Gauge({
name: "xxx_gauge",
help: "custom gauge",
labelNames: ["xxx"],
});
const histogram = new app.prometheus.Histogram({
name: "xxx_histogram",
help: "custom histogram",
labelNames: ["xxx"],
});
const summary = new app.prometheus.Summary({
name: "xxx_summary",
help: "custom summary",
labelNames: ["xxx"],
});
如何贡献
请告知我们可以为你做些什么,不过在此之前,请检查一下是否有已经存在的 Bug 或者意见。
如果你是一个代码贡献者,请参考代码贡献规范。
License
Contributors
gxcsoccer | xujihui1985 | popomore | nightink | sjfkai | jgchenu |
---|
This project follows the git-contributor spec, auto updated at Fri Dec 15 2023 17:58:23 GMT+0800
.