The telemetry pipelines
The agent runs three signal pipelines inside the collector. Each takes a different path to AtherOps, but all are signed by the loopback auth-proxy and all are stored scoped to your org.
| Signal | Collected by | How it reaches AtherOps | Stored in |
|---|---|---|---|
| Metrics | hostmetrics receiver (CPU, memory, disk, filesystem, network, load) | the collector exposes Prometheus text on :8889; the agent scrapes it locally and POSTs to /ingest | VictoriaMetrics (PromQL) |
| Logs | journald + filelog receivers | the collector exports OTLP to the loopback proxy :9599, which signs and forwards to /ingest/logs/otlp | ClickHouse |
| Traces | otlp receiver on :4317 / :4318 (your apps send here) | the collector exports OTLP to the loopback proxy, which signs and forwards to /ingest/traces | ClickHouse |
Metrics: scrape, then forward
The collector's prometheus exporter publishes metrics on loopback :8889. The
agent scrapes that endpoint on your scrape_interval and forwards the
Prometheus text to the metrics ingest endpoint. Storing them as Prometheus text
is what makes your host metrics PromQL-queryable.
Logs: journald + files → OTLP
The journald receiver (when enabled) and one filelog receiver per configured
path feed the logs pipeline. The collector exports them as OTLP to the proxy.
The backend maps OTLP fields to stored fields: body → message,
severityText → level, service.name → source, other attributes →
labels. See Configure log sources.
Traces: your apps → the agent
The otlp receiver accepts spans from your applications on :4317 (gRPC) and
:4318 (HTTP). They flow through the proxy to the traces ingest endpoint. See
Enable traces.
All three pipelines run through the same processors before export: memory_limiter, resourcedetection (adds host and cloud attributes such as host.name), and batch.