```plaintext %% Observability Stack Architecture (ADR-0025) %% C4 Component diagram showing telemetry flow flowchart TB subgraph apps["📦 Applications"] direction LR go["Go Apps
(OTEL SDK)"] python["Python Apps
(OTEL SDK)"] node["Node.js Apps
(OTEL SDK)"] java["Java Apps
(OTEL SDK)"] end subgraph collection["📡 Telemetry Collection"] otel["OpenTelemetry
Collector
━━━━━━━━
OTLP gRPC :4317
OTLP HTTP :4318"] end subgraph storage["💾 Storage Layer"] direction LR subgraph metrics_store["Metrics"] prometheus["📊 Prometheus
14d retention
50GB"] end subgraph logs_traces["Logs & Traces"] clickstack["📋 ClickStack
(ClickHouse)"] end end subgraph visualization["📈 Visualization"] grafana["🎨 Grafana
Dashboards
& Exploration"] end subgraph alerting["🔔 Alerting Pipeline"] alertmanager["⚠️ Alertmanager"] ntfy["📱 ntfy
(Push)"] discord["💬 Discord"] end %% App to collector go -->|"OTLP"| otel python -->|"OTLP"| otel node -->|"OTLP"| otel java -->|"OTLP"| otel %% Collector to storage otel -->|"Metrics"| prometheus otel -->|"Logs"| clickstack otel -->|"Traces"| clickstack %% Storage to visualization prometheus --> grafana clickstack --> grafana %% Alerting flow prometheus -->|"PrometheusRules"| alertmanager alertmanager --> ntfy ntfy --> discord classDef app fill:#3498db,color:white classDef otel fill:#e74c3c,color:white classDef storage fill:#27ae60,color:white classDef viz fill:#9b59b6,color:white classDef alert fill:#f39c12,color:black class go,python,node,java app class otel otel class prometheus,clickstack storage class grafana viz class alertmanager,ntfy,discord alert ```