Interface: IMetrics
Defined in: src/types/interfaces/metrics.interface.ts:60
Metrics interface for Prometheus.
Remarks
Provides metrics collection with Prometheus-compatible output.
Implementation notes:
- Uses
prom-clientlibrary - Exposes
/metricsendpoint for scraping - Default buckets for histograms: [0.01, 0.05, 0.1, 0.5, 1, 5, 10]
Methods
incrementCounter()
incrementCounter(
name,labels?,value?):void
Defined in: src/types/interfaces/metrics.interface.ts:75
Increments a counter.
Parameters
name
string
Metric name
labels?
Readonly<Record<string, string>>
Metric labels
value?
number
Increment value (default: 1)
Returns
void
Example
metrics.incrementCounter('http_requests_total', { method: 'GET', endpoint: '/api/eprints' });
observeHistogram()
observeHistogram(
name,value,labels?):void
Defined in: src/types/interfaces/metrics.interface.ts:113
Observes a histogram value.
Parameters
name
string
Metric name
value
number
Observed value
labels?
Readonly<Record<string, string>>
Metric labels
Returns
void
Remarks
Typically used for request durations and sizes.
Example
metrics.observeHistogram('http_request_duration_seconds', duration, {
method: 'GET',
endpoint: '/api/eprints'
});
setGauge()
setGauge(
name,value,labels?):void
Defined in: src/types/interfaces/metrics.interface.ts:91
Sets a gauge value.
Parameters
name
string
Metric name
value
number
Gauge value
labels?
Readonly<Record<string, string>>
Metric labels
Returns
void
Example
metrics.setGauge('indexing_queue_size', queueSize, { queue: 'eprints' });
startTimer()
startTimer(
name,labels?): () =>void
Defined in: src/types/interfaces/metrics.interface.ts:138
Starts a timer for duration measurement.
Parameters
name
string
Metric name
labels?
Readonly<Record<string, string>>
Metric labels
Returns
Function
End function to stop timer
Returns
void
Remarks
Convenience method for measuring operation duration. Call the returned function to record the duration.
Example
const endTimer = metrics.startTimer('operation_duration_seconds', { operation: 'indexEprint' });
try {
await indexEprint(eprint);
} finally {
endTimer(); // Records duration in histogram
}