UNPKG

@splunk/otel

Version:

The Splunk distribution of OpenTelemetry Node Instrumentation provides a Node agent that automatically instruments your Node application to capture and report distributed traces to Splunk APM.

85 lines 4.1 kB
import { Span, Attributes } from '@opentelemetry/api'; import { ClientRequest, IncomingMessage, ServerResponse } from 'http'; import { InstrumentationConfig, SemconvStability } from '@opentelemetry/instrumentation'; export interface HttpCustomAttributeFunction { (span: Span, request: ClientRequest | IncomingMessage, response: IncomingMessage | ServerResponse): void; } export interface IgnoreIncomingRequestFunction { (request: IncomingMessage): boolean; } export interface IgnoreOutgoingRequestFunction { (request: ClientRequest): boolean; } export interface HttpRequestCustomAttributeFunction { (span: Span, request: ClientRequest | IncomingMessage): void; } export interface HttpResponseCustomAttributeFunction { (span: Span, response: IncomingMessage | ServerResponse): void; } export interface StartIncomingSpanCustomAttributeFunction { (request: IncomingMessage): Attributes; } export interface StartOutgoingSpanCustomAttributeFunction { (request: ClientRequest): Attributes; } /** * Options available for the HTTP instrumentation (see [documentation](https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-instrumentation-http#http-instrumentation-options)) */ export interface HttpDcInstrumentationConfig extends InstrumentationConfig { /** Not trace all incoming requests that matched with custom function */ ignoreIncomingRequestHook?: IgnoreIncomingRequestFunction; /** Not trace all outgoing requests that matched with custom function */ ignoreOutgoingRequestHook?: IgnoreOutgoingRequestFunction; /** If set to true, incoming requests will not be instrumented at all. */ disableIncomingRequestInstrumentation?: boolean; /** If set to true, outgoing requests will not be instrumented at all. */ disableOutgoingRequestInstrumentation?: boolean; /** Function for adding custom attributes after response is handled */ applyCustomAttributesOnSpan?: HttpCustomAttributeFunction; /** Function for adding custom attributes before request is handled */ requestHook?: HttpRequestCustomAttributeFunction; /** Function for adding custom attributes before response is handled */ responseHook?: HttpResponseCustomAttributeFunction; /** Function for adding custom attributes before a span is started in incomingRequest */ startIncomingSpanHook?: StartIncomingSpanCustomAttributeFunction; /** Function for adding custom attributes before a span is started in outgoingRequest */ startOutgoingSpanHook?: StartOutgoingSpanCustomAttributeFunction; /** The primary server name of the matched virtual host. */ serverName?: string; /** Require parent to create span for outgoing requests */ requireParentforOutgoingSpans?: boolean; /** Require parent to create span for incoming requests */ requireParentforIncomingSpans?: boolean; /** Map the following HTTP headers to span attributes. */ headersToSpanAttributes?: { client?: { requestHeaders?: string[]; responseHeaders?: string[]; }; server?: { requestHeaders?: string[]; responseHeaders?: string[]; }; }; /** * Enable automatic population of synthetic source type based on the user-agent header * @experimental **/ enableSyntheticSourceDetection?: boolean; /** * Controls which semantic-convention attributes are emitted on spans. * Default: 'OLD'. * When this option is set, it takes precedence over any value provided via * the OTEL_SEMCONV_STABILITY_OPT_IN environment variable. */ semconvStability?: SemconvStability; /** * [Optional] Additional query parameters to redact. * Use this to specify custom query strings that contain sensitive information. * These will replace/overwrite the default query strings that are to be redacted. * @example default strings ['sig','Signature','AWSAccessKeyId','X-Goog-Signature'] * @experimental */ redactedQueryParams?: string[]; } //# sourceMappingURL=types.d.ts.map