Skip to content

Commit e036457

Browse files
Merge pull request #141 from Azure/zhiyuanliang/replica-count-tracing
Add replica count tracing
2 parents f30d237 + 04f6d23 commit e036457

15 files changed

+186
-148
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: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ import {
3333
} from "./featureManagement/constants.js";
3434
import { AzureKeyVaultKeyValueAdapter } from "./keyvault/AzureKeyVaultKeyValueAdapter.js";
3535
import { RefreshTimer } from "./refresh/RefreshTimer.js";
36-
import { getConfigurationSettingWithTrace, listConfigurationSettingsWithTrace, requestTracingEnabled } from "./requestTracing/utils.js";
36+
import { RequestTracingOptions, getConfigurationSettingWithTrace, listConfigurationSettingsWithTrace, requestTracingEnabled } from "./requestTracing/utils.js";
3737
import { KeyFilter, LabelFilter, SettingSelector } from "./types.js";
3838
import { ConfigurationClientManager } from "./ConfigurationClientManager.js";
3939

@@ -197,11 +197,12 @@ export class AzureAppConfigurationImpl implements AzureAppConfiguration {
197197
return this.#featureFlagEnabled && !!this.#options?.featureFlagOptions?.refresh?.enabled;
198198
}
199199

200-
get #requestTraceOptions() {
200+
get #requestTraceOptions(): RequestTracingOptions {
201201
return {
202-
requestTracingEnabled: this.#requestTracingEnabled,
203-
initialLoadCompleted: this.#isInitialLoadCompleted,
202+
enabled: this.#requestTracingEnabled,
204203
appConfigOptions: this.#options,
204+
initialLoadCompleted: this.#isInitialLoadCompleted,
205+
replicaCount: this.#clientManager.getReplicaCount(),
205206
isFailoverRequest: this.#isFailoverRequest
206207
};
207208
}

src/ConfigurationClientManager.ts

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,9 @@ export class ConfigurationClientManager {
3030
#clientOptions: AppConfigurationClientOptions | undefined;
3131
#appConfigOptions: AzureAppConfigurationOptions | undefined;
3232
#validDomain: string;
33-
#staticClients: ConfigurationClientWrapper[];
33+
#staticClients: ConfigurationClientWrapper[]; // there should always be only one static client
3434
#dynamicClients: ConfigurationClientWrapper[];
35+
#replicaCount: number = 0;
3536
#lastFallbackClientRefreshTime: number = 0;
3637
#lastFallbackClientRefreshAttempt: number = 0;
3738

@@ -96,7 +97,11 @@ export class ConfigurationClientManager {
9697
this.#isFailoverable = true;
9798
}
9899

99-
async getClients() : Promise<ConfigurationClientWrapper[]> {
100+
getReplicaCount(): number {
101+
return this.#replicaCount;
102+
}
103+
104+
async getClients(): Promise<ConfigurationClientWrapper[]> {
100105
if (!this.#isFailoverable) {
101106
return this.#staticClients;
102107
}
@@ -161,6 +166,7 @@ export class ConfigurationClientManager {
161166

162167
this.#dynamicClients = newDynamicClients;
163168
this.#lastFallbackClientRefreshTime = Date.now();
169+
this.#replicaCount = this.#dynamicClients.length;
164170
}
165171

166172
/**

src/requestTracing/constants.ts

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,16 +37,20 @@ export const CONTAINER_APP_ENV_VAR = "CONTAINER_APP_NAME";
3737
export const KUBERNETES_ENV_VAR = "KUBERNETES_PORT";
3838
export const SERVICE_FABRIC_ENV_VAR = "Fabric_NodeName"; // See: https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-environment-variables-reference
3939

40-
// Request Type
40+
// Request type
4141
export const REQUEST_TYPE_KEY = "RequestType";
4242
export enum RequestType {
4343
STARTUP = "Startup",
4444
WATCH = "Watch"
4545
}
4646

47-
export const FEATURES_KEY = "Features";
47+
// Replica count
48+
export const REPLICA_COUNT_KEY = "ReplicaCount";
4849

4950
// Tag names
50-
export const FAILOVER_REQUEST_TAG = "Failover";
5151
export const KEY_VAULT_CONFIGURED_TAG = "UsesKeyVault";
52+
export const FAILOVER_REQUEST_TAG = "Failover";
53+
54+
// Compact feature tags
55+
export const FEATURES_KEY = "Features";
5256
export const LOAD_BALANCE_CONFIGURED_TAG = "LB";

0 commit comments

Comments
 (0)