Skip to content

Commit a107c2b

Browse files
authored
Revert "Remove Telemetry from main (#37783)" (#37812)
This reverts commit a65dfb2.
1 parent a65dfb2 commit a107c2b

File tree

3 files changed

+27
-0
lines changed

3 files changed

+27
-0
lines changed

sdk/appconfiguration/azure-appconfiguration-provider/azure/appconfiguration/provider/_client_manager.py

+2
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,7 @@ def load_feature_flags(
163163
loaded_feature_flags = []
164164
# Needs to be removed unknown keyword argument for list_configuration_settings
165165
kwargs.pop("sentinel_keys", None)
166+
endpoint = self._client._impl._config.endpoint # pylint: disable=protected-access
166167
filters_used: Dict[str, bool] = {}
167168
for select in feature_flag_selectors:
168169
feature_flags = self._client.list_configuration_settings(
@@ -176,6 +177,7 @@ def load_feature_flags(
176177

177178
feature_flag_value = json.loads(feature_flag.value)
178179

180+
self._feature_flag_telemetry(endpoint, feature_flag, feature_flag_value)
179181
self._feature_flag_appconfig_telemetry(feature_flag, filters_used)
180182

181183
loaded_feature_flags.append(feature_flag_value)

sdk/appconfiguration/azure-appconfiguration-provider/azure/appconfiguration/provider/_client_manager_base.py

+23
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,11 @@
2020
PERCENTAGE_FILTER_KEY,
2121
TIME_WINDOW_FILTER_KEY,
2222
TARGETING_FILTER_KEY,
23+
TELEMETRY_KEY,
24+
METADATA_KEY,
25+
ETAG_KEY,
26+
FEATURE_FLAG_REFERENCE_KEY,
27+
FEATURE_FLAG_ID_KEY,
2328
)
2429

2530
FALLBACK_CLIENT_REFRESH_EXPIRED_INTERVAL = 3600 # 1 hour in seconds
@@ -40,6 +45,24 @@ def _calculate_feature_id(key, label):
4045
encoded_flag = encoded_flag.replace(b"+", b"-").replace(b"/", b"_")
4146
return encoded_flag[: encoded_flag.find(b"=")]
4247

48+
def _feature_flag_telemetry(
49+
self, endpoint: str, feature_flag: FeatureFlagConfigurationSetting, feature_flag_value: Dict
50+
):
51+
if TELEMETRY_KEY in feature_flag_value:
52+
if METADATA_KEY not in feature_flag_value[TELEMETRY_KEY]:
53+
feature_flag_value[TELEMETRY_KEY][METADATA_KEY] = {}
54+
feature_flag_value[TELEMETRY_KEY][METADATA_KEY][ETAG_KEY] = feature_flag.etag
55+
56+
if not endpoint.endswith("/"):
57+
endpoint += "/"
58+
feature_flag_reference = f"{endpoint}kv/{feature_flag.key}"
59+
if feature_flag.label and not feature_flag.label.isspace():
60+
feature_flag_reference += f"?label={feature_flag.label}"
61+
feature_flag_value[TELEMETRY_KEY][METADATA_KEY][FEATURE_FLAG_REFERENCE_KEY] = feature_flag_reference
62+
feature_flag_value[TELEMETRY_KEY][METADATA_KEY][FEATURE_FLAG_ID_KEY] = self._calculate_feature_id(
63+
feature_flag.key, feature_flag.label
64+
)
65+
4366
def _feature_flag_appconfig_telemetry(
4467
self, feature_flag: FeatureFlagConfigurationSetting, filters_used: Dict[str, bool]
4568
):

sdk/appconfiguration/azure-appconfiguration-provider/azure/appconfiguration/provider/aio/_async_client_manager.py

+2
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,7 @@ async def load_feature_flags(
165165
loaded_feature_flags = []
166166
# Needs to be removed unknown keyword argument for list_configuration_settings
167167
kwargs.pop("sentinel_keys", None)
168+
endpoint = self._client._impl._config.endpoint # pylint: disable=protected-access
168169
filters_used: Dict[str, bool] = {}
169170
for select in feature_flag_selectors:
170171
feature_flags = self._client.list_configuration_settings(
@@ -178,6 +179,7 @@ async def load_feature_flags(
178179

179180
feature_flag_value = json.loads(feature_flag.value)
180181

182+
self._feature_flag_telemetry(endpoint, feature_flag, feature_flag_value)
181183
self._feature_flag_appconfig_telemetry(feature_flag, filters_used)
182184

183185
loaded_feature_flags.append(feature_flag_value)

0 commit comments

Comments
 (0)