Skip to content

Commit a17f6a8

Browse files
authored
Merge pull request #885 from axoflow/version/4.21.0
2 parents 893f6a3 + 07c93a4 commit a17f6a8

26 files changed

+93
-195
lines changed

NEWS.md

Lines changed: 46 additions & 123 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
1-
4.20.1
1+
4.21.0
22
======
33

4-
_This is a hotfix release that fixes a rare metric race condition causing a reload time crash._
5-
64
AxoSyslog is binary-compatible with syslog-ng [1] and serves as a drop-in replacement.
75

86
We provide [cloud-ready container images](https://github.com/axoflow/axosyslog/#container-images) and Helm charts.
@@ -11,147 +9,72 @@ Packages are available in our [APT](https://github.com/axoflow/axosyslog/#deb-pa
119

1210
Check out the [AxoSyslog documentation](https://axoflow.com/docs/axosyslog-core/) for all the details.
1311

14-
1512
## Features
1613

17-
* Added new metrics
18-
19-
* `syslogng_window_capacity` and `syslogng_window_available` on `stats(level(3))`.
20-
* Shows the `log-iw-size()` value and the current state of the source window, respectively.
21-
* `syslogng_window_full_total`
22-
* Tracks how many times the window was completely full. This counter will
23-
increase any time the destination causes the source to be throttled.
24-
* `syslogng_memory_queue_processed_events_total` and `syslogng_disk_queue_processed_events_total`
25-
* Counts the number of events processed since startup by each queue.
26-
* `syslogng_output_batch_size_...`, `syslogng_output_event_size_...`, `syslogng_output_request_latency_...`
27-
* histogram style metrics for `http()`, `otel()` and other threaded destinations
28-
29-
([#823](https://github.com/axoflow/axosyslog/pull/823))
30-
([#824](https://github.com/axoflow/axosyslog/pull/824))
31-
([#845](https://github.com/axoflow/axosyslog/pull/845))
32-
33-
* `clickhouse()` destination: Added JSONCompactEachRow format and new `format` directive
34-
35-
This update enhances the ClickHouse destination by adding support for the `JSONCompactEachRow`
36-
format and introducing a new `format` directive for explicitly selecting the data format.
37-
38-
**Background**
39-
Previously, the destination supported:
40-
- `Protobuf` (default when using `proto-var`)
41-
- `JSONEachRow` (default when using `json-var`)
42-
43-
These defaults remain unchanged.
44-
45-
**What’s new**
46-
- Added support for `JSONCompactEachRow` — a more compact, array-based JSON representation (used with `json-var`).
47-
- Introduced the `format` directive, allowing manual selection of the desired format:
48-
- `JSONEachRow`
49-
- `JSONCompactEachRow`
50-
- `Protobuf`
51-
52-
**Example**
53-
```hcl
54-
destination {
55-
clickhouse (
56-
...
57-
json-var(json("$my_filterx_json_var"))
58-
format("JSONCompactEachRow")
59-
...
60-
);
61-
};
62-
```
63-
64-
**JSONEachRow (each JSON object per line, more readable):**
65-
66-
```
67-
{"id":1,"name":"foo","value":42}
68-
{"id":2,"name":"bar","value":17}
69-
```
70-
71-
**JSONCompactEachRow (compact array-based row representation):**
72-
73-
```
74-
[1,"foo",42]
75-
[2,"bar",17]
76-
```
77-
78-
**Validation and error handling**
14+
* `format_syslog_5424()`: Added new FilterX function for syslog formatting
7915

80-
**Invalid format values now produce:**
16+
Usage:
8117
```
82-
Error parsing within destination: invalid format value 'invalid format', possible values:[JSONEachRow, JSONCompactEachRow, Protobuf]
18+
format_syslog_5424(
19+
message,
20+
add_octet_count=false,
21+
pri=expr,
22+
timestamp=expr,
23+
host=expr,
24+
program=expr,
25+
pid=expr,
26+
msgid=expr
27+
)
8328
```
8429
85-
**If the data’s actual format doesn’t match the selected format, ClickHouse returns:**
86-
```
87-
CANNOT_PARSE_INPUT_ASSERTION_FAILED
88-
```
89-
([#828](https://github.com/axoflow/axosyslog/pull/828))
90-
91-
* `opentelemetry()` source: Added `keep-alive()` option
30+
`message` is the only mandatory argument.
9231
93-
With this new option, client connections can be kept alive during reload,
94-
avoiding unnecessary retry backoffs and other error messages on the client
95-
side.
32+
Fallback values will be used instead of the named arguments
33+
if they are not set, or their evaluation fails.
34+
([#875](https://github.com/axoflow/axosyslog/pull/875))
9635
97-
The default is `yes`.
36+
* `http()` and other threaded destinations: add `worker-partition-autoscaling(yes)`
9837
99-
([#832](https://github.com/axoflow/axosyslog/pull/832))
38+
When `worker-partition-key()` is used to categorize messages into different batches,
39+
the messages are - by default - hashed into workers, which prevents them from being distributed across workers
40+
efficiently, based on load.
10041
101-
* `s3()` destination: Added new `object_key_suffix()` option
42+
The new `worker-partition-autoscaling(yes)` option uses a 1-minute statistic to help distribute
43+
high-traffic partitions among multiple workers, allowing each worker to maximize its batch size.
10244
103-
The default suffix is an empty string, to ensure backward compatibility.
104-
([#797](https://github.com/axoflow/axosyslog/pull/797))
45+
When using this autoscaling option, it is recommended to oversize the number of workers: set it higher than the
46+
expected number of partitions.
47+
([#855](https://github.com/axoflow/axosyslog/pull/855))
10548
106-
* `http()` and other threaded destinations: add `worker-partition-buckets()` option
49+
* `network()`: add `transport(nul-terminated)` to support NULL characters to separate log records instead of the
50+
more traditional newline separated format
51+
([#867](https://github.com/axoflow/axosyslog/pull/867))
10752
108-
This allows the same `worker-partition-key()` to use multiple worker threads.
109-
([#852](https://github.com/axoflow/axosyslog/pull/852))
53+
* New metrics: `syslogng_output_workers` and `syslogng_output_active_worker_partitions`
11054
55+
Using the new `worker-partition-autoscaling(yes)` option allows producing partition metrics, which can be used
56+
for alerting: if the number of active partitions remains higher than the configured number of workers,
57+
it may indicate that events are not being batched properly, which can lead to performance degradation.
58+
([#866](https://github.com/axoflow/axosyslog/pull/866))
11159
11260
## Bugfixes
11361
114-
* `metrics`: Fixed a rare race condition in dynamic metrics.
115-
([#858](https://github.com/axoflow/axosyslog/pull/858))
116-
117-
* `filterx`: Fixed various memory leaks
118-
([#829](https://github.com/axoflow/axosyslog/pull/829))
119-
([#836](https://github.com/axoflow/axosyslog/pull/836))
120-
([#842](https://github.com/axoflow/axosyslog/pull/842))
121-
122-
* `filterx`: Fixed a variable synchronization bug.
123-
([#849](https://github.com/axoflow/axosyslog/pull/849))
124-
125-
* `filterx` `otel_logrecord()`: Fixed not clearing `body` before setting dict and array values.
126-
([#835](https://github.com/axoflow/axosyslog/pull/835))
127-
128-
* Fixed `keep-alive()` during config reload revert
129-
([#831](https://github.com/axoflow/axosyslog/pull/831))
130-
131-
* `http()` destination: Fixed batch partitioning in case of templated `body-prefix()`
132-
([#843](https://github.com/axoflow/axosyslog/pull/843))
133-
134-
* `s3`: Bugfixes and general stability improvements for the `s3` destination driver
135-
136-
* Fixed a major bug causing data loss if multithreaded upload was enabled via the `upload-threads` option.
137-
* Fixed a bug where in certain conditions finished object buffers would fail to upload.
138-
* Fixed a bug, where empty chunks were being uploaded, causing errors.
139-
140-
([#797](https://github.com/axoflow/axosyslog/pull/797))
141-
([#846](https://github.com/axoflow/axosyslog/pull/846))
142-
143-
* `filterx`: fix potential use-after-free crashes
144-
([#854](https://github.com/axoflow/axosyslog/pull/854))
62+
* FilterX `parse_csv()`: fix crash
63+
([#879](https://github.com/axoflow/axosyslog/pull/879))
14564
146-
* `disk-buffer()`: fix memory leak when `worker-partition-key()` and `disk-buffer()` are used together
147-
([#853](https://github.com/axoflow/axosyslog/pull/853))
65+
* FilterX `metrics_labels()`: fix `+=` operator
66+
([#878](https://github.com/axoflow/axosyslog/pull/878))
14867
68+
* `disk-buffer()`: fix memory leaks
69+
([#872](https://github.com/axoflow/axosyslog/pull/872))
14970
15071
## Other changes
15172
152-
* Improved reload time for large configurations.
153-
([#844](https://github.com/axoflow/axosyslog/pull/844))
73+
* `disk-buffer()`: significant performance improvements for the non-reliable disk buffer
74+
([#857](https://github.com/axoflow/axosyslog/pull/857))
15475
76+
* Performance improvements for memory queues
77+
([#881](https://github.com/axoflow/axosyslog/pull/881))
15578
15679
[1] syslog-ng is a trademark of One Identity.
15780
@@ -172,5 +95,5 @@ of AxoSyslog, contribute.
17295
17396
We would like to thank the following people for their contribution:
17497
175-
Andras Mitzki, Attila Szakacs, Balazs Scheidler, Bálint Horváth,
176-
László Várady, Szilard Parrag, Tamás Kosztyu, shifter
98+
Andras Mitzki, Attila Szakacs, Balazs Scheidler, László Várady, Szilard Parrag,
99+
Tamás Kosztyu, shifter

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ A simple example is to ingest syslog traffic on tcp/514 and write it to a
4545
file:
4646

4747
```
48-
@version: 4.20
48+
@version: 4.21
4949
@include "scl.conf"
5050
5151
log {
@@ -85,7 +85,7 @@ docker pull ghcr.io/axoflow/axosyslog:nightly
8585
> Note: These named packages are automatically updated when a new AxoSyslog package is released. To install a specific version, run `docker pull ghcr.io/axoflow/axosyslog:<version-number>`, for example:
8686
>
8787
> ```shell
88-
> docker pull ghcr.io/axoflow/axosyslog:4.20.1
88+
> docker pull ghcr.io/axoflow/axosyslog:4.21.0
8989
> ```
9090
9191
The container images contain a default configuration file which you probably

VERSION.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
4.20.1
1+
4.21.0

contrib/openbsd-packaging/syslog-ng.conf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
# This should provide behavior similar to OpenBSD's syslog.conf(5).
33
# 2021-05-24 millert@openbsd.org
44

5-
@version: 4.20
5+
@version: 4.21
66
@requires openbsd
77

88
options {

doc/man/dqtool.1.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
<refmeta>
3131
<refentrytitle>dqtool</refentrytitle>
3232
<manvolnum>1</manvolnum>
33-
<refmiscinfo class="version">4.20</refmiscinfo>
33+
<refmiscinfo class="version">4.21</refmiscinfo>
3434
<refmiscinfo class="source"/>
3535
</refmeta>
3636
<refnamediv>
@@ -117,7 +117,7 @@ Mar 3 10:52:05 tristram localprg[1234]: seq: 0000011631, runid: 1267609923, sta
117117
<link linkend="syslog-ng.8"><command>syslog-ng</command>(8)</link>
118118
</para>
119119
<note version="5.0">
120-
<para>For the detailed documentation of see <link xmlns:ns1="http://www.w3.org/1999/xlink" ns1:href="https://www.syslog-ng.com/technical-documents/doc/syslog-ng-open-source-edition/3.37/administration-guide"><command>The 4.20 Administrator Guide</command></link></para>
120+
<para>For the detailed documentation of see <link xmlns:ns1="http://www.w3.org/1999/xlink" ns1:href="https://www.syslog-ng.com/technical-documents/doc/syslog-ng-open-source-edition/3.37/administration-guide"><command>The 4.21 Administrator Guide</command></link></para>
121121
<para>If you experience any problems or need help with syslog-ng, visit the <link xmlns:ns1="http://www.w3.org/1999/xlink" ns1:href="https://lists.balabit.hu/mailman/listinfo/syslog-ng"><command>syslog-ng mailing list</command></link>.</para>
122122
<para>For news and notifications about of syslog-ng, visit the <link xmlns:ns1="http://www.w3.org/1999/xlink" ns1:href="https://syslog-ng.org/blogs/"><command>syslog-ng blogs</command></link>.</para>
123123
</note>

doc/man/loggen.1.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
<refmeta>
3131
<refentrytitle>loggen</refentrytitle>
3232
<manvolnum>1</manvolnum>
33-
<refmiscinfo class="version">4.20</refmiscinfo>
33+
<refmiscinfo class="version">4.21</refmiscinfo>
3434
<refmiscinfo class="source"/>
3535
</refmeta>
3636
<refnamediv>
@@ -280,7 +280,7 @@
280280
<link linkend="syslog-ng.conf.5"><command>syslog-ng.conf</command>(5)</link>
281281
</para>
282282
<note version="5.0">
283-
<para>For the detailed documentation of see <link xmlns:ns1="http://www.w3.org/1999/xlink" ns1:href="https://www.syslog-ng.com/technical-documents/doc/syslog-ng-open-source-edition/3.37/administration-guide"><command>The 4.20 Administrator Guide</command></link></para>
283+
<para>For the detailed documentation of see <link xmlns:ns1="http://www.w3.org/1999/xlink" ns1:href="https://www.syslog-ng.com/technical-documents/doc/syslog-ng-open-source-edition/3.37/administration-guide"><command>The 4.21 Administrator Guide</command></link></para>
284284
<para>If you experience any problems or need help with syslog-ng, visit the <link xmlns:ns1="http://www.w3.org/1999/xlink" ns1:href="https://lists.balabit.hu/mailman/listinfo/syslog-ng"><command>syslog-ng mailing list</command></link>.</para>
285285
<para>For news and notifications about of syslog-ng, visit the <link xmlns:ns1="http://www.w3.org/1999/xlink" ns1:href="https://syslog-ng.org/blogs/"><command>syslog-ng blogs</command></link>.</para>
286286
</note>

doc/man/pdbtool.1.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
<refmeta>
3131
<refentrytitle>pdbtool</refentrytitle>
3232
<manvolnum>1</manvolnum>
33-
<refmiscinfo class="version">4.20</refmiscinfo>
33+
<refmiscinfo class="version">4.21</refmiscinfo>
3434
<refmiscinfo class="source"/>
3535
</refmeta>
3636
<refnamediv>
@@ -377,7 +377,7 @@
377377
</term>
378378
<listitem>
379379
<para>A pattern is added to the output pattern database if at least the specified percentage of log messages from the input logfile match the pattern. For example, if the input logfile contains 1000 log messages and the <parameter>--support=3.0</parameter> option is used, a pattern is created only if the pattern matches at least 3 percent of the log messages (that is, 30 log messages). If patternize does not create enough patterns, try to decrease the support value.</para>
380-
<para>Default value: <parameter>4.20</parameter></para>
380+
<para>Default value: <parameter>4.21</parameter></para>
381381
</listitem>
382382
</varlistentry>
383383
<varlistentry version="5.0">
@@ -467,7 +467,7 @@
467467
<link linkend="syslog-ng.8"><command>syslog-ng</command>(8)</link>
468468
</para>
469469
<note version="5.0">
470-
<para>For the detailed documentation of see <link xmlns:ns1="http://www.w3.org/1999/xlink" ns1:href="https://www.balabit.com/documents/syslog-ng-ose-latest-guides/en/syslog-ng-ose-guide-admin/html/index.html"><command>The 4.20 Administrator Guide</command></link></para>
470+
<para>For the detailed documentation of see <link xmlns:ns1="http://www.w3.org/1999/xlink" ns1:href="https://www.balabit.com/documents/syslog-ng-ose-latest-guides/en/syslog-ng-ose-guide-admin/html/index.html"><command>The 4.21 Administrator Guide</command></link></para>
471471
<para>If you experience any problems or need help with syslog-ng, visit the <link xmlns:ns1="http://www.w3.org/1999/xlink" ns1:href="https://lists.balabit.hu/mailman/listinfo/syslog-ng"><command>syslog-ng mailing list</command></link>.</para>
472472
<para>For news and notifications about of syslog-ng, visit the <link xmlns:ns1="http://www.w3.org/1999/xlink" ns1:href="https://syslog-ng.org/blogs/"><command>syslog-ng blogs</command></link>.</para>
473473
</note>

doc/man/persist-tool.1.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
<refmeta>
3131
<refentrytitle>persist-tool</refentrytitle>
3232
<manvolnum>1</manvolnum>
33-
<refmiscinfo class="version">4.20</refmiscinfo>
33+
<refmiscinfo class="version">4.21</refmiscinfo>
3434
<refmiscinfo class="source"/>
3535
</refmeta>
3636
<refnamediv>
@@ -130,7 +130,7 @@ affile_sd_curpos(/var/aaa.txt) OK</synopsis>
130130
<para><link linkend="syslog-ng.conf.5"> <command>syslog-ng.conf</command>(5)</link></para>
131131
<para><link linkend="syslog-ng.8"> <command>syslog-ng</command>(8)</link></para>
132132
<note version="5.0">
133-
<para>For the detailed documentation of see <link xmlns:ns1="http://www.w3.org/1999/xlink" ns1:href="https://www.balabit.com/documents/syslog-ng-ose-latest-guides/en/syslog-ng-ose-guide-admin/html/index.html"><command>The 4.20 Administrator Guide</command></link></para>
133+
<para>For the detailed documentation of see <link xmlns:ns1="http://www.w3.org/1999/xlink" ns1:href="https://www.balabit.com/documents/syslog-ng-ose-latest-guides/en/syslog-ng-ose-guide-admin/html/index.html"><command>The 4.21 Administrator Guide</command></link></para>
134134
<para>If you experience any problems or need help with syslog-ng, visit the <link xmlns:ns1="http://www.w3.org/1999/xlink" ns1:href="https://lists.balabit.hu/mailman/listinfo/syslog-ng"><command>syslog-ng mailing list</command></link>.</para>
135135
<para>For news and notifications about of syslog-ng, visit the <link xmlns:ns1="http://www.w3.org/1999/xlink" ns1:href="https://syslog-ng.org/blogs/"><command>syslog-ng blogs</command></link>.</para>
136136
</note>

doc/man/secure-logging.7.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
<refmeta>
3131
<refentrytitle>secure-logging</refentrytitle>
3232
<manvolnum>7</manvolnum>
33-
<refmiscinfo class="version">4.20</refmiscinfo>
33+
<refmiscinfo class="version">4.21</refmiscinfo>
3434
<refmiscinfo class="source"/>
3535
</refmeta>
3636
<refnamediv>
@@ -190,7 +190,7 @@ AgAAAAAAAAA=:5UVybnKL1EAbgC4CLfd8HpgurjREf4LEN61/yWHSD2hbXjRD4QmQdtbwguT1chzdItK
190190
# entries will be logged to a single file called /var/log/messages.slog
191191
#
192192
193-
@version: 4.20
193+
@version: 4.21
194194
@include "scl.conf"
195195
196196
source s_local {

doc/man/slogencrypt.1.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
<refmeta>
3131
<refentrytitle>slogencrypt</refentrytitle>
3232
<manvolnum>1</manvolnum>
33-
<refmiscinfo class="version">4.20</refmiscinfo>
33+
<refmiscinfo class="version">4.21</refmiscinfo>
3434
<refmiscinfo class="source"/>
3535
</refmeta>
3636
<refnamediv>

0 commit comments

Comments
 (0)