You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
docs: improve OTel monitoring doc with Quick Start guide and VS Code settings examples (#4243)
- Replace env var Quick Start with step-by-step Aspire Dashboard guide
- Add concise intro explaining what the Aspire Dashboard is
- Convert all example configurations from env vars to VS Code settings JSON
- Keep env var reference table for official documentation
- Note where env vars are still required (e.g. auth headers)
@@ -6,24 +6,54 @@ All signal names and attributes follow the [OTel GenAI Semantic Conventions](htt
6
6
7
7
## Quick Start
8
8
9
-
Set these environment variables before launching VS Code:
9
+
The fastest way to see Copilot Chat traces locally — no cloud account required. This guide uses the [Aspire Dashboard](https://aspire.dev/dashboard/standalone/), a lightweight container image from Microsoft that provides a trace viewer with a built-in OTLP endpoint. It can be used standalone, without the rest of .NET Aspire.
10
+
11
+
### Prerequisites
12
+
13
+
-**Docker** installed
14
+
-**VS Code** with the GitHub Copilot Chat extension
That's it. Traces, metrics, and events start flowing to your collector.
40
+
> **Note:** You can also use environment variables instead of VS Code settings (see [Configuration](#configuration)). Environment variables always take precedence.
41
+
42
+
### 3. Generate Telemetry
43
+
44
+
Open Copilot Chat and send any message — for example, ask a question in Agent mode.
45
+
46
+
### 4. View Traces
47
+
48
+
Open http://localhost:18888 → **Traces**. You'll see `invoke_agent` spans with nested `chat` and `execute_tool` children.
21
49
22
-
> **Tip:** To get started quickly with a local trace viewer, run [Jaeger](https://www.jaegertracing.io/) in Docker:
> **Note:** Authentication headers are only configurable via the `OTEL_EXPORTER_OTLP_HEADERS` environment variable (e.g., `Authorization=Bearer your-token`). See [Environment Variables](#environment-variables).
@@ -376,66 +416,89 @@ First successful span export is logged to the console (`[OTel] First span batch
376
416
377
417
---
378
418
379
-
## Backend Setup & Verification
419
+
## Backend Setup Guides
420
+
421
+
Copilot Chat's OTel data works with any OTLP-compatible backend. This section provides step-by-step setup guides for recommended backends.
380
422
381
-
Copilot Chat's OTel data works with any OTLP-compatible backend. This section covers setup and verification for recommended backends.
423
+
### Aspire Dashboard
424
+
425
+
See [Quick Start](#quick-start) above for setup. The [Aspire Dashboard](https://aspire.dev/dashboard/standalone/) is the simplest option — a single Docker container with a built-in OTLP endpoint and trace viewer. No cloud account or collector needed.
382
426
383
427
### OTel Collector + Azure Application Insights
384
428
385
429
[Azure Application Insights](https://learn.microsoft.com/en-us/azure/azure-monitor/app/app-insights-overview) ingests OTel traces, metrics, and logs through an [OTel Collector](https://opentelemetry.io/docs/collector/) with the `azuremonitor` exporter. This repo includes a ready-to-use collector setup in `docs/monitoring/`.
386
430
387
-
**1. Start the collector:**
431
+
**1. Create an Application Insights resource:**
432
+
433
+
1. Go to the [Azure Portal](https://portal.azure.com/).
> **Note:** The docker-compose maps ports to `4328`/`4327` on the host to avoid conflicts. Adjust in `docker-compose.yaml` if needed. Add additional exporters (e.g., `otlphttp/jaeger`) to fan out to multiple backends. See `docs/monitoring/otel-collector-config.yaml` for the full config including `batch` processor and `logs` pipeline.
468
531
532
+
### Jaeger
533
+
534
+
[Jaeger](https://www.jaegertracing.io/) is an open-source distributed tracing platform. It accepts OTLP directly — no collector needed.
535
+
536
+
**1. Start Jaeger:**
537
+
538
+
```bash
539
+
docker run -d --name jaeger -p 16686:16686 -p 4318:4318 jaegertracing/jaeger:latest
**3. Verify:** Open http://localhost:16686, select service `copilot-chat`, and click **Find Traces**.
469
552
470
553
### Langfuse
471
554
472
555
[Langfuse](https://langfuse.com/) is an open-source LLM observability platform with native OTLP ingestion and support for [OTel GenAI Semantic Conventions](https://opentelemetry.io/docs/specs/semconv/gen-ai/gen-ai-agent-spans/). See the [Langfuse docs](https://langfuse.com/docs/opentelemetry/introduction) for full details on capabilities and limitations.
0 commit comments