diff --git a/packages/opencensus-propagation-stackdriver/src/stackdriver-format.ts b/packages/opencensus-propagation-stackdriver/src/stackdriver-format.ts index aee305869..c90f1b124 100644 --- a/packages/opencensus-propagation-stackdriver/src/stackdriver-format.ts +++ b/packages/opencensus-propagation-stackdriver/src/stackdriver-format.ts @@ -42,13 +42,22 @@ const TRACE_TRUE = 0x1; /** Propagates span context through Stackdriver Format propagation. */ export class StackdriverFormat implements Propagation { + headerName: string; + + constructor(config?: { headerName?: string }) { + if (config && config.headerName) { + this.headerName = config.headerName; + } else { + this.headerName = TRACE_CONTEXT_HEADER_NAME; + } + } /** * Gets the span context from a request headers. If there is no span context * in the headers, null is returned. * @param getter */ extract(getter: HeaderGetter): SpanContext | null { - const traceContextHeader = getter.getHeader(TRACE_CONTEXT_HEADER_NAME); + const traceContextHeader = getter.getHeader(this.headerName); if (typeof traceContextHeader !== 'string') { return null; } @@ -83,7 +92,7 @@ export class StackdriverFormat implements Propagation { header += `;o=${spanContext.options}`; } - setter.setHeader(TRACE_CONTEXT_HEADER_NAME, header); + setter.setHeader(this.headerName, header); } /** Generate SpanContexts */