diff --git a/packages/opentelemetry-exporter-collector/src/platform/browser/CollectorMetricExporter.ts b/packages/opentelemetry-exporter-collector/src/platform/browser/CollectorMetricExporter.ts index bfd7697235..80127d5e4b 100644 --- a/packages/opentelemetry-exporter-collector/src/platform/browser/CollectorMetricExporter.ts +++ b/packages/opentelemetry-exporter-collector/src/platform/browser/CollectorMetricExporter.ts @@ -57,7 +57,7 @@ export class CollectorMetricExporter ); } - getDefaultUrl(config: CollectorExporterConfigBase) { + getDefaultUrl(config: CollectorExporterConfigBase): string { return typeof config.url === 'string' ? config.url : getEnv().OTEL_EXPORTER_OTLP_METRICS_ENDPOINT.length > 0 diff --git a/packages/opentelemetry-exporter-collector/src/platform/node/CollectorExporterNodeBase.ts b/packages/opentelemetry-exporter-collector/src/platform/node/CollectorExporterNodeBase.ts index a60993e84c..670569815b 100644 --- a/packages/opentelemetry-exporter-collector/src/platform/node/CollectorExporterNodeBase.ts +++ b/packages/opentelemetry-exporter-collector/src/platform/node/CollectorExporterNodeBase.ts @@ -43,6 +43,7 @@ export abstract class CollectorExporterNodeBase< constructor(config: CollectorExporterNodeConfigBase = {}) { super(config); + // eslint-disable-next-line @typescript-eslint/no-explicit-any if ((config as any).metadata) { diag.warn('Metadata cannot be set when using http'); } diff --git a/packages/opentelemetry-exporter-collector/src/platform/node/CollectorMetricExporter.ts b/packages/opentelemetry-exporter-collector/src/platform/node/CollectorMetricExporter.ts index 1be12d369f..d1aa0555b5 100644 --- a/packages/opentelemetry-exporter-collector/src/platform/node/CollectorMetricExporter.ts +++ b/packages/opentelemetry-exporter-collector/src/platform/node/CollectorMetricExporter.ts @@ -57,7 +57,7 @@ export class CollectorMetricExporter ); } - getDefaultUrl(config: CollectorExporterNodeConfigBase) { + getDefaultUrl(config: CollectorExporterNodeConfigBase): string { return typeof config.url === 'string' ? config.url : getEnv().OTEL_EXPORTER_OTLP_METRICS_ENDPOINT.length > 0 diff --git a/packages/opentelemetry-exporter-collector/src/types.ts b/packages/opentelemetry-exporter-collector/src/types.ts index e8ae3ff65e..d30bc53425 100644 --- a/packages/opentelemetry-exporter-collector/src/types.ts +++ b/packages/opentelemetry-exporter-collector/src/types.ts @@ -203,6 +203,7 @@ export namespace opentelemetryProto { droppedAttributesCount: number; } + // eslint-disable-next-line @typescript-eslint/no-shadow export enum SpanKind { SPAN_KIND_UNSPECIFIED, SPAN_KIND_INTERNAL, diff --git a/packages/opentelemetry-instrumentation-fetch/src/fetch.ts b/packages/opentelemetry-instrumentation-fetch/src/fetch.ts index 01ff72cb2f..29d52b0943 100644 --- a/packages/opentelemetry-instrumentation-fetch/src/fetch.ts +++ b/packages/opentelemetry-instrumentation-fetch/src/fetch.ts @@ -84,7 +84,7 @@ export class FetchInstrumentation extends InstrumentationBase< ); } - init() {} + init(): void {} private _getConfig(): FetchInstrumentationConfig { return this._config; @@ -326,11 +326,9 @@ export class FetchInstrumentation extends InstrumentationBase< } function onSuccess( span: api.Span, - resolve: ( - value?: Response | PromiseLike | undefined - ) => void, + resolve: (value: Response | PromiseLike) => void, response: Response - ) { + ): void { try { const resClone = response.clone(); const body = resClone.body; @@ -381,7 +379,7 @@ export class FetchInstrumentation extends InstrumentationBase< return original .apply(this, options instanceof Request ? [options] : [url, options]) .then( - (onSuccess as any).bind(this, createdSpan, resolve), + onSuccess.bind(this, createdSpan, resolve), onError.bind(this, createdSpan, reject) ); } @@ -447,7 +445,7 @@ export class FetchInstrumentation extends InstrumentationBase< /** * implements enable function */ - override enable() { + override enable(): void { if (isWrapped(window.fetch)) { this._unwrap(window, 'fetch'); this._diag.debug('removing previous patch for constructor'); @@ -458,7 +456,7 @@ export class FetchInstrumentation extends InstrumentationBase< /** * implements unpatch function */ - override disable() { + override disable(): void { this._unwrap(window, 'fetch'); this._usedResources = new WeakSet(); } diff --git a/packages/opentelemetry-instrumentation-http/src/http.ts b/packages/opentelemetry-instrumentation-http/src/http.ts index 5dfa740fd6..5ad2160b0e 100644 --- a/packages/opentelemetry-instrumentation-http/src/http.ts +++ b/packages/opentelemetry-instrumentation-http/src/http.ts @@ -71,11 +71,11 @@ export class HttpInstrumentation extends InstrumentationBase { return this._config; } - override setConfig(config: HttpInstrumentationConfig & InstrumentationConfig = {}) { + override setConfig(config: HttpInstrumentationConfig & InstrumentationConfig = {}): void { this._config = Object.assign({}, config); } - init() { + init(): [InstrumentationNodeModuleDefinition, InstrumentationNodeModuleDefinition] { return [this._getHttpsInstrumentation(), this._getHttpInstrumentation()]; } @@ -169,7 +169,7 @@ export class HttpInstrumentation extends InstrumentationBase { * Creates spans for incoming requests, restoring spans' context if applied. */ protected _getPatchIncomingRequestFunction(component: 'http' | 'https') { - return (original: (event: string, ...args: unknown[]) => boolean) => { + return (original: (event: string, ...args: unknown[]) => boolean): (this: unknown, event: string, ...args: unknown[]) => boolean => { return this._incomingRequestFunction(component, original); }; } @@ -305,7 +305,7 @@ export class HttpInstrumentation extends InstrumentationBase { if (response.aborted && !response.complete) { status = { code: SpanStatusCode.ERROR }; } else { - status = utils.parseResponseStatus(response.statusCode!); + status = utils.parseResponseStatus(response.statusCode); } span.setStatus(status); @@ -351,7 +351,7 @@ export class HttpInstrumentation extends InstrumentationBase { ) { const instrumentation = this; return function incomingRequest( - this: {}, + this: unknown, event: string, ...args: unknown[] ): boolean { @@ -488,7 +488,7 @@ export class HttpInstrumentation extends InstrumentationBase { ): Func { const instrumentation = this; return function outgoingRequest( - this: {}, + this: unknown, options: url.URL | http.RequestOptions | string, ...args: unknown[] ): http.ClientRequest { diff --git a/packages/opentelemetry-instrumentation-http/src/utils.ts b/packages/opentelemetry-instrumentation-http/src/utils.ts index e493df0de5..a24ff6f12a 100644 --- a/packages/opentelemetry-instrumentation-http/src/utils.ts +++ b/packages/opentelemetry-instrumentation-http/src/utils.ts @@ -161,7 +161,7 @@ export const setSpanWithError = ( span: Span, error: Err, obj?: IncomingMessage | ClientRequest -) => { +): void => { const message = error.message; span.setAttributes({ @@ -176,7 +176,7 @@ export const setSpanWithError = ( let status: SpanStatus; if ((obj as IncomingMessage).statusCode) { - status = parseResponseStatus((obj as IncomingMessage).statusCode!); + status = parseResponseStatus((obj as IncomingMessage).statusCode); } else if ((obj as ClientRequest).aborted) { status = { code: SpanStatusCode.ERROR }; } else { @@ -196,7 +196,7 @@ export const setSpanWithError = ( export const setRequestContentLengthAttribute = ( request: IncomingMessage, attributes: SpanAttributes -) => { +): void => { const length = getContentLength(request.headers); if (length === null) return; @@ -217,7 +217,7 @@ export const setRequestContentLengthAttribute = ( export const setResponseContentLengthAttribute = ( response: IncomingMessage, attributes: SpanAttributes -) => { +): void => { const length = getContentLength(response.headers); if (length === null) return; @@ -259,7 +259,7 @@ export const isCompressed = ( export const getRequestInfo = ( options: url.URL | RequestOptions | string, extraOptions?: RequestOptions -) => { +): { origin: string; pathname: string; method: string; optionsParsed: RequestOptions; } => { let pathname = '/'; let origin = ''; let optionsParsed: RequestOptions; diff --git a/packages/opentelemetry-instrumentation-http/test/functionals/http-package.test.ts b/packages/opentelemetry-instrumentation-http/test/functionals/http-package.test.ts index 60ec6fc4e7..8da3577ddb 100644 --- a/packages/opentelemetry-instrumentation-http/test/functionals/http-package.test.ts +++ b/packages/opentelemetry-instrumentation-http/test/functionals/http-package.test.ts @@ -102,7 +102,7 @@ describe('Packages', () => { ); const result = await httpPackage.get(urlparsed.href!); if (!resHeaders) { - const res = result as AxiosResponse<{}>; + const res = result as AxiosResponse; resHeaders = res.headers; } const spans = memoryExporter.getFinishedSpans(); diff --git a/packages/opentelemetry-instrumentation-http/test/functionals/https-package.test.ts b/packages/opentelemetry-instrumentation-http/test/functionals/https-package.test.ts index 8cec9b73b6..3735e530f9 100644 --- a/packages/opentelemetry-instrumentation-http/test/functionals/https-package.test.ts +++ b/packages/opentelemetry-instrumentation-http/test/functionals/https-package.test.ts @@ -108,7 +108,7 @@ describe('Packages', () => { ); const result = await httpPackage.get(urlparsed.href!); if (!resHeaders) { - const res = result as AxiosResponse<{}>; + const res = result as AxiosResponse; resHeaders = res.headers; } const spans = memoryExporter.getFinishedSpans(); diff --git a/packages/opentelemetry-sdk-node/src/sdk.ts b/packages/opentelemetry-sdk-node/src/sdk.ts index 46f00ce512..74c791fa6e 100644 --- a/packages/opentelemetry-sdk-node/src/sdk.ts +++ b/packages/opentelemetry-sdk-node/src/sdk.ts @@ -111,7 +111,7 @@ export class NodeSDK { spanProcessor: SpanProcessor, contextManager?: ContextManager, textMapPropagator?: TextMapPropagator - ) { + ): void { this._tracerProviderConfig = { tracerConfig, spanProcessor, @@ -121,12 +121,12 @@ export class NodeSDK { } /** Set configurations needed to register a MeterProvider */ - public configureMeterProvider(config: MeterConfig) { + public configureMeterProvider(config: MeterConfig): void { this._meterProviderConfig = config; } /** Detect resource attributes */ - public async detectResources(config?: ResourceDetectionConfig) { + public async detectResources(config?: ResourceDetectionConfig): Promise { const internalConfig: ResourceDetectionConfig = { detectors: [awsEc2Detector, gcpDetector, envDetector, processDetector], ...config, @@ -136,14 +136,14 @@ export class NodeSDK { } /** Manually add a resource */ - public addResource(resource: Resource) { + public addResource(resource: Resource): void { this._resource = this._resource.merge(resource); } /** * Once the SDK has been configured, call this method to construct SDK components and register them with the OpenTelemetry API. */ - public async start() { + public async start(): Promise { if (this._autoDetectResources) { await this.detectResources(); } diff --git a/packages/opentelemetry-sdk-trace-base/src/BasicTracerProvider.ts b/packages/opentelemetry-sdk-trace-base/src/BasicTracerProvider.ts index e72e6b0cfb..4c028448b4 100644 --- a/packages/opentelemetry-sdk-trace-base/src/BasicTracerProvider.ts +++ b/packages/opentelemetry-sdk-trace-base/src/BasicTracerProvider.ts @@ -96,6 +96,7 @@ export class BasicTracerProvider implements TracerProvider { this._tracers.set(key, new Tracer({ name, version }, this._config, this)); } + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion return this._tracers.get(key)!; } @@ -133,7 +134,7 @@ export class BasicTracerProvider implements TracerProvider { * * @param config Configuration object for SDK registration */ - register(config: SDKRegistrationConfig = {}) { + register(config: SDKRegistrationConfig = {}): void { trace.setGlobalTracerProvider(this); if (config.propagator === undefined) { config.propagator = this._buildPropagatorFromEnv(); @@ -197,7 +198,7 @@ export class BasicTracerProvider implements TracerProvider { }); } - shutdown() { + shutdown(): Promise { return this.activeSpanProcessor.shutdown(); } diff --git a/packages/opentelemetry-sdk-trace-base/src/Span.ts b/packages/opentelemetry-sdk-trace-base/src/Span.ts index 32226332dc..429bf06e8d 100644 --- a/packages/opentelemetry-sdk-trace-base/src/Span.ts +++ b/packages/opentelemetry-sdk-trace-base/src/Span.ts @@ -188,7 +188,7 @@ export class Span implements api.Span, ReadableSpan { return this._ended === false; } - recordException(exception: api.Exception, time: api.TimeInput = hrTime()) { + recordException(exception: api.Exception, time: api.TimeInput = hrTime()): void { const attributes: api.SpanAttributes = {}; if (typeof exception === 'string') { attributes[SemanticAttributes.EXCEPTION_MESSAGE] = exception; diff --git a/packages/opentelemetry-sdk-trace-base/src/Tracer.ts b/packages/opentelemetry-sdk-trace-base/src/Tracer.ts index 446e944189..f39d55d9fd 100644 --- a/packages/opentelemetry-sdk-trace-base/src/Tracer.ts +++ b/packages/opentelemetry-sdk-trace-base/src/Tracer.ts @@ -27,6 +27,7 @@ import { BasicTracerProvider } from './BasicTracerProvider'; import { Span } from './Span'; import { SpanLimits, TracerConfig } from './types'; import { mergeConfig } from './utility'; +import { SpanProcessor } from './SpanProcessor'; /** * This class represents a basic tracer. @@ -216,7 +217,7 @@ export class Tracer implements api.Tracer { return this._spanLimits; } - getActiveSpanProcessor() { + getActiveSpanProcessor(): SpanProcessor { return this._tracerProvider.getActiveSpanProcessor(); } } diff --git a/packages/opentelemetry-sdk-trace-base/src/config.ts b/packages/opentelemetry-sdk-trace-base/src/config.ts index 042427d04a..7ed67c2b12 100644 --- a/packages/opentelemetry-sdk-trace-base/src/config.ts +++ b/packages/opentelemetry-sdk-trace-base/src/config.ts @@ -48,12 +48,12 @@ export const DEFAULT_CONFIG = { /** * Based on environment, builds a sampler, complies with specification. - * @param env optional, by default uses getEnv(), but allows passing a value to reuse parsed environment + * @param environment optional, by default uses getEnv(), but allows passing a value to reuse parsed environment */ export function buildSamplerFromEnv( - env: Required = getEnv() + environment: Required = getEnv() ): Sampler { - switch (env.OTEL_TRACES_SAMPLER) { + switch (environment.OTEL_TRACES_SAMPLER) { case TracesSamplerValues.AlwaysOn: return new AlwaysOnSampler(); case TracesSamplerValues.AlwaysOff: @@ -67,25 +67,25 @@ export function buildSamplerFromEnv( root: new AlwaysOffSampler(), }); case TracesSamplerValues.TraceIdRatio: - return new TraceIdRatioBasedSampler(getSamplerProbabilityFromEnv(env)); + return new TraceIdRatioBasedSampler(getSamplerProbabilityFromEnv(environment)); case TracesSamplerValues.ParentBasedTraceIdRatio: return new ParentBasedSampler({ - root: new TraceIdRatioBasedSampler(getSamplerProbabilityFromEnv(env)), + root: new TraceIdRatioBasedSampler(getSamplerProbabilityFromEnv(environment)), }); default: diag.error( - `OTEL_TRACES_SAMPLER value "${env.OTEL_TRACES_SAMPLER} invalid, defaulting to ${FALLBACK_OTEL_TRACES_SAMPLER}".` + `OTEL_TRACES_SAMPLER value "${environment.OTEL_TRACES_SAMPLER} invalid, defaulting to ${FALLBACK_OTEL_TRACES_SAMPLER}".` ); return new AlwaysOnSampler(); } } function getSamplerProbabilityFromEnv( - env: Required + environment: Required ): number | undefined { if ( - env.OTEL_TRACES_SAMPLER_ARG === undefined || - env.OTEL_TRACES_SAMPLER_ARG === '' + environment.OTEL_TRACES_SAMPLER_ARG === undefined || + environment.OTEL_TRACES_SAMPLER_ARG === '' ) { diag.error( `OTEL_TRACES_SAMPLER_ARG is blank, defaulting to ${DEFAULT_RATIO}.` @@ -93,18 +93,18 @@ function getSamplerProbabilityFromEnv( return DEFAULT_RATIO; } - const probability = Number(env.OTEL_TRACES_SAMPLER_ARG); + const probability = Number(environment.OTEL_TRACES_SAMPLER_ARG); if (isNaN(probability)) { diag.error( - `OTEL_TRACES_SAMPLER_ARG=${env.OTEL_TRACES_SAMPLER_ARG} was given, but it is invalid, defaulting to ${DEFAULT_RATIO}.` + `OTEL_TRACES_SAMPLER_ARG=${environment.OTEL_TRACES_SAMPLER_ARG} was given, but it is invalid, defaulting to ${DEFAULT_RATIO}.` ); return DEFAULT_RATIO; } if (probability < 0 || probability > 1) { diag.error( - `OTEL_TRACES_SAMPLER_ARG=${env.OTEL_TRACES_SAMPLER_ARG} was given, but it is out of range ([0..1]), defaulting to ${DEFAULT_RATIO}.` + `OTEL_TRACES_SAMPLER_ARG=${environment.OTEL_TRACES_SAMPLER_ARG} was given, but it is out of range ([0..1]), defaulting to ${DEFAULT_RATIO}.` ); return DEFAULT_RATIO; } diff --git a/packages/opentelemetry-sdk-trace-base/src/export/InMemorySpanExporter.ts b/packages/opentelemetry-sdk-trace-base/src/export/InMemorySpanExporter.ts index 4a49892899..c7c17d80c1 100644 --- a/packages/opentelemetry-sdk-trace-base/src/export/InMemorySpanExporter.ts +++ b/packages/opentelemetry-sdk-trace-base/src/export/InMemorySpanExporter.ts @@ -51,7 +51,7 @@ export class InMemorySpanExporter implements SpanExporter { return Promise.resolve(); } - reset() { + reset(): void { this._finishedSpans = []; } diff --git a/packages/opentelemetry-sdk-trace-base/src/utility.ts b/packages/opentelemetry-sdk-trace-base/src/utility.ts index 88ac69701c..542c26925e 100644 --- a/packages/opentelemetry-sdk-trace-base/src/utility.ts +++ b/packages/opentelemetry-sdk-trace-base/src/utility.ts @@ -14,14 +14,15 @@ * limitations under the License. */ +import { Sampler } from '@opentelemetry/api'; import { buildSamplerFromEnv, DEFAULT_CONFIG } from './config'; -import { TracerConfig } from './types'; +import { SpanLimits, TracerConfig } from './types'; /** * Function to merge Default configuration (as specified in './config') with * user provided configurations. */ -export function mergeConfig(userConfig: TracerConfig) { +export function mergeConfig(userConfig: TracerConfig): TracerConfig & { sampler: Sampler; spanLimits: SpanLimits } { const perInstanceDefaults: Partial = { sampler: buildSamplerFromEnv(), }; diff --git a/packages/opentelemetry-sdk-trace-base/test/common/BasicTracerProvider.test.ts b/packages/opentelemetry-sdk-trace-base/test/common/BasicTracerProvider.test.ts index 220b71d6cf..581a30f855 100644 --- a/packages/opentelemetry-sdk-trace-base/test/common/BasicTracerProvider.test.ts +++ b/packages/opentelemetry-sdk-trace-base/test/common/BasicTracerProvider.test.ts @@ -46,7 +46,7 @@ import { } from '../../src'; describe('BasicTracerProvider', () => { - let removeEvent: Function | undefined; + let removeEvent: (() => void) | undefined; const envSource = (typeof window !== 'undefined' ? window : process.env) as any; @@ -267,7 +267,7 @@ describe('BasicTracerProvider', () => { provider.register(); assert.ok( errorStub.getCall(0).args[0] === - 'Exporter "missing-exporter" requested through environment variable is unavailable.' + 'Exporter "missing-exporter" requested through environment variable is unavailable.' ); errorStub.restore(); }); diff --git a/packages/opentelemetry-sdk-trace-base/test/common/MultiSpanProcessor.test.ts b/packages/opentelemetry-sdk-trace-base/test/common/MultiSpanProcessor.test.ts index 5c263caa4f..7412a121ca 100644 --- a/packages/opentelemetry-sdk-trace-base/test/common/MultiSpanProcessor.test.ts +++ b/packages/opentelemetry-sdk-trace-base/test/common/MultiSpanProcessor.test.ts @@ -45,7 +45,7 @@ class TestProcessor implements SpanProcessor { } describe('MultiSpanProcessor', () => { - let removeEvent: Function | undefined; + let removeEvent: (() => void) | undefined; afterEach(() => { if (removeEvent) { removeEvent(); diff --git a/packages/opentelemetry-sdk-trace-node/src/NodeTracerProvider.ts b/packages/opentelemetry-sdk-trace-node/src/NodeTracerProvider.ts index 4465acc030..8e4575a390 100644 --- a/packages/opentelemetry-sdk-trace-node/src/NodeTracerProvider.ts +++ b/packages/opentelemetry-sdk-trace-node/src/NodeTracerProvider.ts @@ -56,7 +56,7 @@ export class NodeTracerProvider extends BasicTracerProvider { super(config); } - override register(config: SDKRegistrationConfig = {}) { + override register(config: SDKRegistrationConfig = {}): void { if (config.contextManager === undefined) { const ContextManager = semver.gte(process.version, '14.8.0') ? AsyncLocalStorageContextManager