From 0525942008c17ebaaba3d1b392dea9f58c082ecc Mon Sep 17 00:00:00 2001 From: Mathias Klippinge Date: Thu, 21 Sep 2023 11:22:10 +0200 Subject: [PATCH] Code review. Lint warnings. Stop using deprecated types. --- .../src/http.ts | 36 ++++++++++++------- .../src/types.ts | 8 ++--- 2 files changed, 27 insertions(+), 17 deletions(-) diff --git a/experimental/packages/opentelemetry-instrumentation-http/src/http.ts b/experimental/packages/opentelemetry-instrumentation-http/src/http.ts index aa43e4c7e48..a21ebf32acb 100644 --- a/experimental/packages/opentelemetry-instrumentation-http/src/http.ts +++ b/experimental/packages/opentelemetry-instrumentation-http/src/http.ts @@ -26,7 +26,7 @@ import { SpanStatusCode, trace, Histogram, - MetricAttributes, + Attributes, ValueType, } from '@opentelemetry/api'; import { @@ -310,7 +310,7 @@ export class HttpInstrumentation extends InstrumentationBase { request: http.ClientRequest, span: Span, startTime: HrTime, - metricAttributes: MetricAttributes + metricAttributes: Attributes ): http.ClientRequest { if (this._getConfig().requestHook) { this._callRequestHook(span, request); @@ -376,7 +376,7 @@ export class HttpInstrumentation extends InstrumentationBase { if (this._getConfig().applyCustomAttributesOnSpan) { safeExecuteInTheMiddle( () => - this._getConfig().applyCustomAttributesOnSpan!( + this._getConfig().applyCustomAttributesOnSpan?.( span, request, response @@ -512,9 +512,14 @@ export class HttpInstrumentation extends InstrumentationBase { }; const startTime = hrTime(); - const metricAttributes: MetricAttributes = Object.assign( + const customMetricAttributes = safeExecuteInTheMiddle( + () => instrumentation._getConfig().customMetricAttributes?.(), + () => {}, + true + ); + const metricAttributes: Attributes = Object.assign( utils.getIncomingRequestMetricAttributes(spanAttributes), - instrumentation._getConfig().customMetricAttributes?.() + customMetricAttributes ); const ctx = propagation.extract(ROOT_CONTEXT, headers); @@ -660,9 +665,14 @@ export class HttpInstrumentation extends InstrumentationBase { }); const startTime = hrTime(); - const metricAttributes: MetricAttributes = Object.assign( + const customMetricAttributes = safeExecuteInTheMiddle( + () => instrumentation._getConfig().customMetricAttributes?.(), + () => {}, + true + ); + const metricAttributes: Attributes = Object.assign( utils.getOutgoingRequestMetricAttributes(attributes), - instrumentation._getConfig().customMetricAttributes?.() + customMetricAttributes ); const spanOptions: SpanOptions = { @@ -723,7 +733,7 @@ export class HttpInstrumentation extends InstrumentationBase { request: http.IncomingMessage, response: http.ServerResponse, span: Span, - metricAttributes: MetricAttributes, + metricAttributes: Attributes, startTime: HrTime ) { const attributes = utils.getIncomingRequestAttributesOnResponse( @@ -751,7 +761,7 @@ export class HttpInstrumentation extends InstrumentationBase { if (this._getConfig().applyCustomAttributesOnSpan) { safeExecuteInTheMiddle( () => - this._getConfig().applyCustomAttributesOnSpan!( + this._getConfig().applyCustomAttributesOnSpan?.( span, request, response @@ -766,7 +776,7 @@ export class HttpInstrumentation extends InstrumentationBase { private _onServerResponseError( span: Span, - metricAttributes: MetricAttributes, + metricAttributes: Attributes, startTime: HrTime, error: Err ) { @@ -806,7 +816,7 @@ export class HttpInstrumentation extends InstrumentationBase { span: Span, spanKind: SpanKind, startTime: HrTime, - metricAttributes: MetricAttributes + metricAttributes: Attributes ) { if (!this._spanNotEnded.has(span)) { return; @@ -829,7 +839,7 @@ export class HttpInstrumentation extends InstrumentationBase { response: http.IncomingMessage | http.ServerResponse ) { safeExecuteInTheMiddle( - () => this._getConfig().responseHook!(span, response), + () => this._getConfig().responseHook?.(span, response), () => {}, true ); @@ -840,7 +850,7 @@ export class HttpInstrumentation extends InstrumentationBase { request: http.ClientRequest | http.IncomingMessage ) { safeExecuteInTheMiddle( - () => this._getConfig().requestHook!(span, request), + () => this._getConfig().requestHook?.(span, request), () => {}, true ); diff --git a/experimental/packages/opentelemetry-instrumentation-http/src/types.ts b/experimental/packages/opentelemetry-instrumentation-http/src/types.ts index 5734e737f5f..b1de0d7b3dd 100644 --- a/experimental/packages/opentelemetry-instrumentation-http/src/types.ts +++ b/experimental/packages/opentelemetry-instrumentation-http/src/types.ts @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { MetricAttributes, Span, SpanAttributes } from '@opentelemetry/api'; +import { Attributes, Span } from '@opentelemetry/api'; import type * as http from 'http'; import type * as https from 'https'; import { @@ -73,15 +73,15 @@ export interface HttpResponseCustomAttributeFunction { } export interface StartIncomingSpanCustomAttributeFunction { - (request: IncomingMessage): SpanAttributes; + (request: IncomingMessage): Attributes; } export interface StartOutgoingSpanCustomAttributeFunction { - (request: RequestOptions): SpanAttributes; + (request: RequestOptions): Attributes; } export interface CustomMetricAttributeFunction { - (): MetricAttributes; + (): Attributes; } /**