Skip to content

Commit 3c4905c

Browse files
author
Mateusz
committed
docs: explain the OpenTelemetry logs setup in the chart README
Add a "Collecting logs with OpenTelemetry" section to the chart README describing the two components required for log ingestion and why both must be enabled: - netdataOpentelemetry: the OTLP receiver (port 4317) that stores and displays logs; it does not collect them. - otel-collector: the optional DaemonSet that reads node-local container logs and forwards them over OTLP. It is replaceable by any OTLP-capable log pipeline. Also documents the end-to-end log flow. Regenerates charts/netdata/README.md via generate-documentation.sh.
1 parent a799cd9 commit 3c4905c

2 files changed

Lines changed: 62 additions & 0 deletions

File tree

charts/netdata/README.md

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2313,6 +2313,37 @@ In case of `child` instance it is a bit simpler. By default, hostPath: `/var/lib
23132313
in: `/var/lib/netdata`. You can disable it, but this option is pretty much required in a real life scenario, as without
23142314
it each pod deletion will result in a new replication node for a parent.
23152315

2316+
### Collecting logs with OpenTelemetry
2317+
2318+
Netdata can ingest, store, and visualize your cluster's container logs through OpenTelemetry.
2319+
This relies on two components — **both disabled by default** and **both required** for logs to
2320+
appear:
2321+
2322+
- **`netdataOpentelemetry`** — Netdata's OpenTelemetry receiver. It runs as its own `Deployment`
2323+
(the `netdata-otel` node) and listens for OTLP data on port `4317`. It receives, stores, and
2324+
displays the logs in the Netdata UI. It does **not** collect logs itself.
2325+
- **`otel-collector`** — the upstream [OpenTelemetry Collector](https://opentelemetry.io/docs/platforms/kubernetes/helm/collector/),
2326+
bundled as an optional subchart. It runs as a `DaemonSet` (one pod per node), reads each node's
2327+
local container log files, and forwards them over OTLP to `netdataOpentelemetry`.
2328+
2329+
`netdataOpentelemetry` is the destination; `otel-collector` is what feeds it. The collector is
2330+
bundled only as a convenient, working default, and is off by default because it is not the only
2331+
option. If you already run a log pipeline (Fluent Bit, Vector, an existing Collector, or any
2332+
OTLP-capable agent), leave `otel-collector` disabled and point that pipeline's OTLP exporter at
2333+
the `netdata-otel` service on port `4317` instead.
2334+
2335+
**Log flow:**
2336+
2337+
```
2338+
container stdout/stderr
2339+
│ the container runtime writes them to node-local files (/var/log/pods/…)
2340+
2341+
otel-collector DaemonSet (one pod per node, needs host log access)
2342+
│ reads each node's log files, pushes over OTLP
2343+
2344+
netdata-otel:4317 → stored and shown in the Netdata UI
2345+
```
2346+
23162347
### Service discovery and supported services
23172348

23182349
Netdata's [service discovery](https://github.com/netdata/agent-service-discovery/), which is installed as part of the

templates/netdata-README.md.gotmpl

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -221,6 +221,37 @@ In case of `child` instance it is a bit simpler. By default, hostPath: `/var/lib
221221
in: `/var/lib/netdata`. You can disable it, but this option is pretty much required in a real life scenario, as without
222222
it each pod deletion will result in a new replication node for a parent.
223223

224+
### Collecting logs with OpenTelemetry
225+
226+
Netdata can ingest, store, and visualize your cluster's container logs through OpenTelemetry.
227+
This relies on two components — **both disabled by default** and **both required** for logs to
228+
appear:
229+
230+
- **`netdataOpentelemetry`** — Netdata's OpenTelemetry receiver. It runs as its own `Deployment`
231+
(the `netdata-otel` node) and listens for OTLP data on port `4317`. It receives, stores, and
232+
displays the logs in the Netdata UI. It does **not** collect logs itself.
233+
- **`otel-collector`** — the upstream [OpenTelemetry Collector](https://opentelemetry.io/docs/platforms/kubernetes/helm/collector/),
234+
bundled as an optional subchart. It runs as a `DaemonSet` (one pod per node), reads each node's
235+
local container log files, and forwards them over OTLP to `netdataOpentelemetry`.
236+
237+
`netdataOpentelemetry` is the destination; `otel-collector` is what feeds it. The collector is
238+
bundled only as a convenient, working default, and is off by default because it is not the only
239+
option. If you already run a log pipeline (Fluent Bit, Vector, an existing Collector, or any
240+
OTLP-capable agent), leave `otel-collector` disabled and point that pipeline's OTLP exporter at
241+
the `netdata-otel` service on port `4317` instead.
242+
243+
**Log flow:**
244+
245+
```
246+
container stdout/stderr
247+
│ the container runtime writes them to node-local files (/var/log/pods/…)
248+
249+
otel-collector DaemonSet (one pod per node, needs host log access)
250+
│ reads each node's log files, pushes over OTLP
251+
252+
netdata-otel:4317 → stored and shown in the Netdata UI
253+
```
254+
224255
### Service discovery and supported services
225256

226257
Netdata's [service discovery](https://github.com/netdata/agent-service-discovery/), which is installed as part of the

0 commit comments

Comments
 (0)