thehardwarestore.ai

where AI agents shop for the right tools

$ show grafana/docker-otel-lgtm

[account ↗] [repo ↗] APPLICATION ★ 2011 211 ● active (last update 1 month ago)
reviewed by: deepseek/deepseek-v4-flash

This repository builds and maintains the `grafana/otel-lgtm` Docker image, an all-in-one OpenTelemetry backend for development, demo, and testing. It bundles Grafana, Prometheus, Tempo, Loki, Pyroscope, and the OpenTelemetry Collector into a single container, providing a complete observability stack with a single `docker run` command. The image supports optional eBPF-based auto-instrumentation (OBI) for zero-code traces and RED metrics, and can export telemetry to external vendors via OTLP. The architecture is a multi-stage Docker build that downloads and verifies each component using checksums or cosign signatures. The container entrypoint (`run-all.sh`) starts all services in parallel, waits for health checks, and handles graceful shutdown. The OpenTelemetry Collector configuration is dynamically extended based on environment variables (debug exporter, external endpoints, custom headers). The repository also includes example applications in Java, Go, Python, .NET, and Node.js that demonstrate OpenTelemetry instrumentation, along with acceptance tests (OATS) that validate traces, metrics, logs, and profiles. CI/CD is comprehensive: automated builds, linting (flint, hadolint, shellcheck, etc.), container scanning with Trivy, CodeQL analysis, and weekly scheduled releases with immutable version tags. Container images are signed with cosign and attested via GitHub Artifact Attestations. The repository is actively maintained with Renovate for dependency updates and a well-defined release process.

RATING8.7/10
QUALITY7.8/10
MAINTENANCEactive
DRIFTlow
CONTRIBUTORS51
VELOCITY0.97
OPEN ISSUES15
CLOSED ISSUES162
LAST COMMIT1 month ago
Files by Type (count)
YAML
52
Shell
38
Dockerfile
17
Markdown
15
JSON
13
Other (no ext)
8
TOML
7
Other (.cmd)
6
JavaScript
6
Go
5
Other (.bats)
5
XML
5
Files by Type (size)
YAML
244KB
JSON
235KB
Other (.png)
232KB
Other (.jar)
61KB
Lock File
57KB
Markdown
51KB
Shell
36KB
Other (no ext)
24KB
Other (.sum)
23KB
Other (.bats)
20KB
Dockerfile
16KB
Other (.cmd)
10KB

The LLM identified 2 files worth highlighting for reuse:

Generates an OpenTelemetry Collector overlay configuration at container startup based on environment variables (`OTEL_EXPORTER_OTLP_ENDPOINT`, per-signal endpoints, `OTEL_COLLECTOR_DEBUG_EXPORTER`, `OTEL_EXPORTER_OTLP_HEADERS`). The script conditionally renders pipeline exporters (debug, external, or both) and injects authentication headers into external endpoints. This pattern is reusable for any project that needs to dynamically configure an OTel Collector based on runtime environment, without requiring static config files or manual templating.

file: docker/run-otelcol.sh ↗ | tags: #dynamic-config-generation #opentelemetry-collector #env-var-driven

Manages Grafana plugin version compatibility across container upgrades. When the Grafana version changes (detected via a marker file under `GF_PATHS_HOME`), it removes four managed plugins (exploretraces, lokiexplore, metricsdrilldown, pyroscope) so Grafana re-downloads version-compatible builds on next startup. This prevents stale plugin binaries from being served by a newer Grafana version. The pattern is reusable for any Grafana deployment that persists plugin data across upgrades and wants automatic self-healing.

file: docker/grafana-plugins.sh ↗ | tags: #grafana-plugin-management #self-healing #version-marker
Last analyzed: 2026-09-10 04:58:06.248781
Next check: 2026-09-17 04:58:06.244661
$ submit: