36 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			36 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| # Telemetry Collector Assets
 | ||
| 
 | ||
| These assets provision the default OpenTelemetry Collector instance required by
 | ||
| `DEVOPS-OBS-50-001`. The collector acts as the secured ingest point for traces,
 | ||
| metrics, and logs emitted by Stella Ops services.
 | ||
| 
 | ||
| ## Contents
 | ||
| 
 | ||
| | File | Purpose |
 | ||
| | ---- | ------- |
 | ||
| | `otel-collector-config.yaml` | Baseline collector configuration (mutual TLS, OTLP receivers, Prometheus exporter). |
 | ||
| | `storage/prometheus.yaml` | Prometheus scrape configuration tuned for the collector and service tenants. |
 | ||
| | `storage/tempo.yaml` | Tempo configuration with multitenancy, WAL, and compaction settings. |
 | ||
| | `storage/loki.yaml` | Loki configuration enabling multitenant log ingestion with retention policies. |
 | ||
| | `storage/tenants/*.yaml` | Per-tenant overrides for Tempo and Loki rate/retention controls. |
 | ||
| 
 | ||
| ## Development workflow
 | ||
| 
 | ||
| 1. Generate development certificates (collector + client) using
 | ||
|    `ops/devops/telemetry/generate_dev_tls.sh`.
 | ||
| 2. Launch the collector via `docker compose -f docker-compose.telemetry.yaml up`.
 | ||
| 3. Launch the storage backends (Prometheus, Tempo, Loki) via
 | ||
|    `docker compose -f docker-compose.telemetry-storage.yaml up`.
 | ||
| 4. Run the smoke test: `python ops/devops/telemetry/smoke_otel_collector.py`.
 | ||
| 5. Explore the storage configuration (`storage/README.md`) to tune retention/limits.
 | ||
| 
 | ||
| The smoke test sends OTLP traffic over TLS and asserts the collector accepted
 | ||
| traces, metrics, and logs by scraping the Prometheus metrics endpoint.
 | ||
| 
 | ||
| ## Kubernetes
 | ||
| 
 | ||
| The Helm chart consumes the same configuration (see `values.yaml`). Provide TLS
 | ||
| material via a secret referenced by `telemetry.collector.tls.secretName`,
 | ||
| containing `ca.crt`, `tls.crt`, and `tls.key`. Client certificates are required
 | ||
| for ingestion and should be issued by the same CA.
 |