Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore(sdk-trace): fix lint warnings #2446

Merged
merged 3 commits into from Sep 4, 2021
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
Expand Up @@ -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)!;
}

Expand Down Expand Up @@ -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();
Expand Down Expand Up @@ -197,7 +198,7 @@ export class BasicTracerProvider implements TracerProvider {
});
}

shutdown() {
shutdown(): Promise<void> {
return this.activeSpanProcessor.shutdown();
}

Expand Down
2 changes: 1 addition & 1 deletion packages/opentelemetry-sdk-trace-base/src/Span.ts
Expand Up @@ -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;
Expand Down
3 changes: 2 additions & 1 deletion packages/opentelemetry-sdk-trace-base/src/Tracer.ts
Expand Up @@ -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.
Expand Down Expand Up @@ -216,7 +217,7 @@ export class Tracer implements api.Tracer {
return this._spanLimits;
}

getActiveSpanProcessor() {
getActiveSpanProcessor(): SpanProcessor {
return this._tracerProvider.getActiveSpanProcessor();
}
}
Expand Down
24 changes: 12 additions & 12 deletions packages/opentelemetry-sdk-trace-base/src/config.ts
Expand Up @@ -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<ENVIRONMENT> = getEnv()
environment: Required<ENVIRONMENT> = getEnv()
): Sampler {
switch (env.OTEL_TRACES_SAMPLER) {
switch (environment.OTEL_TRACES_SAMPLER) {
case TracesSamplerValues.AlwaysOn:
return new AlwaysOnSampler();
case TracesSamplerValues.AlwaysOff:
Expand All @@ -67,44 +67,44 @@ 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>
environment: Required<ENVIRONMENT>
): 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}.`
);
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;
}
Expand Down
Expand Up @@ -51,7 +51,7 @@ export class InMemorySpanExporter implements SpanExporter {
return Promise.resolve();
}

reset() {
reset(): void {
this._finishedSpans = [];
}

Expand Down
5 changes: 3 additions & 2 deletions packages/opentelemetry-sdk-trace-base/src/utility.ts
Expand Up @@ -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<TracerConfig> = {
sampler: buildSamplerFromEnv(),
};
Expand Down
Expand Up @@ -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;
Expand Down Expand Up @@ -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();
});
Expand Down
Expand Up @@ -45,7 +45,7 @@ class TestProcessor implements SpanProcessor {
}

describe('MultiSpanProcessor', () => {
let removeEvent: Function | undefined;
let removeEvent: (() => void) | undefined;
afterEach(() => {
if (removeEvent) {
removeEvent();
Expand Down
Expand Up @@ -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
Expand Down