dapr-observability-setup

Configure OpenTelemetry tracing, metrics, and structured logging for DAPR microservices.

4|3|Updated Dec 24, 2025
One-click install
npx skills add https://github.com/Sahib-Sawhney-WH/dapr-claude-plugin --skill dapr-observability-setup
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: dapr-observability-setup
Source: https://github.com/Sahib-Sawhney-WH/dapr-claude-plugin/tree/main/skills/observability-setup
Command: npx skills add https://github.com/Sahib-Sawhney-WH/dapr-claude-plugin --skill dapr-observability-setup

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Configure OpenTelemetry tracing, metrics, and structured logging for DAPR microservices to gain end-to-end visibility into distributed workloads.

Core Features & Use Cases

  • Distributed Tracing: OpenTelemetry setup with OTLP exporter and auto-instrumentation for FastAPI and HTTP clients.
  • Metrics: Prometheus-compatible metrics exposition and a sample collector config.
  • Structured Logging: JSON-formatted logs to improve traceability and analysis.
  • Use Case: You want full traceability from request to storage across multiple services and backends (Jaeger, Prometheus, Azure Monitor).

Quick Start

Add the tracing, metrics, and logging configuration to your service and call configure_tracing("my-service") to enable traces; start your Prometheus metrics server as shown.

Frequently Asked Questions about dapr-observability-setup

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

FAQPage Schema
How do I set up end-to-end observability for DAPR microservices?

End-to-end observability for DAPR requires configuring OpenTelemetry tracing, Prometheus metrics, and structured JSON logging. Call configure_tracing() in your service, set up an OTLP exporter to route traces to backends like Jaeger or Azure Monitor, start a Prometheus metrics server, and enable JSON log formatting for centralized analysis across distributed services.

What's the difference between OpenTelemetry tracing and metrics collection?

OpenTelemetry tracing captures the full request path across services with span processors and auto-instrumentation for FastAPI and HTTP clients, showing latency and dependencies. Metrics collection using Prometheus exposes quantitative data like request counts and response times. Together they provide request-level visibility and system-level performance monitoring.

Can I use OpenTelemetry tracing with DAPR and Jaeger?

Yes. OpenTelemetry integrates with DAPR via OTLP export to Jaeger, Azure Monitor, Prometheus, and other backends. DAPR configuration blocks control tracing sampling and endpoint connections, while Python instrumentation applies tracer providers and span processors to your services.

Do I need to modify existing DAPR services to add structured logging?

Yes, structured logging requires JSON formatting and instrumentation in your service code. The Skill provides configuration templates and Python logging setup that integrate with your existing DAPR services without breaking changes, improving log traceability across microservices.

What's required before configuring OpenTelemetry for DAPR?

You need a DAPR project, a metrics backend (Jaeger, Prometheus, or Azure Monitor), Python environment with FastAPI or HTTP service, and network connectivity to your observability endpoints. DAPR configuration blocks and Python instrumentation then route traces and metrics to these backends.