2021-10-28 09:23:06 +00:00
|
|
|
# overleaf/metrics-module
|
2021-03-16 11:47:18 +00:00
|
|
|
|
|
|
|
Wrappers the [prom-client](https://github.com/siimon/prom-client) npm module to provide [Prometheus](https://prometheus.io/) metrics at `/metrics`.
|
|
|
|
|
|
|
|
Use:
|
2021-10-28 09:23:06 +00:00
|
|
|
|
2021-03-16 11:47:18 +00:00
|
|
|
```
|
2023-10-18 08:32:14 +00:00
|
|
|
// Metrics must be initialized before importing anything else
|
|
|
|
require('@overleaf/metrics/initialize')
|
2021-03-16 11:47:18 +00:00
|
|
|
|
|
|
|
const express = require('express')
|
2023-10-18 08:32:14 +00:00
|
|
|
const metrics = require('@overleaf/metrics')
|
2021-03-16 11:47:18 +00:00
|
|
|
const app = express()
|
|
|
|
metrics.injectMetricsRoute(app)
|
|
|
|
```
|
2021-10-28 09:23:06 +00:00
|
|
|
|
2021-03-16 11:47:18 +00:00
|
|
|
Request logging can be enabled:
|
2021-10-28 09:23:06 +00:00
|
|
|
|
2021-03-16 11:47:18 +00:00
|
|
|
```
|
2021-10-28 09:23:06 +00:00
|
|
|
const logger = require('@overleaf/logger')
|
2021-03-16 11:47:18 +00:00
|
|
|
...
|
|
|
|
app.use(metrics.http.monitor(logger))
|
|
|
|
```
|
|
|
|
|
|
|
|
The metrics module can be configured through the following environment variables:
|
|
|
|
|
2021-10-28 09:23:06 +00:00
|
|
|
- `DEBUG_METRICS` - enables display of debugging messages to the console.
|
2023-10-18 08:32:14 +00:00
|
|
|
- `GCP_OPENTELEMETRY` - enables OpenTelemetry tracing for GCP
|
|
|
|
- `JAEGER_OPENTELEMETRY` - enables OpenTelemetry tracing for Jaeger (in the dev environment)
|
|
|
|
- `METRICS_APP_NAME` - the app label for metrics and spans
|
2021-10-28 09:23:06 +00:00
|
|
|
- `METRICS_COMPRESSION_LEVEL` - sets the [compression level](https://www.npmjs.com/package/compression#level) for `/metrics`
|
|
|
|
- `STACKDRIVER_LOGGING` - toggles the request logging format
|
|
|
|
- `UV_THREADPOOL_SIZE` - sets the libuv [thread pool](http://docs.libuv.org/en/v1.x/threadpool.html) size
|