/// import type * as http from 'http'; import * as url from 'url'; import { Func, HttpInstrumentationConfig, HttpRequestArgs } from './types'; import { InstrumentationBase, InstrumentationNodeModuleDefinition } from '@opentelemetry/instrumentation'; /** * Http instrumentation instrumentation for Opentelemetry */ export declare class HttpInstrumentation extends InstrumentationBase { /** keep track on spans not ended */ private readonly _spanNotEnded; private _headerCapture; private _httpServerDurationHistogram; private _httpClientDurationHistogram; constructor(config?: HttpInstrumentationConfig); protected _updateMetricInstruments(): void; setConfig(config?: HttpInstrumentationConfig): void; init(): [ InstrumentationNodeModuleDefinition, InstrumentationNodeModuleDefinition ]; private _getHttpInstrumentation; private _getHttpsInstrumentation; /** * Creates spans for incoming requests, restoring spans' context if applied. */ protected _getPatchIncomingRequestFunction(component: 'http' | 'https'): (original: (event: string, ...args: unknown[]) => boolean) => (this: unknown, event: string, ...args: unknown[]) => boolean; /** * Creates spans for outgoing requests, sending spans' context for distributed * tracing. */ protected _getPatchOutgoingRequestFunction(component: 'http' | 'https'): (original: Func) => Func; protected _getPatchOutgoingGetFunction(clientRequest: (options: http.RequestOptions | string | url.URL, ...args: HttpRequestArgs) => http.ClientRequest): (_original: Func) => Func; /** Patches HTTPS outgoing requests */ private _getPatchHttpsOutgoingRequestFunction; private _setDefaultOptions; /** Patches HTTPS outgoing get requests */ private _getPatchHttpsOutgoingGetFunction; /** * Attach event listeners to a client request to end span and add span attributes. * * @param request The original request object. * @param span representing the current operation * @param startTime representing the start time of the request to calculate duration in Metric * @param metricAttributes metric attributes */ private _traceClientRequest; private _incomingRequestFunction; private _outgoingRequestFunction; private _onServerResponseFinish; private _onServerResponseError; private _startHttpSpan; private _closeHttpSpan; private _callResponseHook; private _callRequestHook; private _callStartSpanHook; private _createHeaderCapture; } //# sourceMappingURL=http.d.ts.map