Skip to content

Commit 006e0f9

Browse files
Robert FeketeRobert Fekete
authored andcommitted
What's new draft
1 parent ddf59a8 commit 006e0f9

File tree

1 file changed

+106
-0
lines changed

1 file changed

+106
-0
lines changed

content/docs/whats-new/_index.md

Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,112 @@ title: What's new
33
weight: 50
44
---
55

6+
## Version 4.9
7+
8+
The following are the highlights and main changes of Logging operator 4.9. For a complete list of changes and bugfixes, see the [Logging operator 4.9 releases page](https://github.com/kube-logging/logging-operator/releases/tag/4.9.0)<!-- and the [Logging operator 4.9 release blog post](https://axoflow.com/logging-operator-4.9-release)-->.
9+
10+
### OpenTelemetry output
11+
12+
When using the [syslog-ng aggretor]({{< relref "/docs/configuration/output/_index.md#syslogngoutput" >}}), you can now send data directly to an OpenTelemetry endpoint. All metadata and the original log record are available. Resource attributes will be available in a future release, when we switch to an OpenTelemetry input and receive standard OTLP logs. For details, see {{% xref "/docs/configuration/plugins/syslog-ng-outputs/opentelemetry.md" %}}.
13+
14+
```yaml
15+
2024-07-05T09:00:23.407Z info LogsExporter {"kind": "exporter", "data_type": "logs", "name": "debug", "resource logs": 1, "log records": 1}
16+
2024-07-05T09:00:23.407Z info ResourceLog #0
17+
Resource SchemaURL:
18+
ScopeLogs #0
19+
ScopeLogs SchemaURL:
20+
InstrumentationScope
21+
LogRecord #0
22+
ObservedTimestamp: 2024-07-05 09:00:23.405798 +0000 UTC
23+
Timestamp: 2024-07-05 09:00:23.406049 +0000 UTC
24+
SeverityText:
25+
SeverityNumber: Info2(10)
26+
Body: Str({"ts":"2024-07-05T09:00:22.424670Z","log":"107.147.239.123 - - [05/Jul/2024:09:00:22 +0000] \"POST /index.html HTTP/1.1\" 200 14184 \"-\" \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3191.0 Safari/537.36\" \"-\"\n","stream":"stdout","time":"2024-07-05T09:00:22.424670292Z","kubernetes":{"pod_name":"log-generator-55867b6d4c-66fdv","namespace_name":"log-generator","pod_id":"682c9ed9-9421-406f-9c7b-cf2b2e62f406","labels":{"app.kubernetes.io/instance":"log-generator","app.kubernetes.io/name":"log-generator","pod-template-hash":"55867b6d4c"},"host":"logging","container_name":"log-generator","docker_id":"dba14a358990c4b6ab82acdf75069952f3b180b3f16dd9527adc7eb11f6d2167","container_hash":"ghcr.io/kube-logging/log-generator@sha256:e26102ef2d28201240fa6825e39efdf90dec0da9fa6b5aea6cf9113c0d3e93aa","container_image":"ghcr.io/kube-logging/log-generator:0.7.0"}})
27+
Trace ID:
28+
Span ID:
29+
Flags: 0
30+
{"kind": "exporter", "data_type": "logs", "name": "debug"}
31+
```
32+
33+
### Elasticsearch data streams
34+
35+
You can now send messages and metrics to [Elasticsearch data streams](https://www.elastic.co/guide/en/elasticsearch/reference/current/data-streams.html) to store your log and metrics data as time series data. You have to use the [syslog-ng aggretor]({{< relref "/docs/configuration/output/_index.md#syslogngoutput" >}}) to use this output. For details, see {{% xref "/docs/configuration/plugins/syslog-ng-outputs/elasticsearch_datastream.md" %}}.
36+
37+
### Improved Kafka performance
38+
39+
The {{% xref "/docs/configuration/plugins/outputs/kafka.md" %}} Fluentd output now supports using the rdkafka2 client, which offers higher performance than ruby-kafka. Set `use_rdkafka` to `true` to use the rdkafka2 client. (If you're using a custom Fluentd image, note that rdkafka2 requires v1.16-4.9-full or higher.)
40+
41+
### Containerd compatibility
42+
43+
As many users prefer Containerd instead of Docker as their container runtime, the slight differences between these CRIs are causing some problems. Now you can enable a compatibility layer with the `enableDockerParserCompatibilityForCRI` option of the `logging` CRD, for example:
44+
45+
```yaml
46+
apiVersion: logging.banzaicloud.io/v1beta1
47+
kind: Logging
48+
metadata:
49+
name: containerd
50+
spec:
51+
enableDockerParserCompatibilityForCRI: true
52+
```
53+
54+
This option enables a log parser that is compatible with the docker parser. This has the following benefits:
55+
56+
- automatically parses JSON logs using the Merge_Log feature
57+
- downstream parsers can use the `log` field instead of the `message` field, just like with the docker runtime
58+
- the `concat` and `parser` filters are automatically set back to use the `log` field.
59+
60+
Here is a sample log message with the option enabled:
61+
62+
```json
63+
{
64+
"log": "2024-08-12T14:19:29.672991171Z stderr F [2024/08/12 14:19:29] [ info] [input:tail:tail.0] inotify_fs_add(): inode=2939617 watch_fd=17 name=/var/log/containers/containerd-fluentd-0_default_fluentd-e46f1fcb1b63e7458fc43c079b7455f8e1305e551939ca128361a9574a194ed7.log",
65+
"kubernetes": {
66+
"pod_name": "containerd-fluentbit-mchwz",
67+
"namespace_name": "default",
68+
"pod_id": "22f86078-26f1-4202-bbc7-1dd5ddce20ec",
69+
"labels": {
70+
"app.kubernetes.io/instance": "containerd",
71+
"app.kubernetes.io/managed-by": "containerd",
72+
"app.kubernetes.io/name": "fluentbit",
73+
"controller-revision-hash": "6bb6f7f5f4",
74+
"pod-template-generation": "2"
75+
},
76+
"annotations": {
77+
"checksum/cri-log-parser.conf": "d902a0ee964e9398e637b581be851cdf50ab2846e82003d2f5e2feef82bef95d",
78+
"checksum/fluent-bit.conf": "dc9727d915c447b414dc05df2d9a6f23246cdca345309eb3107cc16ae8369b53"
79+
},
80+
"host": "logging",
81+
"container_name": "fluent-bit",
82+
"docker_id": "5cf032406344fdf41d76ce4489ee6f3ca092e9207ec49ab6209cc2bcf950e593",
83+
"container_image": "fluent/fluent-bit:3.0.4"
84+
}
85+
}
86+
```
87+
88+
### Set the severity of PrometheusRules
89+
90+
You can now configure `PrometheusRulesOverride` in your [`logging` CRDs]({{< relref "/docs/configuration/crds/v1beta1/common_types.md#PrometheusRulesOverride" >}}). The content of `PrometheusRulesOverride` is identical to the v1.Rule Prometheus rule type. The controller will match overrides by their names with the original rules. All of the override attributes are optional and whenever an attribute is set, it will replace the original attribute.
91+
92+
For example, you can change the severity of a rule like this:
93+
94+
```yaml
95+
fluentd:
96+
metrics:
97+
prometheusRules: true
98+
prometheusRulesOverride:
99+
- alert: FluentdPredictedBufferGrowth
100+
labels:
101+
rulegroup: fluentd
102+
service: fluentd
103+
severity: none
104+
```
105+
106+
### Other changes
107+
108+
- [Fluent Bit hot reload](#fluent-bit-hot-reload) now reloads imagePullSecrets as well.
109+
- From now on, the entire `spec.Security.SecurityContext` is passed to Fluent Bit.
110+
- Kubernetes namespace labels are added to the metadata by default. (The default of the `namespace_labels` option in the FluentBitAgent CRD is `on`.)
111+
6112
## Version 4.8
7113

8114
The following are the highlights and main changes of Logging operator 4.8. For a complete list of changes and bugfixes, see the [Logging operator 4.8 releases page](https://github.com/kube-logging/logging-operator/releases/tag/4.8.0) and the [Logging operator 4.8 release blog post](https://axoflow.com/logging-operator-4.8-release).

0 commit comments

Comments
 (0)