1717import * as path from 'path' ;
1818
1919import { cls , TraceCLSConfig } from './cls' ;
20- import { TracePolicy } from './config' ;
20+ import { Config , TracePolicy } from './config' ;
2121import { LEVELS , Logger } from './logger' ;
2222import { StackdriverTracer } from './trace-api' ;
2323import { pluginLoader , PluginLoaderConfig } from './trace-plugin-loader' ;
@@ -26,7 +26,8 @@ import {BuiltinTracePolicy, TracePolicyConfig} from './tracing-policy';
2626import { Component , Forceable , packageNameFromPath , Singleton } from './util' ;
2727
2828export type TopLevelConfig = {
29- enabled : boolean ; logLevel : number ; clsConfig : TraceCLSConfig ;
29+ original : Config ; enabled : boolean ; logLevel : number ;
30+ clsConfig : TraceCLSConfig ;
3031 writerConfig : TraceWriterConfig ;
3132 pluginLoaderConfig : PluginLoaderConfig ;
3233 tracePolicyConfig : TracePolicyConfig ;
@@ -120,6 +121,18 @@ export class Tracing implements Component {
120121
121122 const tracePolicy = this . config . overrides . tracePolicy ||
122123 new BuiltinTracePolicy ( this . config . tracePolicyConfig ) ;
124+ if ( this . config . overrides . tracePolicy ) {
125+ const unusedOptions = Object . keys ( this . config . tracePolicyConfig ) ;
126+ const optionsToWarn =
127+ Object . keys ( this . config . original )
128+ . filter ( key => unusedOptions . indexOf ( key ) !== - 1 )
129+ . map ( key => `config.${ key } ` ) ;
130+ if ( optionsToWarn . length > 0 ) {
131+ this . logger . warn (
132+ 'StackdriverTracer#start: config.tracePolicy was specified;' ,
133+ `ignoring user-set values for: [${ optionsToWarn . join ( ', ' ) } ]` ) ;
134+ }
135+ }
123136
124137 this . traceAgent . enable (
125138 this . config . pluginLoaderConfig . tracerConfig , tracePolicy , this . logger ) ;
0 commit comments