|
| 1 | +# Observe application behavior |
| 2 | + |
| 3 | +## Semantic Kernel and Observability |
| 4 | + |
| 5 | +It's worth taking a minute to read these two pages about observability with semantic kernel: |
| 6 | +[Observability in Semantic Kernel](https://learn.microsoft.com/en-us/semantic-kernel/concepts/enterprise-readiness/observability) |
| 7 | + |
| 8 | +## Observability Architecture |
| 9 | + |
| 10 | +This application uses the [Open Telemetry](https://opentelemetry.io/) standard for shipping application tracing data to three telemetry destinations: |
| 11 | +- [.NET Aspire Dashboard](https://learn.microsoft.com/en-us/dotnet/aspire/fundamentals/dashboard/overview?tabs=bash), an OTEL-based dashboard for viewing application behavior. |
| 12 | +- [Application Insights](https://learn.microsoft.com/en-us/azure/azure-monitor/app/app-insights-overview), Azure's application observability service. |
| 13 | +- Console log |
| 14 | + |
| 15 | +## How does the app send telemetry data to observability destinations? |
| 16 | + |
| 17 | +The application uses the python `opentelemetry` sdk to send data to various destinations. The sdk uses base classes `LogProvider`, `SpanProvider` and `MetricProvider` to send data to various endpoints. In [utility.py]('..\..\voice_agent\app\backend\utility.py) the application uses specific implementations of those classes to send telemetry data to the destinations. |
| 18 | + |
| 19 | +## What observability resources are deployed to my resource group? |
| 20 | + |
| 21 | +### Aspire Dashboard |
| 22 | + |
| 23 | +The bicep infrastructure deploys Aspire Dashboard as a standalone ACA container called `aspire-dashboard`. You can find it in the list of resources in your resource group. Browse the dashboard by clicking the container link. |
| 24 | + |
| 25 | + |
| 26 | + |
| 27 | +### Application Insights Resource |
| 28 | + |
| 29 | +The bicep infrastructure deploys an Application Insights resource where you can observe your telemetry data. Use the following features to observe semantic kernel behavior in App Insights: |
| 30 | + |
| 31 | +## Observe Application Behavior |
| 32 | + |
| 33 | +### Conduct a conversation with the customer service agents |
| 34 | + |
| 35 | +Conduct a conversation with the customer service agents following this sequence: |
| 36 | +- Ask about your upcoming hotel stay |
| 37 | +- Upgrade the room to a suite |
| 38 | +- Ask about your upcoming flights |
| 39 | +- Upgrade your seat to Business class |
| 40 | + |
| 41 | +### Observe application behavior in Aspire Dashboard |
| 42 | + |
| 43 | +- Go to your resource group in Azure Portal |
| 44 | +- Click on the `aspire-dashboard` resource |
| 45 | +- Click on the `Application URL` in the top right corner to navigate to the dashboard |
| 46 | +- Observe the application log showing the conversation you conducted. Locate an entry: "Function hotel_tools-load_user_reservation_info invoking." and click on the Trace link. This navigates you to the Trace page for that function call. |
| 47 | +- Observe the details of the trace, such as the duration and other metadata. |
| 48 | +- Click on the Traces navigation on the left. |
| 49 | +- Observe the sequence of function calls and confirm it matches the conversation you had. Drill into traces to see information as desired. |
| 50 | +- Click on the Metrics navigation on the left. |
| 51 | +- Click on the function duration metric to see the duration on the most recent function calls. |
| 52 | + |
| 53 | +## Application Environment Variables |
| 54 | + |
| 55 | +- You can disable specific OTEL destinations by adjusting the `TELEMETRY_SCENARIO` variable. By default it is `console,application_insights,aspire_dashboard`. You can remove any destination from the list by and re-deploy by this sequence: |
| 56 | + - Go to the `backend` ACA app |
| 57 | + - Click on containers |
| 58 | + - Click on Environment Variables |
| 59 | + - Adjust the value as desired |
| 60 | + - Click `Deploy as new revision`. This will deploy a new revision of the backend app with your new value. |
| 61 | +--- |
| 62 | +#### Navigation: [Home](../../README.md) | [Previous Section](../05_explore/README.md) |
0 commit comments