Skip to content

Releases: axoflow/axosyslog

axosyslog-charts-0.20.0

03 Jun 18:20
be8c777

Choose a tag to compare

AxoSyslog is the cloud-native syslog-ng for Kubernetes

axosyslog-4.25.0

05 May 09:19
820687d

Choose a tag to compare

4.25.0

AxoSyslog is binary-compatible with syslog-ng [1] and serves as a drop-in replacement.

We provide cloud-ready container images and Helm charts.

Packages are available in our APT and RPM repositories (Ubuntu, Debian, AlmaLinux, Fedora).

Check out the AxoSyslog documentation for all the details.

Features

  • syslog()/network(): HAProxy protocol v2 support over UDP

    When transport(proxied-udp) is configured, the original client address and port are available as ${SOURCEIP},
    ${SOURCEPORT}, ${DESTIP}, and ${DESTPORT}.
    (#987)

  • FilterX: Added new function: uuid() that generates a random UUID v4 string.
    (#1018)

  • FilterX: Added various crypto hash digest functions.

    These functions compute the hash of a string or bytes and return the result as a hex string:

    • md5()
    • sha1()
    • sha256()
    • sha512()

    The generic digest(input, alg="sha256") function accepts an optional algorithm
    name and returns the raw hash as a bytes object.
    (#1019)

  • FilterX: Added utf8_validate() and utf8_sanitize() string functions.

    • utf8_validate() checks whether the string contains valid UTF-8 sequences and returns a boolean
    • utf8_sanitize() replaces invalid byte sequences with their \xNN escaped representation
      (#1019)
  • FilterX: Added various encoding/decoding functions.

    • base64_encode()/base64_decode() (bytes <-> string)
    • urlencode()/urldecode() (string <-> string)
    • hex_encode()/hex_decode() (bytes <-> string)
      (#1019)
  • New FilterX types subnet() and ip(): these new types encapsulate an
    IPv4/IPv6 subnet (in CIDR notation) or a single IP address. Both types takes
    their string representation and will return an ERROR if the format cannot be
    parsed.

    Example configuration:

    a = subnet("192.168.0.0/24");
    
    "192.168.0.5" in a;
    "192.168.1.5" in a or true;
    ip("192.168.0.11") in a;
    
    a6 = subnet("DEAD:BEEF::1/64");
    
    "DEAD:BEEF::2" in a6;
    "DEAD:BABE::1" in a6 or true;
    ip("DEAD:BEEF::00ac") in a6;
    

    (#1021)

  • FilterX glob_match() function: this function will match a filename against
    a single-, or a list of glob-style patterns.

    Example:

    glob_match(filename, "*.zip");
    glob_match(filename, ["*.zip", "*.7z"]);
    

    (#1039)

  • FilterX cache_json_file: add deafult_value parameter to FilterX function

    If the file is not present, or an error occurs when reading it, the default_value will be used, if provided.

    Example:

    cache_json_file("./test.json", default_value={"key": "value"});
    

    (#1034)

Bugfixes

  • disk-buffer(): keep the queue alive during reload

    Keeping the disk-buffer alive on reload fixes a bug, where a full disk-buffer can
    grow infinitely by reloading. It can also cause significant reload speedup.
    (#1030)

  • disk-buffer(): fix message ordering issue when a message batch failed to be delivered
    (#1005)

  • CR (\r) characters are now removed from line endings, empty UDP datagrams are dropped
    (#1000)

  • FilterX parse_xml(): fix crash in case of invalid XML
    (#1041)

  • FilterX: fix crash when using the + operator on dicts
    (#1040)

  • FilterX: fix error handling of the =?? operator
    (#1053)

Other changes

  • opentelemetry(), axosyslog-otlp, loki(), google-pubsub, clickhouse, bigquery : improve performance by using gRPC arenas for allocation
    (#1015)

  • New metrics: syslogng_input_transport_errors_total for syslog framing and TLS errors
    (#1026)

  • http(): error reporting improvements of batched sending
    (#1001)

  • Network sources: transport(auto) detections became more robust
    (#1013)

  • syslog-ng --interactive: new debugger commands - step, continue, follow, trace
    (#340)

  • FilterX performance optimizations

  • Contribution Guide: added section on how to contribute AI-assisted code
    (#1043)

[1] syslog-ng is a trademark of One Identity.

Discord

For a bit more interactive discussion, join our Discord server:

Axoflow Discord Server

Credits

AxoSyslog is developed as a community project, and as such it relies
on volunteers, to do the work necessary to produce AxoSyslog.

Reporting bugs, testing changes, writing code or simply providing
feedback is an important contribution, so please if you are a user
of AxoSyslog, contribute.

We would like to thank the following people for their contribution:

Andras Mitzki, Attila Szakacs, Balazs Scheidler, László Várady,
Szilard Parrag, Tamás Kosztyu

axosyslog-4.24.0

23 Mar 16:11
9cfd483

Choose a tag to compare

4.24.0

AxoSyslog is binary-compatible with syslog-ng [1] and serves as a drop-in replacement.

We provide cloud-ready container images and Helm charts.

Packages are available in our APT and RPM repositories (Ubuntu, Debian, AlmaLinux, Fedora).

Check out the AxoSyslog documentation for all the details.

Features

  • Supported metrics now can be queried with syslog-ng --metrics-registry
    (#993)

  • http() and other threaded destinations: add batch-idle-timeout() option

    While batch-timeout() defines the maximum amount of time a batch may wait before it is sent (starting from the first message),
    the new batch-idle-timeout() measures the elapsed time since the last message was added to the batch.

    Whichever timeout expires first will close and send the batch.

    batch-idle-timeout() defaults to 0 (disabled).
    (#950)

  • fix-timestamp(), guess_timestamp() and set_timestamp(): new filterx functions.

    Example usage:

    datetime = strptime("2000-01-01T00:00:00 +0200", "%Y-%m-%dT%H:%M:%S %z");
    timezone = "CET";
    fixed_datetime = fix_timezone(datetime, timezone);
    guessed_datetime = guess_timezone(datetime);
    set_datetime = set_timezone(datetime, "CET");
    

    (#960)

  • get_timezone_source(): new filterx function

    Returns a string indicating where the timezone information originates from.
    Possible values:

    • "parsed": the timezone info is explicitly parsed from the timestamp
    • "assumed": the timestamp didn't contain timezone info, default used (currently local timezone)
    • "fixed": the timezone info was set using fix_timezone() or set_timezone() functions
    • "guessed": the timezone info was set using guess_timezone() function

    Example usage:

    if (get_timezone_source(timestamp) === "assumed") {
      timestamp = fix_timezone(timestamp, "CET");
    };
    

    (#979)

  • network-load-balancer: add support for failover

    The confgen script for network-load-balancer now supports failover, generating the list of failover servers for each destination automatically.
    (#908)

Bugfixes

  • FilterX LEEF formatter/parser: fix escaping of = in extension values
    (#986)

  • dynamic-window-size(): fix occasional crash and incorrect window calculation
    (#988)

  • opentelemetry() and other threaded sources: fix occasional crash during reload
    (#989)

  • Fix various memory leaks
    (#978, #954,
    #953, #982)

  • network()/syslog() sources and parser: fix crash when using the sanitize-utf8 flag on large invalid messages
    (#985)

  • opentelemetry() source: fixed a bug causing the source to hang on reload
    (#991)

  • strptime(): fix parsing %s format.
    (#984)

  • disk-buffer(): detect abandoned metrics in default directory
    (#965)

  • date-parser() and FilterX strptime(): accept "UTC" in %z/%Z
    (#1002)

Other changes

  • disk-buffer(): the serialization format has been upgraded to v27
    (#933)

  • FilterX: JSON-related functionality is now powered by jsmn, resulting in improved performance
    (#882)

  • New metrics:

    • syslogng_event_processing_latency_seconds{measurement_point="input/output"}
      • Histogram of the latency from message receipt to full processing, from the source or destination perspective.
    • syslogng_output_event_latency_seconds
      • Histogram of the latency from message receipt to delivery, from the destination perspective.

    output_event_delay_sample_seconds has been removed in favor of output_event_latency_seconds.
    (#983)

[1] syslog-ng is a trademark of One Identity.

Discord

For a bit more interactive discussion, join our Discord server:

Axoflow Discord Server

Credits

AxoSyslog is developed as a community project, and as such it relies
on volunteers, to do the work necessary to produce AxoSyslog.

Reporting bugs, testing changes, writing code or simply providing
feedback is an important contribution, so please if you are a user
of AxoSyslog, contribute.

We would like to thank the following people for their contribution:

Akos Zalavary, Andras Mitzki, Attila Szakacs, Balazs Scheidler,
Daniele Ferla, Kevin Mainardis, László Várady, Romain Tartière,
Szilard Parrag, Tamás Kosztyu, shifter

axosyslog-4.23.0

24 Feb 13:02
265070f

Choose a tag to compare

4.23.0

AxoSyslog is binary-compatible with syslog-ng [1] and serves as a drop-in replacement.

We provide cloud-ready container images and Helm charts.

Packages are available in our APT and RPM repositories (Ubuntu, Debian, AlmaLinux, Fedora).

Check out the AxoSyslog documentation for all the details.

Features

  • Memory queues: Reduced the amount of memory we use to store queued messages.

    Savings can be as much as 50%, or 8GB less memory use to represent
    1M messages (e.g. 8GB instead of 15GB, as measured by RSS).
    (#891)

  • network()/syslog(): Added extended-key-usage-verify(yes) for TLS sources/destinations.
    (#907)

  • FilterX: Added a new function called move().

    move() tells FilterX that the variable/expression specified as argument
    can be moved to its new location, instead of copying it.
    While FilterX optimizes most copies using its copy-on-write mechanism,
    some cases can be faster by telling it that the old location is not needed
    anymore. move() is equivalent to an unset() but is more explicit and
    returns the moved value, unlike unset().
    (#876)

  • FilterX format_isodate() function: Added new function for datetime formatting.
    (#922)

  • http: Added force-content-compression() option.

    Usage:

    destination {
      http(
        url("http://example.com/endpoint")
        content-compression("gzip")
        force-content-compression(yes)
      );
    }
    

    (#916)

  • opentelemetry() source: Added ip() option to specify bind address.
    (#949)

Bugfixes

  • FilterX dict and list: Fixed a potential crash when recursively inserting
    a dict or list instance into itself.
    (#891)

  • FilterX parse_kv() function: Fixed improperly quoted key-value pair overwriting previous entry.
    (#921)

  • json-parser(): Fixed parsing JSON array of string with comma.
    (#923)

  • metrics: Made message memory usage metrics more accurate.

    AxoSyslog keeps track of memory usage by messages both globally and on
    a per queue basis. The accounting behind those metrics were inaccurate,
    the value shown being smaller than the actual memory use.
    These inaccuracies were fixed.
    (#889)

  • internal() source: Fixed message loss during reload.
    (#944)

  • network()/syslog(): Fix performance degradation around dynamic-window-size() when senders disconnect early.
    (#937)

  • network()/syslog() sources: Fix a dynamic-window() crash on client disconnect while messages are pending.
    (#931)

  • network()/syslog(): Fixed setting TLS-related macros, like ${.tls.x509_cn}, for the first message.
    (#911)

  • config: Fixed a bug where @defines and environment variables were not substituted in SCL arguments
    in case those arguments were spread across multiple lines.
    (#920)

  • parallelize(): Fix leaking messages and losing input window during reload.
    (#962)

Other changes

  • http(): Added debug and notice level request logging for failed requests.
    (#928)

  • FilterX repr() function: datetime representation now has microsecond resolution.

    Before:
    2000-01-01T00:00:00.000+00:00

    After:
    2000-01-01T00:00:00.000000+00:00
    (#919)

  • Batching destinations: Added syslogng_output_batch_timedout_total metric.
    (#947)

  • parallelize(): Added syslogng_parallelize_failed_events_total metric.
    (#924)

  • metrics: Added a single syslogng_input_window_full_total on stats(level(1))

    It shows the total number of input window full events for the whole config.
    (#938)

[1] syslog-ng is a trademark of One Identity.

Discord

For a bit more interactive discussion, join our Discord server:

Axoflow Discord Server

Credits

AxoSyslog is developed as a community project, and as such it relies
on volunteers, to do the work necessary to produce AxoSyslog.

Reporting bugs, testing changes, writing code or simply providing
feedback is an important contribution, so please if you are a user
of AxoSyslog, contribute.

We would like to thank the following people for their contribution:

Andras Mitzki, Attila Szakacs, Balazs Scheidler, Fᴀʙɪᴇɴ Wᴇʀɴʟɪ, Hofi,
László Várady, Peter Czanik (CzP), Romain Tartière, Szilard Parrag

axosyslog-charts-0.19.0

19 Jan 12:16
51be869

Choose a tag to compare

AxoSyslog for Kubernetes

axosyslog-4.22.0

19 Jan 11:59
dc307eb

Choose a tag to compare

4.22.0

AxoSyslog is binary-compatible with syslog-ng [1] and serves as a drop-in replacement.

We provide cloud-ready container images and Helm charts.

Packages are available in our APT and RPM repositories (Ubuntu, Debian, AlmaLinux, Fedora).

Check out the AxoSyslog documentation for all the details.

Features

  • FilterX in operator: Added support for dict keys for membership check.

    my_dict = {"foo": "foovalue", "bar": "barvalue"};
    my_needle = "foobar";
    
    if (my_needle in my_dict) {
      $MSG = "Found: " + my_dict[my_needle];
    } else {
      $MSG = "Not Found";
    };
    

    (#888)

Bugfixes

  • parallelize(): Fixed occasional crashes on high load.
    (#904)

  • parallelize(): Fixed unoptimized parallelization with more workers() than CPU cores.
    (#906)

  • FilterX regexp_subst() function: Fixed capture group references in the replacement argument.

    In the case of global=true, the value of capture group references were always used from
    that of the first match, e.g. the 2nd and subseqent matches used an incorrect value.
    (#895)

  • disk-buffer(): Fixed various bugs.

    • Fixed potential writes beyond the configured front-cache limit.
    • Fixed a possible issue where memory usage metrics could reset on reload.

    (#901)

Other changes

  • disk-buffer(): Various smaller improvements and QoL features.

    • Added detailed debug logging for diskbuffer load and save operations,
      exposing the internal state of the non-reliable diskbuffer.
    • Improved front-cache balancing by enforcing the front-cache limit when
      distributing items between front-cache and front-cache-output.
    • Improved calculation of abandoned diskbuffer metrics by using existing
      file header data instead of loading the entire buffer file,
      significantly reducing reload time impact.

    (#901)
    (#902)

[1] syslog-ng is a trademark of One Identity.

Discord

For a bit more interactive discussion, join our Discord server:

Axoflow Discord Server

Credits

AxoSyslog is developed as a community project, and as such it relies
on volunteers, to do the work necessary to produce AxoSyslog.

Reporting bugs, testing changes, writing code or simply providing
feedback is an important contribution, so please if you are a user
of AxoSyslog, contribute.

We would like to thank the following people for their contribution:

Andras Mitzki, Attila Szakacs, Balazs Scheidler,
BenBryzak-brisbaneqldgovau, László Várady, Szilard Parrag, shifter

axosyslog-4.21.0

15 Dec 16:04
a17f6a8

Choose a tag to compare

4.21.0

AxoSyslog is binary-compatible with syslog-ng [1] and serves as a drop-in replacement.

We provide cloud-ready container images and Helm charts.

Packages are available in our APT and RPM repositories (Ubuntu, Debian, AlmaLinux, Fedora).

Check out the AxoSyslog documentation for all the details.

Features

  • format_syslog_5424(): Added new FilterX function for syslog formatting

    Usage:

    format_syslog_5424(
      message,
      add_octet_count=false,
      pri=expr,
      timestamp=expr,
      host=expr,
      program=expr,
      pid=expr,
      msgid=expr
    )
    

    message is the only mandatory argument.

    Fallback values will be used instead of the named arguments
    if they are not set, or their evaluation fails.
    (#875)

  • http() and other threaded destinations: add worker-partition-autoscaling(yes)

    When worker-partition-key() is used to categorize messages into different batches,
    the messages are - by default - hashed into workers, which prevents them from being distributed across workers
    efficiently, based on load.

    The new worker-partition-autoscaling(yes) option uses a 1-minute statistic to help distribute
    high-traffic partitions among multiple workers, allowing each worker to maximize its batch size.

    When using this autoscaling option, it is recommended to oversize the number of workers: set it higher than the
    expected number of partitions.
    (#855)

  • network(): add transport(nul-terminated) to support NULL characters to separate log records instead of the
    more traditional newline separated format
    (#867)

  • New metrics: syslogng_output_workers and syslogng_output_active_worker_partitions

    Using the new worker-partition-autoscaling(yes) option allows producing partition metrics, which can be used
    for alerting: if the number of active partitions remains higher than the configured number of workers,
    it may indicate that events are not being batched properly, which can lead to performance degradation.
    (#866)

Bugfixes

  • FilterX parse_csv(): fix crash
    (#879)

  • FilterX metrics_labels(): fix += operator
    (#878)

  • disk-buffer(): fix memory leaks
    (#872)

Other changes

  • disk-buffer(): significant performance improvements for the non-reliable disk buffer
    (#857)

  • Performance improvements for memory queues
    (#881)

[1] syslog-ng is a trademark of One Identity.

Discord

For a bit more interactive discussion, join our Discord server:

Axoflow Discord Server

Credits

AxoSyslog is developed as a community project, and as such it relies
on volunteers, to do the work necessary to produce AxoSyslog.

Reporting bugs, testing changes, writing code or simply providing
feedback is an important contribution, so please if you are a user
of AxoSyslog, contribute.

We would like to thank the following people for their contribution:

Andras Mitzki, Attila Szakacs, Balazs Scheidler, László Várady, Szilard Parrag,
Tamás Kosztyu, shifter

axosyslog-4.20.1

01 Dec 07:55
65c7328

Choose a tag to compare

4.20.1

This is a hotfix release that fixes a rare metric race condition causing a reload time crash.

AxoSyslog is binary-compatible with syslog-ng [1] and serves as a drop-in replacement.

We provide cloud-ready container images and Helm charts.

Packages are available in our APT and RPM repositories (Ubuntu, Debian, AlmaLinux, Fedora).

Check out the AxoSyslog documentation for all the details.

Features

  • Added new metrics

    • syslogng_window_capacity and syslogng_window_available on stats(level(3)).
      • Shows the log-iw-size() value and the current state of the source window, respectively.
    • syslogng_window_full_total
      • Tracks how many times the window was completely full. This counter will
        increase any time the destination causes the source to be throttled.
    • syslogng_memory_queue_processed_events_total and syslogng_disk_queue_processed_events_total
      • Counts the number of events processed since startup by each queue.
    • syslogng_output_batch_size_..., syslogng_output_event_size_..., syslogng_output_request_latency_...
      • histogram style metrics for http(), otel() and other threaded destinations

    (#823)
    (#824)
    (#845)

  • clickhouse() destination: Added JSONCompactEachRow format and new format directive

    This update enhances the ClickHouse destination by adding support for the JSONCompactEachRow
    format and introducing a new format directive for explicitly selecting the data format.

    Background
    Previously, the destination supported:

    • Protobuf (default when using proto-var)
    • JSONEachRow (default when using json-var)

    These defaults remain unchanged.

    What’s new

    • Added support for JSONCompactEachRow — a more compact, array-based JSON representation (used with json-var).
    • Introduced the format directive, allowing manual selection of the desired format:
      • JSONEachRow
      • JSONCompactEachRow
      • Protobuf

    Example

    destination {
      clickhouse (
        ...
        json-var(json("$my_filterx_json_var"))
        format("JSONCompactEachRow")
        ...
      );
    };

    JSONEachRow (each JSON object per line, more readable):

    {"id":1,"name":"foo","value":42}
    {"id":2,"name":"bar","value":17}
    

    JSONCompactEachRow (compact array-based row representation):

    [1,"foo",42]
    [2,"bar",17]
    

    Validation and error handling

    Invalid format values now produce:

    Error parsing within destination: invalid format value 'invalid format', possible values:[JSONEachRow, JSONCompactEachRow, Protobuf]
    

    If the data’s actual format doesn’t match the selected format, ClickHouse returns:

    CANNOT_PARSE_INPUT_ASSERTION_FAILED
    

    (#828)

  • opentelemetry() source: Added keep-alive() option

    With this new option, client connections can be kept alive during reload,
    avoiding unnecessary retry backoffs and other error messages on the client
    side.

    The default is yes.

    (#832)

  • s3() destination: Added new object_key_suffix() option

    The default suffix is an empty string, to ensure backward compatibility.
    (#797)

  • http() and other threaded destinations: add worker-partition-buckets() option

    This allows the same worker-partition-key() to use multiple worker threads.
    (#852)

Bugfixes

  • metrics: Fixed a rare race condition in dynamic metrics.
    (#858)

  • filterx: Fixed various memory leaks
    (#829)
    (#836)
    (#842)

  • filterx: Fixed a variable synchronization bug.
    (#849)

  • filterx otel_logrecord(): Fixed not clearing body before setting dict and array values.
    (#835)

  • Fixed keep-alive() during config reload revert
    (#831)

  • http() destination: Fixed batch partitioning in case of templated body-prefix()
    (#843)

  • s3: Bugfixes and general stability improvements for the s3 destination driver

    • Fixed a major bug causing data loss if multithreaded upload was enabled via the upload-threads option.
    • Fixed a bug where in certain conditions finished object buffers would fail to upload.
    • Fixed a bug, where empty chunks were being uploaded, causing errors.

    (#797)
    (#846)

  • filterx: fix potential use-after-free crashes
    (#854)

  • disk-buffer(): fix memory leak when worker-partition-key() and disk-buffer() are used together
    (#853)

Other changes

  • Improved reload time for large configurations.
    (#844)

[1] syslog-ng is a trademark of One Identity.

Discord

For a bit more interactive discussion, join our Discord server:

Axoflow Discord Server

Credits

AxoSyslog is developed as a community project, and as such it relies
on volunteers, to do the work necessary to produce AxoSyslog.

Reporting bugs, testing changes, writing code or simply providing
feedback is an important contribution, so please if you are a user
of AxoSyslog, contribute.

We would like to thank the following people for their contribution:

Andras Mitzki, Attila Szakacs, Balazs Scheidler, Bálint Horváth,
László Várady, Szilard Parrag, Tamás Kosztyu, shifter

axosyslog-4.20.0

19 Nov 22:59
0adcbb3

Choose a tag to compare

4.20.0

AxoSyslog is binary-compatible with syslog-ng [1] and serves as a drop-in replacement.

We provide cloud-ready container images and Helm charts.

Packages are available in our APT and RPM repositories (Ubuntu, Debian, AlmaLinux, Fedora).

Check out the AxoSyslog documentation for all the details.

Features

  • Added new metrics

    • syslogng_window_capacity and syslogng_window_available on stats(level(3)).
      • Shows the log-iw-size() value and the current state of the source window, respectively.
    • syslogng_window_full_total
      • Tracks how many times the window was completely full. This counter will
        increase any time the destination causes the source to be throttled.
    • syslogng_memory_queue_processed_events_total and syslogng_disk_queue_processed_events_total
      • Counts the number of events processed since startup by each queue.
    • syslogng_output_batch_size_..., syslogng_output_event_size_..., syslogng_output_request_latency_...
      • histogram style metrics for http(), otel() and other threaded destinations

    (#823)
    (#824)
    (#845)

  • clickhouse() destination: Added JSONCompactEachRow format and new format directive

    This update enhances the ClickHouse destination by adding support for the JSONCompactEachRow
    format and introducing a new format directive for explicitly selecting the data format.

    Background
    Previously, the destination supported:

    • Protobuf (default when using proto-var)
    • JSONEachRow (default when using json-var)

    These defaults remain unchanged.

    What’s new

    • Added support for JSONCompactEachRow — a more compact, array-based JSON representation (used with json-var).
    • Introduced the format directive, allowing manual selection of the desired format:
      • JSONEachRow
      • JSONCompactEachRow
      • Protobuf

    Example

    destination {
      clickhouse (
        ...
        json-var(json("$my_filterx_json_var"))
        format("JSONCompactEachRow")
        ...
      );
    };

    JSONEachRow (each JSON object per line, more readable):

    {"id":1,"name":"foo","value":42}
    {"id":2,"name":"bar","value":17}
    

    JSONCompactEachRow (compact array-based row representation):

    [1,"foo",42]
    [2,"bar",17]
    

    Validation and error handling

    Invalid format values now produce:

    Error parsing within destination: invalid format value 'invalid format', possible values:[JSONEachRow, JSONCompactEachRow, Protobuf]
    

    If the data’s actual format doesn’t match the selected format, ClickHouse returns:

    CANNOT_PARSE_INPUT_ASSERTION_FAILED
    

    (#828)

  • opentelemetry() source: Added keep-alive() option

    With this new option, client connections can be kept alive during reload,
    avoiding unnecessary retry backoffs and other error messages on the client
    side.

    The default is yes.

    (#832)

  • s3() destination: Added new object_key_suffix() option

    The default suffix is an empty string, to ensure backward compatibility.
    (#797)

  • http() and other threaded destinations: add worker-partition-buckets() option

    This allows the same worker-partition-key() to use multiple worker threads.
    (#852)

Bugfixes

  • filterx: Fixed various memory leaks
    (#829)
    (#836)
    (#842)

  • filterx: Fixed a variable synchronization bug.
    (#849)

  • filterx otel_logrecord(): Fixed not clearing body before setting dict and array values.
    (#835)

  • Fixed keep-alive() during config reload revert
    (#831)

  • http() destination: Fixed batch partitioning in case of templated body-prefix()
    (#843)

  • s3: Bugfixes and general stability improvements for the s3 destination driver

    • Fixed a major bug causing data loss if multithreaded upload was enabled via the upload-threads option.
    • Fixed a bug where in certain conditions finished object buffers would fail to upload.
    • Fixed a bug, where empty chunks were being uploaded, causing errors.

    (#797)
    (#846)

  • filterx: fix potential use-after-free crashes
    (#854)

  • disk-buffer(): fix memory leak when worker-partition-key() and disk-buffer() are used together
    (#853)

Other changes

  • Improved reload time for large configurations.
    (#844)

[1] syslog-ng is a trademark of One Identity.

Discord

For a bit more interactive discussion, join our Discord server:

Axoflow Discord Server

Credits

AxoSyslog is developed as a community project, and as such it relies
on volunteers, to do the work necessary to produce AxoSyslog.

Reporting bugs, testing changes, writing code or simply providing
feedback is an important contribution, so please if you are a user
of AxoSyslog, contribute.

We would like to thank the following people for their contribution:

Andras Mitzki, Attila Szakacs, Balazs Scheidler, Bálint Horváth,
László Várady, Szilard Parrag, Tamás Kosztyu, shifter

axosyslog-4.19.1

17 Oct 11:10
a908a77

Choose a tag to compare

4.19.1

This is a hotfix release that fixes a config reload time memory leak

AxoSyslog is binary-compatible with syslog-ng [1] and serves as a drop-in replacement.

We provide cloud-ready container images and Helm charts.

Packages are available in our APT and RPM repositories (Ubuntu, Debian, AlmaLinux, Fedora).

Check out the AxoSyslog documentation for all the details.

Bugfixes

  • filterx: Fixed a memory leak that occurs during reloads.
    (#827)

[1] syslog-ng is a trademark of One Identity.

Discord

For a bit more interactive discussion, join our Discord server:

Axoflow Discord Server

Credits

AxoSyslog is developed as a community project, and as such it relies
on volunteers, to do the work necessary to produce AxoSyslog.

Reporting bugs, testing changes, writing code or simply providing
feedback is an important contribution, so please if you are a user
of AxoSyslog, contribute.

We would like to thank the following people for their contribution:

Andras Mitzki, Attila Szakacs, Balazs Scheidler, László Várady,
Szilard Parrag, Tamás Kosztyu, shifter