@vtex/diagnostics-nodejs
Version:
Diagnostics library for Node.js applications
51 lines • 1.6 kB
TypeScript
import { Attributes, SpanKind } from '@opentelemetry/api';
export { SamplingDecision, Sampler, SamplingResult } from '@opentelemetry/sdk-trace-base';
export { SpanKind } from '@opentelemetry/api';
export declare enum CompositionMode {
SampleIfAny = "sample_if_any",
SampleIfAll = "sample_if_all"
}
export interface AccountProvider {
getDefaultRate(): number;
getSamplingRate(accountId: string): [number, boolean];
}
export interface SpanOptions {
attributes?: Record<string, any>;
kind?: SpanKind;
timestamp?: number;
}
export interface BaseAttributes {
[key: string]: string | number | boolean | undefined;
}
export interface ContribInstrumentationFunc {
(tracerProvider: any): void;
}
export interface TraceClient {
initialize(): Promise<void>;
startSpan(name: string, options?: SpanOptions): any;
setSpanAttributes(span: any, attributes: BaseAttributes): void;
setSpanError(span: any, error: Error): void;
endSpan(span: any): void;
shutdown(): Promise<void>;
}
export interface SamplerMetadataType {
samplerType: string;
decision: string;
reason: string;
extra: Record<string, string>;
toAttributes(): Attributes;
}
export interface AccountConfig {
defaultRate: number;
}
export interface StaticProviderConfig extends AccountConfig {
accounts: Record<string, number>;
}
export interface FileSourceConfig {
path: string;
refreshIntervalMs?: number;
}
export interface ConfigurableProviderConfig extends AccountConfig {
initialAccounts?: Record<string, number>;
}
//# sourceMappingURL=tracer.d.ts.map