Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/freight-hub/verdaccio-openmetrics
Verdaccio Plugin which exposes an OpenMetrics/Prometheus endpoint with health and traffic metrics
https://github.com/freight-hub/verdaccio-openmetrics
monitoring site-reliability-team
Last synced: 3 months ago
JSON representation
Verdaccio Plugin which exposes an OpenMetrics/Prometheus endpoint with health and traffic metrics
- Host: GitHub
- URL: https://github.com/freight-hub/verdaccio-openmetrics
- Owner: freight-hub
- License: mit
- Created: 2020-12-18T15:37:04.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2023-01-07T06:12:01.000Z (about 2 years ago)
- Last Synced: 2024-10-21T01:09:23.502Z (3 months ago)
- Topics: monitoring, site-reliability-team
- Language: TypeScript
- Homepage: https://www.npmjs.com/package/@freighthub/verdaccio-openmetrics
- Size: 606 KB
- Stars: 7
- Watchers: 6
- Forks: 1
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# verdaccio-openmetrics
> Verdaccio plugin exposing an OpenMetrics/Prometheus endpoint with health and traffic metrics
This plugin, when installed and loaded,
serves Prometheus/OpenMetrics metrics at a known path.
This can then be scraped by your Prometheus installation, Datadog agent, etc.By default, a second HTTP listener is used
to keep metrics internal to your infrastructure more easily.
The default metrics port is 9090.
So, metrics will be available at `:9090/metrics`.If you instead want to have your metrics available via Verdaccio's main API,
set `metrics_on_main: true` and access `/-/metrics` on Verdaccio.
This will disable the second HTTP listener unless you also pass `metrics_port` explicitly.The primary metrics exposed are HTTP response latencies by request method and response status code.
There's also an option to collect NodeJS runtime metrics
(the defaults from the `prom-client` package).
A further option will be to infrequently collect statistics about the database,
however it's not clear yet what will be interesting to expose there.## config
If no extra config is given, HTTP request metrics will be exposed at `:9090/metrics`.
```yaml
middlewares:
openmetrics:
enabled: true
```If you want additional metrics, for example runtime and database metrics:
```yaml
middlewares:
openmetrics:
enabled: true
collect_runtime: true
collect_database: true
```All config keys and default values:
```typescript
interface MetricsConfig {
metrics_port: 9090; // Exposes metrics at /metrics on this alternate port
metrics_on_main: false; // Exposes metrics at /-/metrics on Verdaccio
default_labels: {}; // key/value tags attached to every metriccollect_http: true; // Latency metrics for Verdaccio's API, by method and status code
collect_database: false; // WIP metrics about Verdaccio's database, updated infrequently
collect_up: false; // a fixed gauge of '1'
collect_runtime: false; // the default Prometheus metrics for NodeJS processes
}
```---
## development
See the [verdaccio contributing guide](https://github.com/verdaccio/verdaccio/blob/master/CONTRIBUTING.md) for instructions setting up your development environment.
Note that `yarn` is being used in place of `npm` in this plugin.
Once you have completed that, use the following yarn tasks.- `yarn build`
Build a distributable archive
- `yarn test`
Run unit test
For more information about any of these commands run `yarn ${task} -- --help`.