koa - prometheus - 出口商
□ 安装
需要 koa 运行
使用 npm
npm install @echo-health/koa-prometheus-exporter
要使用 pridetheus 中间dlware 模块导出一个名为 async 中间软件的函数 middleware
譬如说.
const Koa = require('koa');
const prometheus = require('koa-prometheus-exporter');
const app = new Koa();
// middleware is a function that returns the middleware async
// function, this is so you can pass configuration settings into
// the middleware.
app.use(prometheus.middleware({}));
选项可以传递到中间软件.
Name: path
Type: String
Desciption: overrides the path the middleware listens on.
e.g. "/overriden_path_to_export_metrics_on
Name: headerBlacklist:
Type: Array
Description: will block any access to the metrics path if the
request has a header in this list
e.g. ["x-forwarded-for"]
这将截取路径/ 度量, 并导出默认值 舞会客户 节点的度量,加上通过 节点正反相
如果您想要添加额外的衡量标准,您可以通过两种方式访问客户端.
const client = require('koa-prometheus-exporter').client;
指的是强调舞会客户模块.
同一客户端也通过Ctx objet被通过中间软件链被活塞而暴露出. 因此,任何中间器件都可以在波波斯之后使用。 包含中间软件.
const Koa = require('koa');
const prometheus = require('koa-prometheus-exporter');
const app = new Koa();
app.use(prometheus.middleware());
app.use(async (ctx, next) => {
const counter = ctx.state.prometheus.Counter('counter', 'counter');
counter.inc();
})
□ 跟踪 HTTP 计量
如果您想要跟踪 HTTP 度量衡, 您可以添加一个额外的中件 .
const Koa = require('koa');
const prometheus = require('koa-prometheus-exporter');
const app = new Koa();
// this has to be before any other middleware if you want accurate timing of request duration.
app.use(prometheus.httpMetricMiddleware());
app.use(prometheus.middleware());
XQO 选项可以传递到中间软件
Name: httpTimingDisable
Type: Boolean
Desciption: turns off tracking HTTP timing information, histograms are expensive and can produce a lot of data.
e.g. true
Name: pathTransform
Type: function
Desciption: Can transform the path before it's set as the URI label. This is important if you're submitting unbounded metrics like rest API's with id's in the path. You need to strip this out to make sure you don't make a very large amount of unique metrics.
e.g.
function(path) {
if (path && path.includes("/")) {
return `/${path.split("/")[1]}`;
}
return p;
}
Name: httpTimingBuckets:
Type: Array
Description: Override the histogram buckets used to track quantiles, this is so you can specify your own bucket configuration.
Defaault: array produced by calling require('prom-client').exponentialBuckets(0.05, 1.3, 20)
e.g. [
0.05,
0.065,
0.0845,
0.10985000000000002,
0.14280500000000002,
0.18564650000000002,
0.24134045000000004,
0.3137425850000001,
0.4078653605000001,
0.5302249686500001,
0.6892924592450002,
0.8960801970185003,
1.1649042561240504,
1.5143755329612656,
1.9686881928496454,
2.559294650704539,
3.327083045915901,
4.325207959690672,
5.622770347597873,
7.309601451877235
]
这暴露出四个标准:
- name: http_server_requests_seconds
type: Histogram
- name: http_request_size_bytes
type: Summary
- name: http_response_size_bytes
type: Summary
- name: http_requests_total
type: Counter
这些镜像是同一种由Paletheus服务器本身输出的HTTP度量衡.