Skip to content

Commit 4444fda

Browse files
merge preview
2 parents d23b4a0 + 71aebab commit 4444fda

17 files changed

+509
-163
lines changed

package-lock.json

Lines changed: 88 additions & 87 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/AzureAppConfigurationImpl.ts

Lines changed: 34 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,14 @@ import {
2929
SEED_KEY_NAME,
3030
VARIANT_KEY_NAME,
3131
VARIANTS_KEY_NAME,
32-
CONFIGURATION_VALUE_KEY_NAME
32+
CONFIGURATION_VALUE_KEY_NAME,
33+
CONDITIONS_KEY_NAME,
34+
CLIENT_FILTERS_KEY_NAME
3335
} from "./featureManagement/constants.js";
3436
import { AzureKeyVaultKeyValueAdapter } from "./keyvault/AzureKeyVaultKeyValueAdapter.js";
3537
import { RefreshTimer } from "./refresh/RefreshTimer.js";
36-
import { getConfigurationSettingWithTrace, listConfigurationSettingsWithTrace, requestTracingEnabled } from "./requestTracing/utils.js";
38+
import { RequestTracingOptions, getConfigurationSettingWithTrace, listConfigurationSettingsWithTrace, requestTracingEnabled } from "./requestTracing/utils.js";
39+
import { FeatureFlagTracingOptions } from "./requestTracing/FeatureFlagTracingOptions.js";
3740
import { KeyFilter, LabelFilter, SettingSelector } from "./types.js";
3841
import { ConfigurationClientManager } from "./ConfigurationClientManager.js";
3942

@@ -61,6 +64,7 @@ export class AzureAppConfigurationImpl implements AzureAppConfiguration {
6164
#options: AzureAppConfigurationOptions | undefined;
6265
#isInitialLoadCompleted: boolean = false;
6366
#isFailoverRequest: boolean = false;
67+
#featureFlagTracing: FeatureFlagTracingOptions | undefined;
6468

6569
// Refresh
6670
#refreshInProgress: boolean = false;
@@ -99,6 +103,9 @@ export class AzureAppConfigurationImpl implements AzureAppConfiguration {
99103

100104
// enable request tracing if not opt-out
101105
this.#requestTracingEnabled = requestTracingEnabled();
106+
if (this.#requestTracingEnabled) {
107+
this.#featureFlagTracing = new FeatureFlagTracingOptions();
108+
}
102109

103110
if (options?.trimKeyPrefixes) {
104111
this.#sortedTrimKeyPrefixes = [...options.trimKeyPrefixes].sort((a, b) => b.localeCompare(a));
@@ -170,12 +177,14 @@ export class AzureAppConfigurationImpl implements AzureAppConfiguration {
170177
return this.#featureFlagEnabled && !!this.#options?.featureFlagOptions?.refresh?.enabled;
171178
}
172179

173-
get #requestTraceOptions() {
180+
get #requestTraceOptions(): RequestTracingOptions {
174181
return {
175-
requestTracingEnabled: this.#requestTracingEnabled,
176-
initialLoadCompleted: this.#isInitialLoadCompleted,
182+
enabled: this.#requestTracingEnabled,
177183
appConfigOptions: this.#options,
178-
isFailoverRequest: this.#isFailoverRequest
184+
initialLoadCompleted: this.#isInitialLoadCompleted,
185+
replicaCount: this.#clientManager.getReplicaCount(),
186+
isFailoverRequest: this.#isFailoverRequest,
187+
featureFlagTracing: this.#featureFlagTracing
179188
};
180189
}
181190

@@ -662,6 +671,25 @@ export class AzureAppConfigurationImpl implements AzureAppConfiguration {
662671
};
663672
}
664673

674+
if (this.#requestTracingEnabled && this.#featureFlagTracing !== undefined) {
675+
if (featureFlag[CONDITIONS_KEY_NAME] &&
676+
featureFlag[CONDITIONS_KEY_NAME][CLIENT_FILTERS_KEY_NAME] &&
677+
Array.isArray(featureFlag[CONDITIONS_KEY_NAME][CLIENT_FILTERS_KEY_NAME])) {
678+
for (const filter of featureFlag[CONDITIONS_KEY_NAME][CLIENT_FILTERS_KEY_NAME]) {
679+
this.#featureFlagTracing.updateFeatureFilterTracing(filter[NAME_KEY_NAME]);
680+
}
681+
}
682+
if (featureFlag[VARIANTS_KEY_NAME] && Array.isArray(featureFlag[VARIANTS_KEY_NAME])) {
683+
this.#featureFlagTracing.notifyMaxVariants(featureFlag[VARIANTS_KEY_NAME].length);
684+
}
685+
if (featureFlag[TELEMETRY_KEY_NAME] && featureFlag[TELEMETRY_KEY_NAME][ENABLED_KEY_NAME]) {
686+
this.#featureFlagTracing.usesTelemetry = true;
687+
}
688+
if (featureFlag[ALLOCATION_KEY_NAME] && featureFlag[ALLOCATION_KEY_NAME][SEED_KEY_NAME]) {
689+
this.#featureFlagTracing.usesSeed = true;
690+
}
691+
}
692+
665693
return featureFlag;
666694
}
667695

0 commit comments

Comments
 (0)