Observability Stack (Metrics, Logs, Traces)
The three pillars end to end: OpenTelemetry-instrumented services, a collector tier with tail sampling, Mimir / Loki / Tempo backed by object storage, and Grafana driving SLO alerts into an on-call rota.
Rendering…
Make it your own.
{
"nodes": [
{ "id": "fa", "type": "container", "label": "Instrumented services", "x": 20, "y": 40, "width": 240, "height": 560, "fill": "rgba(219,234,254,0.26)", "stroke": "#1d4ed8" },
{ "id": "fb", "type": "container", "label": "Collection", "x": 310, "y": 40, "width": 250, "height": 560, "fill": "rgba(220,252,231,0.26)", "stroke": "#15803d" },
{ "id": "fc", "type": "container", "label": "Storage", "x": 610, "y": 40, "width": 250, "height": 560, "fill": "rgba(254,243,199,0.26)", "stroke": "#b45309" },
{ "id": "fd", "type": "container", "label": "Query & response", "x": 910, "y": 40, "width": 270, "height": 560, "fill": "rgba(237,233,254,0.26)", "stroke": "#6d28d9" },
{ "id": "s1", "type": "microservice", "label": "checkout-api", "x": 45, "y": 90, "width": 180, "height": 104, "fill": "#dbeafe", "stroke": "#1d4ed8" },
{ "id": "s2", "type": "microservice", "label": "search-api", "x": 45, "y": 230, "width": 180, "height": 104, "fill": "#dbeafe", "stroke": "#1d4ed8" },
{ "id": "s3", "type": "docker-container", "label": "worker pool", "x": 45, "y": 370, "width": 180, "height": 104, "fill": "#dbeafe", "stroke": "#1d4ed8" },
{ "id": "sdk", "type": "package", "label": "OTel SDK — auto-instrumented", "x": 45, "y": 480, "width": 190, "height": 104, "fill": "#dbeafe", "stroke": "#1d4ed8", "bold": true },
{ "id": "col", "type": "gear", "label": "OTel Collector (DaemonSet)", "x": 340, "y": 90, "width": 190, "height": 104, "fill": "#dcfce7", "stroke": "#15803d", "bold": true },
{ "id": "prom", "type": "line-chart", "label": "Prometheus scrape", "x": 340, "y": 230, "width": 190, "height": 104, "fill": "#dcfce7", "stroke": "#15803d" },
{ "id": "flb", "type": "conveyor", "label": "Fluent Bit — log shipper", "x": 340, "y": 370, "width": 190, "height": 104, "fill": "#dcfce7", "stroke": "#15803d" },
{ "id": "smp", "type": "funnel", "label": "Tail sampling — 5 %", "x": 340, "y": 480, "width": 190, "height": 104, "fill": "#dcfce7", "stroke": "#15803d" },
{ "id": "tsdb", "type": "stacked-cylinder", "label": "Mimir — metrics TSDB", "x": 640, "y": 90, "width": 190, "height": 104, "fill": "#fef3c7", "stroke": "#b45309" },
{ "id": "loki", "type": "data-lake", "label": "Loki — log store", "x": 640, "y": 230, "width": 190, "height": 104, "fill": "#fef3c7", "stroke": "#b45309" },
{ "id": "tmpo", "type": "file-stack", "label": "Tempo — trace store", "x": 640, "y": 370, "width": 190, "height": 104, "fill": "#fef3c7", "stroke": "#b45309" },
{ "id": "obj", "type": "aws-s3", "label": "S3 — long-term blocks","x": 640, "y": 480, "width": 130, "height": 110, "fill": "#fff7ed", "stroke": "#f97316" },
{ "id": "graf", "type": "bar-chart", "label": "Grafana — dashboards & SLOs", "x": 940, "y": 90, "width": 210, "height": 104, "fill": "#ede9fe", "stroke": "#6d28d9", "bold": true },
{ "id": "am", "type": "bell", "label": "Alertmanager — routing", "x": 940, "y": 230, "width": 200, "height": 104, "fill": "#ede9fe", "stroke": "#6d28d9" },
{ "id": "page", "type": "user-group", "label": "On-call rota", "x": 940, "y": 370, "width": 190, "height": 104, "fill": "#f1f5f9", "stroke": "#475569" },
{ "id": "slo", "type": "target", "label": "Error-budget policy", "x": 940, "y": 480, "width": 190, "height": 104, "fill": "#ede9fe", "stroke": "#6d28d9" }
],
"edges": [
{ "id": "o1", "source": "s1", "target": "sdk" },
{ "id": "o2", "source": "s2", "target": "sdk" },
{ "id": "o3", "source": "s3", "target": "sdk" },
{ "id": "o4", "source": "sdk", "target": "col", "label": "OTLP gRPC", "thickness": 3 },
{ "id": "o5", "source": "s1", "target": "prom", "label": "/metrics", "style": "dashed" },
{ "id": "o6", "source": "s3", "target": "flb", "label": "stdout logs", "style": "dashed" },
{ "id": "o7", "source": "col", "target": "smp", "label": "traces" },
{ "id": "o8", "source": "col", "target": "tsdb", "label": "metrics", "thickness": 2 },
{ "id": "o9", "source": "prom", "target": "tsdb", "label": "remote write" },
{ "id": "o10", "source": "flb", "target": "loki" },
{ "id": "o11", "source": "smp", "target": "tmpo" },
{ "id": "o12", "source": "tsdb", "target": "obj", "label": "13-month retention", "style": "dashed" },
{ "id": "o13", "source": "loki", "target": "obj", "style": "dashed" },
{ "id": "o14", "source": "tmpo", "target": "obj", "style": "dashed" },
{ "id": "o15", "source": "tsdb", "target": "graf" },
{ "id": "o16", "source": "loki", "target": "graf" },
{ "id": "o17", "source": "tmpo", "target": "graf" },
{ "id": "o18", "source": "graf", "target": "am", "label": "burn-rate alert", "thickness": 2 },
{ "id": "o19", "source": "am", "target": "page", "label": "page / ticket" },
{ "id": "o20", "source": "slo", "target": "am", "label": "suppression windows", "style": "dashed" },
{ "id": "o21", "source": "graf", "target": "tmpo", "label": "exemplar to trace", "style": "dashed" }
]
}