Skip to main content

On This Page

OtlpDashboard: Consolidating the Observability Stack into a Single Container

2 min read
Share

These articles are AI-generated summaries. Please check the original sources for full details.

One container to replace Grafana + Loki + Tempo + Prometheus

Engineer Andrea Ficarra developed OtlpDashboard to simplify observability for .NET microservices. The system replaces a four-service stack with a single container that ingests standard OTLP data via gRPC and HTTP.

Why This Matters

The standard observability stack (Grafana, Loki, Tempo, Prometheus) requires deploying four separate services and managing four distinct configurations before data visualization is possible. While robust, this overhead often exceeds the needs of solo developers or smaller projects where the time spent on infrastructure configuration outweighs the time spent analyzing telemetry data.

Key Insights

  • OTLP Ingestion: The system speaks standard OpenTelemetry Protocol on port 4317 (gRPC) and 4318 (HTTP/Protobuf), removing the need for a separate collector.
  • Flexible Storage: Default storage uses SQLite for zero-config deployment, with support for migration to PostgreSQL or SQL Server.
  • Customizable Visualization: A Vue 3 / Nuxt 4 frontend utilizes a ‘spec’ engine with Mustache templates and DOMPurify sandboxing to allow custom widget creation without JS eval security risks.
  • Telemetry Management: Retention is configurable per signal (e.g., different durations for traces vs. metrics) to automate data cleanup.

Working Examples

Starts the OtlpDashboard container along with a sample workload that generates real telemetry data.

docker compose up --build

Practical Applications

  • )Use case: .NET microservices requiring persistent telemetry without the operational overhead of a full LGTM stack.
  • )Pitfall: Using non-persistent dashboards (like .NET Aspire) which result in total data loss upon closing the browser.

References:

Continue reading

Next article

Mastering Python Loops: From Manual Repetition to Automated Data Pipelines

Related Content