import * as api from '@opentelemetry/api'; import * as metrics from '@opentelemetry/metrics'; /** * Metrics Collector Configuration */ export interface MetricsCollectorConfig { maxTimeoutUpdateMS?: number; meterProvider?: metrics.MeterProvider; metricNameSeparator?: string; name: string; url?: string; } /** * Base Class for metrics */ export declare abstract class BaseMetrics { protected _logger: api.DiagAPI; protected _maxTimeoutUpdateMS: number; protected _meter: metrics.Meter; private _name; private _boundCounters; private _metricNameSeparator; constructor(config: MetricsCollectorConfig); /** * Creates a metric key name based on metric name and a key * @param metricName * @param key */ protected _boundKey(metricName: string, key: string): string; /** * Updates counter based on boundkey * @param metricName * @param key * @param value */ protected _counterUpdate(metricName: string, key: string, value?: number): void; /** * @param metricName metric name - this will be added as label under name * "name" * @param values values to be used to generate bound counters for each * value prefixed with metricName * @param description metric description */ protected _createCounter(metricName: string, values: string[], description?: string): void; /** * Creates metrics */ protected abstract _createMetrics(): void; /** * Starts collecting stats */ abstract start(): void; }