observability-tracing

Implement OpenTelemetry distributed tracing across CritterCab services.

Updated Apr 21, 2026
One-click install
npx skills add https://github.com/erikshafer/CritterCab --skill observability-tracing-erikshafer
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: observability-tracing
Source: https://github.com/erikshafer/CritterCab/tree/main/docs/skills/observability-tracing
Command: npx skills add https://github.com/erikshafer/CritterCab --skill observability-tracing-erikshafer

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires OpenTelemetry.Extensions.Hosting, OpenTelemetry.Exporter.OpenTelemetryProtocol, OpenTelemetry.Instrumentation.AspNetCore, OpenTelemetry.Instrumentation.Http, OpenTelemetry.Instrumentation.GrpcNetClient, and includes scripts (resource) and references (resource) components.

What problem does it solve?

This Skill ensures comprehensive distributed tracing for CritterCab services, facilitating end-to-end visibility and debugging of message flows.

Core Features & Use Cases

  • OpenTelemetry Integration: Implements OpenTelemetry for distributed tracing.
  • Service Defaults: Utilizes Aspire's AddServiceDefaults() for foundational tracing setup.
  • Custom ActivitySource: Enables custom spans for domain-specific operations.
  • Use Case: Enhance the observability of a ride-sharing application by adding tracing for gRPC calls, Kafka messages, and database operations.

Quick Start

Use the observability-tracing skill to enable tracing for a new CritterCab service.

Frequently Asked Questions about observability-tracing

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I implement OpenTelemetry distributed tracing across microservices?

OpenTelemetry distributed tracing is implemented by configuring Aspire service defaults, registering custom ActivitySources for Wolverine and Marten, and propagating trace contexts across gRPC, Kafka, and Azure Service Bus to achieve end-to-end message flow visibility.

How does trace context propagation work with Kafka and gRPC?

Trace context propagation across Kafka and gRPC requires instrumenting the OpenTelemetry HTTP and gRPC client packages to ensure distributed tracing spans are correctly linked across different service boundaries and message brokers.

Do I need specific OpenTelemetry SDK packages to enable tracing for Wolverine and Marten?

Yes, enabling tracing for Wolverine and Marten requires adding OpenTelemetry SDK packages, including Extensions.Hosting, OTLP Exporter, and specific instrumentation libraries for ASP.NET Core, HTTP, and gRPC clients.

What is the best way to set up custom spans for domain-specific operations in Aspire?

The best way to set up custom spans in Aspire is by utilizing AddServiceDefaults() for foundational tracing and defining per-service ActivitySource conventions to capture domain-specific operations within your application.

Can I use Aspire service defaults to add observability to a ride-sharing application?

Yes, you can use Aspire service defaults to add observability to a ride-sharing application by establishing foundational OpenTelemetry tracing for gRPC calls, Kafka messages, and database operations.

Why do my distributed traces show broken spans across message brokers?

Broken distributed traces across message brokers occur when trace context propagation is not explicitly configured for Kafka and Azure Service Bus, requiring correct ActivitySource instrumentation to link spans.