From bfefa4625688b0eacb43d68a5beedc50ce5a871c Mon Sep 17 00:00:00 2001
From: Pavol Loffay
Date: Thu, 4 Apr 2024 15:01:15 +0200
Subject: [PATCH] Add OpenTelemetry journald receiver
Signed-off-by: Pavol Loffay
---
modules/otel-collector-components.adoc | 120 ++++++++++++++++++++++++-
1 file changed, 117 insertions(+), 3 deletions(-)
diff --git a/modules/otel-collector-components.adoc b/modules/otel-collector-components.adoc
index 5edf96ff6bea..a10b5f790d6b 100644
--- a/modules/otel-collector-components.adoc
+++ b/modules/otel-collector-components.adoc
@@ -14,7 +14,7 @@ Receivers get data into the Collector.
[id="otlp-receiver_{context}"]
=== OTLP Receiver
-The OTLP receiver ingests traces and metrics using the OpenTelemetry protocol (OTLP).
+The OTLP receiver ingests traces, metrics, and logs by using the OpenTelemetry Protocol (OTLP).
.OpenTelemetry Collector custom resource with an enabled OTLP receiver
[source,yaml]
@@ -43,9 +43,9 @@ The OTLP receiver ingests traces and metrics using the OpenTelemetry protocol (O
receivers: [otlp]
----
<1> The OTLP gRPC endpoint. If omitted, the default `+0.0.0.0:4317+` is used.
-<2> The server-side TLS configuration. Defines paths to TLS certificates. If omitted, TLS is disabled.
+<2> The server-side TLS configuration. Defines paths to TLS certificates. If omitted, the TLS is disabled.
<3> The path to the TLS certificate at which the server verifies a client certificate. This sets the value of `ClientCAs` and `ClientAuth` to `RequireAndVerifyClientCert` in the `TLSConfig`. For more information, see the link:https://godoc.org/crypto/tls#Config[`Config` of the Golang TLS package].
-<4> Specifies the time interval at which the certificate is reloaded. If the value is not set, the certificate is never reloaded. The `reload_interval` accepts a string containing valid units of time such as `ns`, `us` (or `µs`), `ms`, `s`, `m`, `h`.
+<4> Specifies the time interval at which the certificate is reloaded. If the value is not set, the certificate is never reloaded. The `reload_interval` field accepts a string containing valid units of time such as `ns`, `us` (or `µs`), `ms`, `s`, `m`, `h`.
<5> The OTLP HTTP endpoint. The default value is `+0.0.0.0:4318+`.
<6> The server-side TLS configuration. For more information, see the `grpc` protocol configuration section.
@@ -590,6 +590,120 @@ receivers:
<1> A list of file glob patterns that match the file paths to be read.
<2> An array of Operators. Each Operator performs a simple task such as parsing a timestamp or JSON. To process logs into a desired format, chain the Operators together.
+[id="journald-receiver_{context}"]
+=== Journald Receiver
+
+:FeatureName: The Journald Receiver
+include::snippets/technology-preview.adoc[]
+
+The Journald Receiver parses *journald* events from the *systemd* journal and sends them as logs.
+
+.OpenTelemetry Collector custom resource with the enabled Journald Receiver
+[source,yaml]
+----
+kubectl apply -f - <
+ units: # <2>
+ - kubelet
+ - crio
+ - init.scope
+ - dnsmasq
+ all: true # <3>
+ retry_on_failure:
+ enabled: true # <4>
+ initial_interval: 1s # <5>
+ max_interval: 30s # <6>
+ max_elapsed_time: 5m # <7>
+ processors:
+ exporters:
+ debug:
+ verbosity: detailed
+ service:
+ pipelines:
+ logs:
+ receivers: [journald]
+ exporters: [debug]
+ volumeMounts:
+ - name: journal-logs
+ mountPath: /var/log/journal/
+ readOnly: true
+ volumes:
+ - name: journal-logs
+ hostPath:
+ path: /var/log/journal
+ tolerations:
+ - key: node-role.kubernetes.io/master
+ operator: Exists
+ effect: NoSchedule
+EOF
+----
+<1> Filters output by message priorities or priority ranges. The default value is `info`.
+<2> Lists the units to read entries from. If empty, entries are read from all units.
+<3> Includes very long logs and logs with unprintable characters. The default value is `false`.
+<4> If set to `true`, the receiver pauses reading a file and attempts to resend the current batch of logs when encountering an error from downstream components. The default value is `false`.
+<5> The time interval to wait after the first failure before retrying. The default value is `1s`. The units are `ms`, `s`, `m`, `h`.
+<6> The upper bound for the retry backoff interval. When this value is reached, the time interval between consecutive retry attempts remains constant at this value. The default value is `30s`. The supported units are `ms`, `s`, `m`, `h`.
+<7> The maximum time interval, including retry attempts, for attempting to send a logs batch to a downstream consumer. When this value is reached, the data are discarded. If the set value is `0`, retrying never stops. The default value is `5m`. The supported units are `ms`, `s`, `m`, `h`.
+
[id="processors_{context}"]
== Processors