couchbase
Version:
The official Couchbase Node.js Client Library.
52 lines (51 loc) • 1.91 kB
TypeScript
import { Meter, ValueRecorder } from './metrics';
import type { Histogram as OTelHistogram, Meter as OTelMeter, MeterProvider as OTelMeterProvider } from '@opentelemetry/api';
/**
* Wrapper class for OpenTelemetry Histogram that implements ValueRecorder interface.
*/
export declare class OTelValueRecorder implements ValueRecorder {
private _histogram;
private _tags;
private _unit?;
/**
* Creates an instance of OTelValueRecorder.
*
* @param histogram - OpenTelemetry Histogram to record values.
* @param tags - Tags to associate with recorded values.
* @param unit - Optional unit of measurement (e.g., 's' for seconds). If provided, it indicates that the recorded values
* should be converted from microseconds to seconds.
*/
constructor(histogram: OTelHistogram, tags: Record<string, string>, unit?: string);
/**
* Records a value with the associated tags.
*
* @param value - The numeric value to record.
*/
recordValue(value: number): void;
}
/**
* Wrapper class for OpenTelemetry Meter that implements Meter interface.
*/
export declare class OTelWrapperMeter implements Meter {
private _otelMeter;
private _histograms;
/**
* Creates an instance of OTelWrapperMeter.
*
* @param meter - OpenTelemetry Meter to wrap.
*/
constructor(meter: OTelMeter);
/**
* Creates a ValueRecorder for recording metric values.
*
* @param name - The name of the metric.
* @param tags - Tags to associate with recorded values.
* @returns A ValueRecorder instance for recording metrics.
*/
valueRecorder(name: string, tags: Record<string, any>): ValueRecorder;
}
/**
* Creates an OpenTelemetry wrapper meter.
* Throws an Error if @opentelemetry/api is not installed.
*/
export declare function getOTelMeter(provider?: OTelMeterProvider): Meter;