Skip to content

Commit 9f33d0c

Browse files
committed
Added otel to quart sample
1 parent 171c029 commit 9f33d0c

File tree

1 file changed

+15
-14
lines changed

1 file changed

+15
-14
lines changed

samples/quarty_sample.py

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -10,16 +10,25 @@
1010
from quart.sessions import SecureCookieSessionInterface
1111
from azure.appconfiguration.provider import load
1212
from azure.identity import DefaultAzureCredential
13+
from azure.monitor.opentelemetry import configure_azure_monitor
1314
from featuremanagement.aio import FeatureManager
1415
from featuremanagement import TargetingContext
16+
from featuremanagement.azuremonitor import TargetingSpanProcessor
1517

16-
try:
17-
from azure.monitor.opentelemetry import configure_azure_monitor # pylint: disable=ungrouped-imports
1818

19-
# Configure Azure Monitor
20-
configure_azure_monitor(connection_string=os.getenv("APPLICATIONINSIGHTS_CONNECTION_STRING"))
21-
except ImportError:
22-
pass
19+
# A callback for assigning a TargetingContext for both Telemetry logs and Feature Flag evaluation
20+
async def my_targeting_accessor() -> TargetingContext:
21+
session_id = ""
22+
if "Session-ID" in request.headers:
23+
session_id = request.headers["Session-ID"]
24+
return TargetingContext(user_id=session_id)
25+
26+
27+
# Configure Azure Monitor
28+
configure_azure_monitor(
29+
connection_string=os.getenv("APPLICATIONINSIGHTS_CONNECTION_STRING"),
30+
span_processors=[TargetingSpanProcessor(targeting_context_accessor=my_targeting_accessor)],
31+
)
2332

2433
app = Quart(__name__)
2534
app.session_interface = SecureCookieSessionInterface()
@@ -28,14 +37,6 @@
2837
endpoint = os.environ.get("APPCONFIGURATION_ENDPOINT_STRING")
2938
credential = DefaultAzureCredential()
3039

31-
32-
async def my_targeting_accessor() -> TargetingContext:
33-
session_id = ""
34-
if "Session-ID" in request.headers:
35-
session_id = request.headers["Session-ID"]
36-
return TargetingContext(user_id=session_id)
37-
38-
3940
# Connecting to Azure App Configuration using AAD
4041
config = load(endpoint=endpoint, credential=credential, feature_flag_enabled=True, feature_flag_refresh_enabled=True)
4142

0 commit comments

Comments
 (0)