Platform service logs (internal)
Engineering one-pager for HEAT platform log surfaces and the Cluster Manager collector.
Surfaces
| Service | Mechanism | Endpoint |
|---|---|---|
| core-api | HEAT.Common HEATLogger in-memory ledger | GET /_logs/coreapi, GET /_logs/coreapi/pretty |
| heat-auth | Same | GET /_logs/auth, GET /_logs/auth/pretty |
| heat-v2-api | Serilog console only | No ledger; Cluster Manager uses kubectl logs deployment/heat-v2-api |
Ledgers default to 1000 entries per pod (HEATLogger.cs). Entries go to ledger + stdout; auditor ingest is explicit (HeatAuditorClient.cs), not automatic.
Cluster Manager
- Collector:
serviceLogCollector.ts - Routes:
GET /api/environment/service-logs,GET /api/environment/service-logs/:serviceId(admin) - Wired in
app.tsviastartServiceLogCollector() - Advisories read
getServiceLogSnapshots()fromAdvisoryContext
Lovable / UI authoring pack
Full operator-oriented one-pager (field glossary, triage rules, examples):
references/lovable/cluster-manager/16-platform-service-logs.md
Env vars
| Variable | Default |
|---|---|
SERVICE_LOG_COLLECTOR_ENABLED | true |
SERVICE_LOG_COLLECTOR_INTERVAL_MS | 60000 |
SERVICE_LOG_LOOKBACK_MS | 900000 |
SERVICE_LOG_MAX_CACHED_ENTRIES | 500 |
SERVICE_LOG_KUBECTL_SINCE | 5m |
SERVICE_LOG_KUBECTL_TAIL | 500 |
CORE_API_URL | cluster: http://core-api; local dev: http://localhost:5220 |
HEAT_AUTH_URL | cluster: http://heat-auth; local dev: http://localhost:5168 |
HEAT_NAMESPACE | heat |