Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

eggjs/egg-prometheus

Repository files navigation

egg-prometheus

Prometheus plugin for egg framework

NPM version CI Test coverage npm download

Prometheus plugin for egg framework

Install

npm i egg-prometheus --save

Usage

Enable the plugin

Change ${app_root}/config/plugin.js to enable Prometheus plugin:

exports.prometheus = {
 enable: true,
 package: "egg-prometheus",
};

Configuration

exports.prometheus = {
 timeout: 5000,
 scrapePort: 3000,
 scrapePath: '/metrics',
 defaultHttpMetricsFilter: ({ method, status, routerName, path }) => true,
 defaultLabels: { ... },
};
  • timeout: metrics pull timeout
  • scrapePort: the port to scrape metrics from
  • scrapePath: the path to scrape metrics from
  • defaultLabels: static labels may be applied to every metric emitted by a registry
  • defaultHttpMetricsFilter: can custom filter default http metrics, return false can prevent metrics

Default Metrics

  • http_response_time_ms summary: ms to handle a request
  • http_request_rate counter: number of requests to a route

while egg-rpc-base is enabled

  • rpc_consumer_response_time_ms summary: ms of rpc time consuming
  • rpc_consumer_request_rate counter: number of rpc calls
  • rpc_consumer_fail_response_time_ms summary: ms of fail rpc time consuming
  • rpc_consumer_request_fail_rate counter: number of fail rpc calls
  • rpc_consumer_request_size_bytes summary: rpc request size in bytes
  • rpc_consumer_response_size_bytes summary: rpc response size in bytes
  • rpc_provider_response_time_ms summary: ms of request processed time
  • rpc_provider_request_rate counter: number of rpc calls
  • rpc_provider_fail_response_time_ms summary: ms of fail request processed time
  • rpc_provider_request_fail_rate counter: number of fail rpc calls

Custom Metrics

// Here's an example senario:
// Some metric called 'pv' stands for 'page view'
// We are going to know its total count.
// To ensure that we know the pv of each visit source
// We define a label called from.
const counter = new app.prometheus.Counter({
 name: "pv_total",
 help: "custom counter",
 labelNames: ["from"],
});
// To use the from label, we do as the following.
counter.labels(['google_com']).inc();
counter.labels(['facebook_com']).inc();
// Gauge
const gauge = new app.prometheus.Gauge({
 name: "xxx_gauge",
 help: "custom gauge",
 labelNames: ["xxx"],
});
// Histogram
const histogram = new app.prometheus.Histogram({
 name: "xxx_histogram",
 help: "custom histogram",
 labelNames: ["xxx"],
});
// Summary
const summary = new app.prometheus.Summary({
 name: "xxx_summary",
 help: "custom summary",
 labelNames: ["xxx"],
});

How to Contribute

Please let us know how can we help. Do check out issues for bug reports or suggestions first.

To become a contributor, please follow our contributing guide.

License

MIT

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.

About

Prometheus plugin for Egg.js

Resources

License

Stars

Watchers

Forks

Contributors

AltStyle によって変換されたページ (->オリジナル) /