Socket
Socket
Sign inDemoInstall

egg-prometheus

Package Overview
Dependencies
Maintainers
2
Versions
12
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

egg-prometheus

Prometheus plugin for Egg.js


Version published
Weekly downloads
328
increased by111.61%
Maintainers
2
Weekly downloads
 
Created
Source

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.

Keywords

FAQs

Package last updated on 12 Mar 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc