Prometheus plugin for Egg.js
npm install egg-prometheus[![NPM version][npm-image]][npm-url]

[![Test coverage][codecov-image]][codecov-url]
[![npm download][download-image]][download-url]
[npm-image]: https://img.shields.io/npm/v/egg-prometheus.svg?style=flat-square
[npm-url]: https://npmjs.org/package/egg-prometheus
[codecov-image]: https://codecov.io/gh/eggjs/egg-prometheus/branch/master/graph/badge.svg
[codecov-url]: https://codecov.io/gh/eggjs/egg-prometheus
[download-image]: https://img.shields.io/npm/dm/egg-prometheus.svg?style=flat-square
[download-url]: https://npmjs.org/package/egg-prometheus
为 egg 提供 Prometheus 功能支持
``bash`
npm i egg-prometheus --save
通过 ${app_root}/config/plugin.js 配置启动 Prometheus 插件:
`js`
exports.prometheus = {
enable: true,
package: "egg-prometheus",
};
`js`
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 就是过滤
- 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 服务端失败的请求数
可以通过下面 API 自定义业务 metrics
`js
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 或者意见。
如果你是一个代码贡献者,请参考代码贡献规范。
|
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`.