@echo-health/koa-prometheus-exporter

中文文档
1.0.4发布于 2019/06/07MITCommonJS近 30 天下载 2745
原始使用文档

koa-prometheus-exporter

##Installation

Requires koa to run

Using npm

npm install @echo-health/koa-prometheus-exporter

To use the prometheus middlware the module exports a async middleware function called middleware

e.g.

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({}));

Options can be passed into the 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"]

This intercepts the path /metrics and will export the default prom-client metrics for nodejs, plus the additional gc stats via node-prometheus-gc-stats

if you want to add additional metrics you can access the client in two ways.

const client = require('koa-prometheus-exporter').client;

Is a reference to the underlining prom-client module.

the same client is also exposed via the ctx objet pased through the middleware chain. So will be available to any middleware included after the prometheus.middleware is included.

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();
})

##Tracking HTTP Metrics

If you would like to track HTTP metrics you can add an additional piece of middleware via.

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());

###Options can be passed into the middleware

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
]

This exposes four metrics:

 - 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

These mirror the same HTTP metrics exported by the prometheus server itself.

版本与发布记录

@echo-health/koa-prometheus-exporter 共发布 13 个版本,首次发布于 2017/10/03;过去 12 个月发布了 0 个版本。

版本发布日期距今
1.0.4latest2019/06/077 年前
1.0.32018/12/127 年前
1.0.22018/08/248 年前
1.0.12018/08/168 年前
0.0.92018/05/098 年前
0.0.82018/02/178 年前

关于 @echo-health/koa-prometheus-exporter 的常见问题

如何安装 @echo-health/koa-prometheus-exporter?

在项目目录运行 npm install @echo-health/koa-prometheus-exporter,或使用 pnpm add / yarn add / bun add。

@echo-health/koa-prometheus-exporter 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/echo-health__koa-prometheus-exporter 是否存在。

@echo-health/koa-prometheus-exporter 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@echo-health/koa-prometheus-exporter 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=8.11.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@echo-health/koa-prometheus-exporter 可以商用吗?

@echo-health/koa-prometheus-exporter 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@echo-health/koa-prometheus-exporter 的下载量有多少?

根据 npm 官方下载统计,@echo-health/koa-prometheus-exporter 在 2026/10/13 – 2026/11/11 这 30 天内被下载 2,745 次,日均约 92 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@echo-health/koa-prometheus-exporter 还在维护吗?

最新版本 1.0.4 发布于 2019/06/07(7 年前);至今共发布 13 个版本,其中过去 12 个月发布了 0 个;首次发布于 2017/10/03。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。