What problem does it solve? Setting up observability in ASP.NET Core involves choosing the right OpenTelemetry packages, wiring traces, metrics, and logs into the DI container, and ensuring custom spans and meters actually get exported. This Skill provides a complete, correct configuration workflow that avoids common silent failures like unmatched ActivitySource names. ## Core Features & Use Cases - Full Signal Setup: Configures distributed tracing, metrics, and logging with a single OTLP exporter via AddOpenTelemetry() in Program.cs. - Custom Instrumentation: Guides creation of custom spans with ActivitySource and custom metrics with IMeterFactory, including counters, histograms, and up-down counters. - Distributed Context Propagation: Shows manual trace context injection and extraction for non-HTTP scenarios like message queues. - Use Case: You are adding observability to an order-processing API. Use this Skill to install the correct packages, register ASP.NET Core and HttpClient instrumentation, create a ProcessOrder span with business tags, and export everything to Jaeger via OTLP. ## Quick Start Configure OpenTelemetry tracing, metrics, and logging with an OTLP exporter in my ASP.NET Core project and add a custom ActivitySource for my order service.