Skip to content
This repository was archived by the owner on Jan 21, 2026. It is now read-only.

Commit de17efe

Browse files
committed
feat: allow users to specify a propagation mechanism
1 parent c71b930 commit de17efe

3 files changed

Lines changed: 16 additions & 4 deletions

File tree

src/config.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -213,6 +213,13 @@ export interface Config {
213213
*/
214214
tracePolicy?: TracePolicy;
215215

216+
/**
217+
* If specified, the Trace Agent will use this context header propagation
218+
* implementation instead of @opencensus/propagation-stackdriver, the default
219+
* trace context header format.
220+
*/
221+
propagation?: OpenCensusPropagation;
222+
216223
/**
217224
* Buffer the captured traces for `flushDelaySeconds` seconds before
218225
* publishing to the Stackdriver Trace API, unless the buffer fills up first.

src/index.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,10 @@ function initConfig(userConfig: Forceable<Config>): Forceable<TopLevelConfig> {
146146
contextHeaderBehavior: mergedConfig.contextHeaderBehavior as
147147
TraceContextHeaderBehavior
148148
},
149-
overrides: {tracePolicy: mergedConfig.tracePolicy}
149+
overrides: {
150+
tracePolicy: mergedConfig.tracePolicy,
151+
propagation: mergedConfig.propagation
152+
}
150153
};
151154
}
152155

src/tracing.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import {v1 as stackdriverPropagation} from '@opencensus/propagation-stackdriver'
1818
import * as path from 'path';
1919

2020
import {cls, TraceCLSConfig} from './cls';
21-
import {TracePolicy} from './config';
21+
import {OpenCensusPropagation, TracePolicy} from './config';
2222
import {LEVELS, Logger} from './logger';
2323
import {StackdriverTracer} from './trace-api';
2424
import {pluginLoader, PluginLoaderConfig} from './trace-plugin-loader';
@@ -31,7 +31,8 @@ export type TopLevelConfig = {
3131
writerConfig: TraceWriterConfig;
3232
pluginLoaderConfig: PluginLoaderConfig;
3333
tracePolicyConfig: TracePolicyConfig;
34-
overrides: {tracePolicy?: TracePolicy;};
34+
overrides:
35+
{tracePolicy?: TracePolicy; propagation?: OpenCensusPropagation;};
3536
}|{
3637
enabled: false;
3738
};
@@ -121,7 +122,8 @@ export class Tracing implements Component {
121122

122123
const tracePolicy = this.config.overrides.tracePolicy ||
123124
new BuiltinTracePolicy(this.config.tracePolicyConfig);
124-
const propagation = stackdriverPropagation;
125+
const propagation =
126+
this.config.overrides.propagation || stackdriverPropagation;
125127

126128
const tracerComponents = {logger: this.logger, tracePolicy, propagation};
127129

0 commit comments

Comments
 (0)