33
44import { AppConfigurationClient , ConfigurationSettingId , GetConfigurationSettingOptions , ListConfigurationSettingsOptions } from "@azure/app-configuration" ;
55import { AzureAppConfigurationOptions } from "../AzureAppConfigurationOptions" ;
6- import { FeatureFlagTracing } from "./FeatureFlagTracing " ;
6+ import { FeatureFlagTracingOptions } from "./FeatureFlagTracingOptions " ;
77import {
88 AZURE_FUNCTION_ENV_VAR ,
99 AZURE_WEB_APP_ENV_VAR ,
1010 CONTAINER_APP_ENV_VAR ,
1111 DEV_ENV_VAL ,
1212 ENV_AZURE_APP_CONFIGURATION_TRACING_DISABLED ,
1313 ENV_KEY ,
14+ FEATURE_FILTER_TYPE_KEY ,
1415 HOST_TYPE_KEY ,
1516 HostType ,
1617 KEY_VAULT_CONFIGURED_TAG ,
@@ -29,18 +30,18 @@ export function listConfigurationSettingsWithTrace(
2930 requestTracingEnabled : boolean ;
3031 initialLoadCompleted : boolean ;
3132 appConfigOptions : AzureAppConfigurationOptions | undefined ;
32- featureFlagTracingOptions : FeatureFlagTracing | undefined ;
33+ featureFlagTracingOptions : FeatureFlagTracingOptions | undefined ;
3334 } ,
3435 client : AppConfigurationClient ,
3536 listOptions : ListConfigurationSettingsOptions
3637) {
37- const { requestTracingEnabled, initialLoadCompleted, appConfigOptions } = requestTracingOptions ;
38+ const { requestTracingEnabled, initialLoadCompleted, appConfigOptions, featureFlagTracingOptions } = requestTracingOptions ;
3839
3940 const actualListOptions = { ...listOptions } ;
4041 if ( requestTracingEnabled ) {
4142 actualListOptions . requestOptions = {
4243 customHeaders : {
43- [ CORRELATION_CONTEXT_HEADER_NAME ] : createCorrelationContextHeader ( appConfigOptions , initialLoadCompleted )
44+ [ CORRELATION_CONTEXT_HEADER_NAME ] : createCorrelationContextHeader ( appConfigOptions , featureFlagTracingOptions , initialLoadCompleted )
4445 }
4546 } ;
4647 }
@@ -53,26 +54,27 @@ export function getConfigurationSettingWithTrace(
5354 requestTracingEnabled : boolean ;
5455 initialLoadCompleted : boolean ;
5556 appConfigOptions : AzureAppConfigurationOptions | undefined ;
57+ featureFlagTracingOptions : FeatureFlagTracingOptions | undefined ;
5658 } ,
5759 client : AppConfigurationClient ,
5860 configurationSettingId : ConfigurationSettingId ,
5961 getOptions ?: GetConfigurationSettingOptions ,
6062) {
61- const { requestTracingEnabled, initialLoadCompleted, appConfigOptions } = requestTracingOptions ;
63+ const { requestTracingEnabled, initialLoadCompleted, appConfigOptions, featureFlagTracingOptions } = requestTracingOptions ;
6264 const actualGetOptions = { ...getOptions } ;
6365
6466 if ( requestTracingEnabled ) {
6567 actualGetOptions . requestOptions = {
6668 customHeaders : {
67- [ CORRELATION_CONTEXT_HEADER_NAME ] : createCorrelationContextHeader ( appConfigOptions , initialLoadCompleted )
69+ [ CORRELATION_CONTEXT_HEADER_NAME ] : createCorrelationContextHeader ( appConfigOptions , featureFlagTracingOptions , initialLoadCompleted )
6870 }
6971 } ;
7072 }
7173
7274 return client . getConfigurationSetting ( configurationSettingId , actualGetOptions ) ;
7375}
7476
75- export function createCorrelationContextHeader ( options : AzureAppConfigurationOptions | undefined , isInitialLoadCompleted : boolean ) : string {
77+ export function createCorrelationContextHeader ( options : AzureAppConfigurationOptions | undefined , featureFlagTracing : FeatureFlagTracingOptions | undefined , isInitialLoadCompleted : boolean ) : string {
7678 /*
7779 RequestType: 'Startup' during application starting up, 'Watch' after startup completed.
7880 Host: identify with defined envs
@@ -83,6 +85,7 @@ export function createCorrelationContextHeader(options: AzureAppConfigurationOpt
8385 keyValues . set ( REQUEST_TYPE_KEY , isInitialLoadCompleted ? RequestType . WATCH : RequestType . STARTUP ) ;
8486 keyValues . set ( HOST_TYPE_KEY , getHostType ( ) ) ;
8587 keyValues . set ( ENV_KEY , isDevEnvironment ( ) ? DEV_ENV_VAL : undefined ) ;
88+ keyValues . set ( FEATURE_FILTER_TYPE_KEY , featureFlagTracing ?. usesAnyFeatureFilter ( ) ? featureFlagTracing . createFeatureFiltersString ( ) : undefined ) ;
8689
8790 const tags : string [ ] = [ ] ;
8891 if ( options ?. keyVaultOptions ) {
0 commit comments