Re: syslog-ng version 4.9.0 is now available

Kerekes Gyula <[email protected]> Fri, 22 Aug 2025 10:35:39 +0200
Newsgroups gmane.comp.syslog-ng
Message-ID <[email protected]>
This is a multi-part message in MIME format.
--===============0070327105166436691==
Content-Type: multipart/alternative;
 boundary="------------Y5XuoHaePIZb40vvFyAdDt28"
Content-Language: en-US

This is a multi-part message in MIME format.
--------------Y5XuoHaePIZb40vvFyAdDt28
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi,


I tried this stats exporter-dont-log() feature and it works well but it 
seems like it has a mem leak somewhere. I tried to switch off the 
prometheus data collection to one of the syslog-ng hosts and the mem 
consumption stayed fairly low. On the other hand all the others used 1-2 
gigs of RSS mem. Is it a known issue?


Gyula


2025. 07. 17. 15:19 keltezéssel, Peter Czanik (pczanik) írta:
> Hi,
>
> I am happy to announce that version 4.9.0 of syslog-ng is now 
> available. Thanks everyone who contributed code, documentation, 
> testing, or in any other way.
>
> Peter
>
> *4.9.0*
> *Highlights*
>
>  *
>     |stats-exporter|: Added two new sources, |stats-exporter()| and
>     |stats-exporter-dont-log()|, which directly serve the output of
>     |syslog-ng-ctl stats| and |syslog-ng-ctl query| to a http scraper.
>     The only difference is that |stats-exporter-dont-log()| suppresses
>     log messages from incoming scraper requests, ensuring no messages
>     appear in the log path. Meanwhile, |stats-exporter()| logs
>     unparsed messages, storing incoming scraper HTTP requests in the
>     |MSG| field.
>     Example usage for a Prometheus Scraper which logs the HTTP request
>     of the scraper to /var/log/scraper.log:
>     |@version: 4.9 @include "scl.conf" source s_prometheus_stat {  
>      stats-exporter(        ip("0.0.0.0")        port(8080)      
>      stat-type("query")        stat-query("*")      
>      scrape-freq-limit(30)        single-instance(yes)    ); }; log {
>        source(s_prometheus_stat);    destination {
>     file(/var/log/scraper.log); }; }; |
>     Example usage for a generic HTTP Scraper which sends e.g. the |GET
>     /stats HTTP/1.1| HTTP request to get statistics of syslog-ng, do
>     not want to log or further process the HTTP requests in the log
>     pipe, and needs the response in CSV format:
>     |@version: 4.9 @include "scl.conf" source s_scraper_stat {  
>      stats-exporter-dont-log(        ip("0.0.0.0")        port(8080)  
>          stat-type("stats")        stat-format("csv")      
>      scrape-pattern("GET /stats*")        scrape-freq-limit(30)      
>      single-instance(yes)    ); }; log {    source(s_scraper_stat); }; |
>     Note: A destination is not required for this to work; the
>     |stats-exporter()| source will respond to the scraper regardless
>     of whether a destination is present in the log path.
>     Available options:
>     |stat-type(string)| - |query| or |stats|, just like for the
>     |syslog-ng-ctl| command line tool, see there for the details
>     |stat-query(string)| - the query regex string that can be used to
>     filter the output of a |query| type request
>     |stat-format(string)| - the output format of the given stats
>     request, like the |-m| option of the |syslog-ng-ctl| command line tool
>     |scrape-pattern(string)| – the pattern used to match the HTTP
>     header of incoming scraping requests. A stat response will be
>     generated and sent only if the header matches the pattern string
>     |scrape-freq-limit(non-negative-int)| - limits the frequency of
>     repeated scraper requests to the specified number of seconds. Any
>     repeated request within this period will be ignored. A value of 0
>     means no limit
>     |single-instance(yes/no)| - if set to |yes| only one scraper
>     connection and request will be allowed at once
>     (#5259 <https://github.com/syslog-ng/syslog-ng/pull/5259>)
>  *
>     |syslog()| source driver: add support for RFC6587 style
>     auto-detection of
>     octet-count based framing to avoid confusion that stems from the
>     sender
>     using a different protocol to the server. This behaviour can be
>     enabled
>     by using |transport(auto)| option for the |syslog()| source.
>     (#5322 <https://github.com/syslog-ng/syslog-ng/pull/5322>)
>  *
>     |wildcard-file|: Added inotify-based regular file change detection
>     using the existing inotify-based directory monitor.
>     This improves efficiency on OSes like Linux, where only polling
>     was available before, significantly reducing CPU usage while
>     enhancing change detection accuracy.
>     To enable this feature, inotify kernel support is required, along
>     with |monitor-method()| set to |inotify| or |auto|, and
>     |follow-freq()| set to 0.
>     (#5315 <https://github.com/syslog-ng/syslog-ng/pull/5315>)
>
> *Features*
>
>  *
>     |cisco|: Added support for Cisco Nexus NXOS 9.3 syslog format.
>     The parser now recognises NXOS 9.3 timestamps in |YYYY MMM DD
>     HH:MM:SS| format and handles the different
>     sequence number prefix (|: |instead of |seqno: |) used by NXOS 9.3
>     compared to traditional IOS formats.
>     Example Cisco configuration:
>     Example syslog-ng configuration:
>     |@include "scl.conf" source s_cisco {    network(ip(0.0.0.0)
>     transport("udp") port(2000) flags(no-parse)); }; parser p_cisco {
>        cisco-parser(); }; destination d_placeholder {    # Define your
>     destination here }; log {    source(s_cisco);    parser(p_cisco);
>        destination(d_placeholder); }; |
>     (#5412 <https://github.com/syslog-ng/syslog-ng/pull/5412>)
>       o NXOS: |(config)# logging server <syslog-ng-server-ip> port 2000|
>       o IOS: |(config)# logging host <syslog-ng-server-ip> transport
>         udp port 2000|
>  *
>     bigquery(), google-pubsub-grpc(): Added service-account()
>     authentication option.
>     Example usage:
>     |destination {    google-pubsub-grpc(        project("test")      
>      topic("test")        auth(service-account(key
>     ("path_to_service_account_key.json")))    ); }; |
>     Note: In contrary to the |http()| destination's similar option,
>     we do not need to manually set the audience here as it is
>     automatically recognized by the underlying gRPC API.
>     (#5270 <https://github.com/syslog-ng/syslog-ng/pull/5270>)
>  *
>     gRPC based destinations: Added |response-action()| option
>     With this option, it is possible to fine tune how syslog-ng
>     behaves in case of different gRPC results.
>     Supported by the following destination drivers:
>     Supported gRPC results:
>     Supported actions:
>     Usage:
>     |google-pubsub-grpc(  project("my-project")  topic("my-topic")
>      response-action(    not-found => disconnect    unavailable =>
>     drop  ) ); |
>     (#5332 <https://github.com/syslog-ng/syslog-ng/pull/5332>)
>       o |opentelemetry()|
>       o |loki()|
>       o |bigquery()|
>       o |clickhouse()|
>       o |google-pubsub-grpc()|
>       o ok
>       o unavailable
>       o cancelled
>       o deadline-exceeded
>       o aborted
>       o out-of-range
>       o data-loss
>       o unknown
>       o invalid-argument
>       o not-found
>       o already-exists
>       o permission-denied
>       o unauthenticated
>       o failed-precondition
>       o unimplemented
>       o internal
>       o resource-exhausted
>       o disconnect
>       o drop
>       o retry
>       o success
>  *
>     |s3|: Added two new options
>     Example:
>     |s3( url("http://localhost:9000") bucket("testbucket")
>     object_key("testobject") access_key("<ACCESS_KEY_ID>")
>     secret_key("<SECRET_ACCESS_KEY>") content_type("text/plain")
>     use_checksum("when_required") ); |
>     (#5286 <https://github.com/syslog-ng/syslog-ng/pull/5286>)
>       o |content-type()|: users now can change the content type of the
>         objects uploaded by syslog-ng.
>       o |use_checksum()|: This option allows the users to change the
>         default checksum settings for
>         S3 compatible solutions that don't support checksums. Requires
>         botocore 1.36 or above. Acceptable values are
>         |when_supported| (default) and |when_required|.
>  *
>     |loki()|: Added |batch-bytes()| and |compression()| options.
>     (#5174 <https://github.com/syslog-ng/syslog-ng/pull/5174>)
>  *
>     |syslog-ng-ctl|: Formatting the output of the |syslog-ng-ctl
>     stats| and |syslog-ng-ctl query| commands is unified.
>     Both commands got a new |--format| (|-m|) argument that can
>     control the output format of the given stat or query. The
>     following formats are supported:
>       o |kv| - the legacy key-value-pairs e.g.
>         |center.queued.processed=0| (only for the |query| command yet)
>       o |csv| - comma separated values e.g. |center;;queued;a;processed;0|
>       o |prometheus| - the prometheus scraper ready format e.g.
>         |syslogng_center_processed{stat_instance="queued"} 0|
>         (#5248 <https://github.com/syslog-ng/syslog-ng/pull/5248>)
>  *
>     |network()|, |syslog()| sources: add |$PEERIP| and |$PEERPORT| macros
>     The |$PEERIP| and |$PEERPORT| macros always display the address
>     and port of the direct sender.
>     In most cases, these values are identical to |$SOURCEIP| and
>     |$SOURCEPORT|.
>     However, when dealing with proxied protocols, |$PEERIP| and
>     |$PEERPORT| reflect the proxy's address and port,
>     while |$SOURCEIP| and |$SOURCEPORT| indicate the original source
>     of the message.
>     (#5291 <https://github.com/syslog-ng/syslog-ng/pull/5291>)
>  *
>     |webhook()|,|opentelemetry()| sources: support
>     |input_event_bytes| metrics
>     (#5324 <https://github.com/syslog-ng/syslog-ng/pull/5324>)
>  *
>     |freebsd-audit()|: added a simple source SCL to collect FreeBSD
>     audit logs using the built-in praudit program
>     https://www.syslog-ng.com/community/b/blog/posts/freebsd-audit-source-for-syslog-ng
>     <https://www.syslog-ng.com/community/b/blog/posts/freebsd-audit-source-for-syslog-ng>
>     (#5383 <https://github.com/syslog-ng/syslog-ng/pull/5383>)
>  *
>     |webhook()|: headers support
>     |include-request-headers(yes)| stores request headers under the
>     |${webhook.headers}| key, allowing further processing
>     |proxy-header("x-forwarded-for")| helps retain the sender's
>     original IP and the proxy's IP address
>     (|$SOURCEIP|, |$PEERIP|).
>     (#5333 <https://github.com/syslog-ng/syslog-ng/pull/5333>)
>  *
>     |check-program|: Introduced as a flag for global or source options.
>     By default, this flag is set to false. Enabling the check-program
>     flag triggers |program| name validation for |RFC3164| messages.
>     Valid |program| names must adhere to the following criteria:
>     Contain only these characters: |[a-zA-Z0-9-_/().]|
>     Include at least one alphabetical character.
>     If a |program| name fails validation, it will be considered part
>     of the log message.
>     Example:
>     |source { network(flags(check-hostname, check-program)); }; |
>     (#5264 <https://github.com/syslog-ng/syslog-ng/pull/5264>)
>  *
>     |syslog(transport(proxied-*))| and
>     |network(transport(proxied-*))|: changed
>     where HAProxy transport saved the original source and destination
>     addresses.
>     Instead of using dedicated |PROXIED_*| name-value pairs, use the usual
>     |$SOURCEIP|, |$SOURCEPORT|, |$DESTIP| and |$DESTPORT| macros,
>     making haproxy
>     based connections just like native ones.
>     |$SOURCEPORT|: added new macro which expands to the source port of
>     the peer.
>     (#5305 <https://github.com/syslog-ng/syslog-ng/pull/5305>)
>  *
>     |opentelemetry()|, |syslog-ng-otlp()|: Added |keep-alive()| options.
>     Keepalive can be configured with the |time()|, |timeout()|
>     and |max-pings-without-data()| options of the |keep-alive()| block.
>     |opentelemetry(    ...    keep-alive(time(20000) timeout(10000)
>     max-pings-without-data(0)) ); |
>     (#5174 <https://github.com/syslog-ng/syslog-ng/pull/5174>)
>  *
>     |bigquery()|: Added |auth()| options.
>     Similarly to other gRPC based destination drivers, the |bigquery()|
>     destination now accepts different authentication methods, like
>     |adc()|, |alts()|, |insecure()| and |tls()|.
>     |bigquery (    ...    auth(        tls(          
>      ca-file("/path/to/ca.pem")          
>      key-file("/path/to/key.pem")          
>      cert-file("/path/to/cert.pem")        )    ) ); |
>     (#5174 <https://github.com/syslog-ng/syslog-ng/pull/5174>)
>  *
>     |cloud-auth|: Added |azure-monitor()| destination
>     Added oauth2 authentication for azure monitor destinations.
>     Example usage:
>     |azure-monitor(     dcr-id("dcr id")     dce-uri("dce uri")    
>     stream_name("stream name")     auth(          tenant-id("tenant
>     id")          app-id("app id")          app-secret("app secret")  
>       ) ) |
>     (#5293 <https://github.com/syslog-ng/syslog-ng/pull/5293>)
>  *
>     |multi-line-mode()|: Added a new mutiline detection mode
>     |empty-line-separated| that, as its name suggests, reads and
>     treats all messages as one till it receives an empty line (which
>     contains only a |\r|, |\n| or |\r\n| sequence).
>     (#5259 <https://github.com/syslog-ng/syslog-ng/pull/5259>)
>  *
>     |google-pubsub-grpc()|: Added a new destination that sends logs to
>     Google Pub/Sub via the gRPC interface.
>     Example config:
>     |google-pubsub-grpc(  project("my_project")  topic($topic)
>      data($MESSAGE)  attributes(    timestamp => $S_ISODATE,    host
>     => $HOST,  )  workers(4)  batch-timeout(1000) # ms
>      batch-lines(1000) ); |
>     The |project()| and |topic()| options are templatable.
>     The default service endpoint can be changed with the
>     |service_endpoint()| option.
>     (#5266 <https://github.com/syslog-ng/syslog-ng/pull/5266>)
>  *
>     |ivykis|: We have switched to our own fork
>     <https://github.com/balabit/ivykis> of ivykis as the source for
>     builds when using syslog-ng’s internal ivykis option
>     (|--with-ivykis=internal| in autotools or
>     |-DIVYKIS_SOURCE=internal| in CMake).
>     We recommend switching to this internal version, as it includes
>     new features not available in the original version
>     <https://github.com/buytenh/ivykis> and likely never will be.
>     (#5307 <https://github.com/syslog-ng/syslog-ng/pull/5307>)
>  *
>     |ivykis|: Fixed and merged the in development phase
>     |io_uring| based polling method solution to our ivykis fork
>     <https://github.com/balabit/ivykis>.
>     This is am experimental integration and not selected by default,
>     you must activate it directly either using the
>     |IV_EXCLUDE_POLL_METHOD| or |IV_SELECT_POLL_METHOD| as described
>     here
>     <https://syslog-ng.github.io/admin-guide/060_Sources/020_File/001_File_following>.
>     (#5312 <https://github.com/syslog-ng/syslog-ng/pull/5312>)
>  *
>     |file()|, |wildcard-file()|: Added |follow-method()| option.
>     |Accepted values:| legacy | inotify | poll | system |
>     This option controls how syslog-ng will follow file changes.
>     The default |legacy| mode preserves the pre-4.9 version file
>     follow-mode behavior of syslog-ng, which is based on the value of
>     follow-freq().
>     The |poll| value forces syslog-ng to poll for file changes at the
>     interval specified by the monitor-freq() option, even if a more
>     efficient method (such as |inotify| or |kqueue|) is available.
>     If |inotify| is selected and supported by the platform, syslog-ng
>     uses it to detect changes in source files. This is the most
>     efficient and least resource-consuming option available on Linux
>     for regular files.
>     The |system| value will use system poll methods (via ivykis) like
>     |port-timer| |port| |dev_poll| |epoll-timerfd| |epoll| |kqueue|
>     |ppoll| |poll| and |uring|. For more information about how to
>     control the system polling methods used, see How content changes
>     are followed in file() and wildcard-file() sources
>     <https://syslog-ng.github.io/admin-guide/060_Sources/020_File/001_File_following>.
>     (#5338 <https://github.com/syslog-ng/syslog-ng/pull/5338>)
>  *
>     |opentelemetry()|, |loki()| destination: Add support for templated
>     |header()| values
>     (#5184 <https://github.com/syslog-ng/syslog-ng/pull/5184>)
>
> *Bugfixes*
>
>  *
>     |syslog-ng-otlp()| destination: Fixed a crash.
>     (#5267 <https://github.com/syslog-ng/syslog-ng/pull/5267>)
>  *
>     Fixed some time parsing and time formatting issues.
>     (#5386 <https://github.com/syslog-ng/syslog-ng/pull/5386>)
>  *
>     syslogformat: Fix integer overflow on set pri
>     (#5254 <https://github.com/syslog-ng/syslog-ng/pull/5254>)
>  *
>     |network(), syslog()|: Fixed a potential crash for TLS
>     destinations during reload
>     In case of a TLS connection, if the handshake didn't happen before
>     reloading syslog-ng,
>     it crashed on the first message sent to that destination.
>     (#5303 <https://github.com/syslog-ng/syslog-ng/pull/5303>)
>  *
>     |collectd()|: fix not reading server responses
>     (#5390 <https://github.com/syslog-ng/syslog-ng/pull/5390>)
>  *
>     metrics: |syslog-ng-ctl --reset| will no longer reset Prometheus
>     metrics
>     (#5261 <https://github.com/syslog-ng/syslog-ng/pull/5261>)
>  *
>     |rate-limit()|: fix precision issue that could occur at a very low
>     message rate
>     (#5346 <https://github.com/syslog-ng/syslog-ng/pull/5346>)
>  *
>     |network()|, |syslog()| sources and destinations: fix TCP/TLS shutdown
>     (#5271 <https://github.com/syslog-ng/syslog-ng/pull/5271>)
>  *
>     |http|: Fixed a batching related bug that happened with templated
>     URLs and a single worker.
>     (#5281 <https://github.com/syslog-ng/syslog-ng/pull/5281>)
>  *
>     |network()|, |syslog()| destinations: handle async TLS messages
>     (KeyUpdate, etc.)
>     (#5390 <https://github.com/syslog-ng/syslog-ng/pull/5390>)
>
> *Notes to developers*
>
>   * editorconfig: configure supported editors for the project's style
>     (#5331 <https://github.com/syslog-ng/syslog-ng/pull/5331>)
>
> *Other changes*
>
>  *
>     java-modules: Upgrade java |common| and |hdfs| dependencies.
>     (#5366 <https://github.com/syslog-ng/syslog-ng/pull/5366>)
>  *
>     java-modules: Remove depricated java destinations:
>     |elasticsearch2|, |kafka-java| and the |java-http|.
>     The following destinations can be used instead:
>       o |elasticsearch2| - Both elastic-datastream()
>         <https://syslog-ng.github.io/admin-guide/070_Destinations/035_elasticsearch-datastream/README> or
>         the elastic-http()
>         <https://syslog-ng.github.io/admin-guide/070_Destinations/030_Elasticsearch-http/README> can
>         be used.
>       o |kafka-java| - The C based kafka-c()
>         <https://syslog-ng.github.io/admin-guide/070_Destinations/100_Kafka-c/README> destination
>         can be used instead. To help with migration check out the
>         Shifting from Java implementation to C implementation
>         <https://syslog-ng.github.io/admin-guide/070_Destinations/100_Kafka-c/001_Shifting_from_Java_to_C> page.
>       o |java-http| - the C based http()
>         <https://syslog-ng.github.io/admin-guide/070_Destinations/081_http/README> destination
>         can be used.
>         (#5366 <https://github.com/syslog-ng/syslog-ng/pull/5366>)
>
> *Credits*
> syslog-ng is developed as a community project, and as such it relies
> on volunteers, to do the work necessarily to produce syslog-ng.
> Reporting bugs, testing changes, writing code or simply providing
> feedback are all important contributions, so please if you are a user
> of syslog-ng, contribute.
> We would like to thank the following people for their contribution:
> Alex Becker, Attila Szakacs, Balazs Scheidler, Bálint Horváth,
> David Mandelberg, Eli Schwartz, Hofi, Kovács Gergő Ferenc,
> László Várady, Peter Czanik (CzP), Petr Vaganov,
> Shiraz, Szilard Parrag, Tamas Pal, Tamás Kosztyu, shifter
>
>
> Peter Czanik (CzP) <[email protected]>
> Balabit (a OneIdentity company) / syslog-ng upstream
> https://syslog-ng.com/community/ <https://syslog-ng.com/community/>
> https://twitter.com/PCzanik
>
>
> ______________________________________________________________________________
> Member info:https://lists.balabit.hu/mailman/listinfo/syslog-ng
> Documentation:http://www.balabit.com/support/documentation/?product=syslog-ng
> FAQ:http://www.balabit.com/wiki/syslog-ng-faq
>
--------------Y5XuoHaePIZb40vvFyAdDt28
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>Hi,<br>
      <br>
      <br>
      I tried this stats exporter-dont-log() feature and it works well
      but it seems like it has a mem leak somewhere. I tried to switch
      off the prometheus data collection to one of the syslog-ng hosts
      and the mem consumption stayed fairly low. On the other hand all
      the others used 1-2 gigs of RSS mem. Is it a known issue?<br>
    </p>
    <p><br>
    </p>
    <p>Gyula</p>
    <p><br>
    </p>
    <div class="moz-cite-prefix">2025. 07. 17. 15:19 keltezéssel, Peter
      Czanik (pczanik) írta:<br>
    </div>
    <blockquote type="cite"
cite="mid:CO1PR19MB5126B78F242320C329054B7B8B51A@CO1PR19MB5126.namprd19.prod.outlook.com">
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <style type="text/css" style="display:none;">P {margin-top:0;margin-bottom:0;}</style>
      <div
style="font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
        class="elementToProof">
        Hi,</div>
      <div
style="font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
        class="elementToProof">
        <br>
      </div>
      <div
style="font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
        class="elementToProof">
        I am happy to announce that version 4.9.0 of syslog-ng is now
        available. Thanks everyone who contributed code, documentation,
        testing, or in any other way.</div>
      <div
style="font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
        class="elementToProof">
        <br>
      </div>
      <div
style="font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
        class="elementToProof">
        Peter</div>
      <div
style="font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
        class="elementToProof">
        <br>
      </div>
      <div
style="font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
        class="elementToProof">
        <b>4.9.0</b></div>
      <div
style="font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
        class="elementToProof">
        <b>Highlights</b></div>
      <ul>
        <li
style="font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
          <div role="presentation"
            style="margin-top: 1em; margin-bottom: 1em;"><code>stats-exporter</code>:
            Added two new sources,
            <code>stats-exporter()</code> and <code>stats-exporter-dont-log()</code>,
            which directly serve the output of
            <code>syslog-ng-ctl stats</code> and <code>syslog-ng-ctl
              query</code> to a http scraper. The only difference is
            that
            <code>stats-exporter-dont-log()</code> suppresses log
            messages from incoming scraper requests, ensuring no
            messages appear in the log path. Meanwhile,
            <code>stats-exporter()</code> logs unparsed messages,
            storing incoming scraper HTTP requests in the
            <code>MSG</code> field.</div>
          <div role="presentation"
            style="margin-top: 1em; margin-bottom: 1em;">Example usage
            for a Prometheus Scraper which logs the HTTP request of the
            scraper to /var/log/scraper.log:</div>
          <pre role="presentation"><div
style="font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif;"><code>@version: 4.9
@include "scl.conf"

source s_prometheus_stat {
    stats-exporter(
        ip("0.0.0.0")
        port(8080)
        stat-type("query")
        stat-query("*")
        scrape-freq-limit(30)
        single-instance(yes)
    );
};

log {
    source(s_prometheus_stat);
    destination { file(/var/log/scraper.log); };
};
</code></div></pre>
          <div role="presentation"
            style="margin-top: 1em; margin-bottom: 1em;">Example usage
            for a generic HTTP Scraper which sends e.g. the
            <code>GET /stats HTTP/1.1</code> HTTP request to get
            statistics of syslog-ng, do not want to log or further
            process the HTTP requests in the log pipe, and needs the
            response in CSV format:</div>
          <pre role="presentation"><div
style="font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif;"><code>@version: 4.9
@include "scl.conf"

source s_scraper_stat {
    stats-exporter-dont-log(
        ip("0.0.0.0")
        port(8080)
        stat-type("stats")
        stat-format("csv")
        scrape-pattern("GET /stats*")
        scrape-freq-limit(30)
        single-instance(yes)
    );
};

log {
    source(s_scraper_stat);
};
</code></div></pre>
          <div role="presentation"
            style="margin-top: 1em; margin-bottom: 1em;">Note: A
            destination is not required for this to work; the
            <code>stats-exporter()</code> source will respond to the
            scraper regardless of whether a destination is present in
            the log path.</div>
          <div role="presentation"
            style="margin-top: 1em; margin-bottom: 1em;">Available
            options:</div>
          <div role="presentation"
            style="margin-top: 1em; margin-bottom: 1em;"><code>stat-type(string)</code> -
            <code>query</code> or <code>stats</code>, just like for the
            <code>syslog-ng-ctl</code> command line tool, see there for
            the details<br>
            <code>stat-query(string)</code> - the query regex string
            that can be used to filter the output of a
            <code>query</code> type request<br>
            <code>stat-format(string)</code> - the output format of the
            given stats request, like the
            <code>-m</code> option of the <code>syslog-ng-ctl</code> command
            line tool<br>
            <code>scrape-pattern(string)</code> – the pattern used to
            match the HTTP header of incoming scraping requests. A stat
            response will be generated and sent only if the header
            matches the pattern string<br>
            <code>scrape-freq-limit(non-negative-int)</code> - limits
            the frequency of repeated scraper requests to the specified
            number of seconds. Any repeated request within this period
            will be ignored. A value of 0 means no limit<br>
            <code>single-instance(yes/no)</code> - if set to <code>yes</code> only
            one scraper connection and request will be allowed at once<br>
            (<a data-hovercard-type="pull_request"
data-hovercard-url="/syslog-ng/syslog-ng/pull/5259/hovercard"
              class="OWAAutoLink"
              id="OWA914d3223-3ae6-fcea-2932-f914391330d7"
              href="https://github.com/syslog-ng/syslog-ng/pull/5259"
              moz-do-not-send="true">#5259</a>)</div>
        </li>
        <li
style="font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
          <div role="presentation"
            style="margin-top: 1em; margin-bottom: 1em;"><code>syslog()</code> source
            driver: add support for RFC6587 style auto-detection of<br>
            octet-count based framing to avoid confusion that stems from
            the sender<br>
            using a different protocol to the server. This behaviour can
            be enabled<br>
            by using <code>transport(auto)</code> option for the <code>syslog()</code> source.<br>
            (<a data-hovercard-type="pull_request"
data-hovercard-url="/syslog-ng/syslog-ng/pull/5322/hovercard"
              class="OWAAutoLink"
              id="OWAea867262-821a-c94b-9a2a-db360bcd9f40"
              href="https://github.com/syslog-ng/syslog-ng/pull/5322"
              moz-do-not-send="true">#5322</a>)</div>
        </li>
        <li
style="font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
          <div role="presentation"
            style="margin-top: 1em; margin-bottom: 1em;"><code>wildcard-file</code>:
            Added inotify-based regular file change detection using the
            existing inotify-based directory monitor.</div>
          <div role="presentation"
            style="margin-top: 1em; margin-bottom: 1em;">This improves
            efficiency on OSes like Linux, where only polling was
            available before, significantly reducing CPU usage while
            enhancing change detection accuracy.</div>
          <div role="presentation"
            style="margin-top: 1em; margin-bottom: 1em;">To enable this
            feature, inotify kernel support is required, along with
            <code>monitor-method()</code> set to <code>inotify</code> or
            <code>auto</code>, and
            <code>follow-freq()</code> set to 0.<br>
            (<a data-hovercard-type="pull_request"
data-hovercard-url="/syslog-ng/syslog-ng/pull/5315/hovercard"
              class="OWAAutoLink"
              id="OWAf2e3137f-1c1d-b053-15c8-b08cece13990"
              href="https://github.com/syslog-ng/syslog-ng/pull/5315"
              moz-do-not-send="true">#5315</a>)</div>
        </li>
      </ul>
      <div
style="font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
        class="elementToProof">
        <b>Features</b></div>
      <ul>
        <li
style="font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
          <div role="presentation"
            style="margin-top: 1em; margin-bottom: 1em;"><code>cisco</code>:
            Added support for Cisco Nexus NXOS 9.3 syslog format.</div>
          <div role="presentation"
            style="margin-top: 1em; margin-bottom: 1em;">The parser now
            recognises NXOS 9.3 timestamps in
            <code>YYYY MMM DD HH:MM:SS</code> format and handles the
            different<br>
            sequence number prefix (<code>: </code>instead of <code>seqno:
            </code>) used by NXOS 9.3 compared to traditional IOS
            formats.</div>
          <div role="presentation"
            style="margin-top: 1em; margin-bottom: 1em;">Example Cisco
            configuration:</div>
          <div role="presentation"
            style="margin-top: 1em; margin-bottom: 1em;">Example
            syslog-ng configuration:</div>
          <pre role="presentation"><div
style="font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif;"><code>@include "scl.conf"

source s_cisco {
    network(ip(0.0.0.0) transport("udp") port(2000) flags(no-parse));
};

parser p_cisco {
    cisco-parser();
};

destination d_placeholder {
    # Define your destination here
};

log {
    source(s_cisco);
    parser(p_cisco);
    destination(d_placeholder);
};
</code></div></pre>
          <div role="presentation"
            style="margin-top: 1em; margin-bottom: 1em;">(<a
              data-hovercard-type="issue"
data-hovercard-url="/syslog-ng/syslog-ng/issues/5412/hovercard"
              class="OWAAutoLink"
              id="OWAce240cde-6385-28e9-3603-e247f105acfb"
              href="https://github.com/syslog-ng/syslog-ng/pull/5412"
              moz-do-not-send="true">#5412</a>)</div>
        </li>
        <ul>
          <li
style="font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
            NXOS: <code>(config)# logging server
              &lt;syslog-ng-server-ip&gt; port 2000</code></li>
          <li
style="font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
            IOS: <code>(config)# logging host
              &lt;syslog-ng-server-ip&gt; transport udp port 2000</code></li>
        </ul>
        <li
style="font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
          <div role="presentation"
            style="margin-top: 1em; margin-bottom: 1em;">bigquery(),
            google-pubsub-grpc(): Added service-account() authentication
            option.</div>
          <div role="presentation"
            style="margin-top: 1em; margin-bottom: 1em;">Example usage:</div>
          <pre role="presentation"><div
style="font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif;"><code>destination {
    google-pubsub-grpc(
        project("test")
        topic("test")
        auth(service-account(key ("path_to_service_account_key.json")))
    );
};
</code></div></pre>
          <div role="presentation"
            style="margin-top: 1em; margin-bottom: 1em;">Note: In
            contrary to the
            <code>http()</code> destination's similar option,<br>
            we do not need to manually set the audience here as it is<br>
            automatically recognized by the underlying gRPC API.<br>
            (<a data-hovercard-type="pull_request"
data-hovercard-url="/syslog-ng/syslog-ng/pull/5270/hovercard"
              class="OWAAutoLink"
              id="OWA9ecdd0ae-5380-241a-436a-d3608224e8bd"
              href="https://github.com/syslog-ng/syslog-ng/pull/5270"
              moz-do-not-send="true">#5270</a>)</div>
        </li>
        <li
style="font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
          <div role="presentation"
            style="margin-top: 1em; margin-bottom: 1em;">gRPC based
            destinations: Added
            <code>response-action()</code> option</div>
          <div role="presentation"
            style="margin-top: 1em; margin-bottom: 1em;">With this
            option, it is possible to fine tune how syslog-ng<br>
            behaves in case of different gRPC results.</div>
          <div role="presentation"
            style="margin-top: 1em; margin-bottom: 1em;">Supported by
            the following destination drivers:</div>
          <div role="presentation"
            style="margin-top: 1em; margin-bottom: 1em;">Supported gRPC
            results:</div>
          <div role="presentation"
            style="margin-top: 1em; margin-bottom: 1em;">Supported
            actions:</div>
          <div role="presentation"
            style="margin-top: 1em; margin-bottom: 1em;">Usage:</div>
          <pre role="presentation"><div
style="font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif;"><code>google-pubsub-grpc(
  project("my-project")
  topic("my-topic")
  response-action(
    not-found =&gt; disconnect
    unavailable =&gt; drop
  )
);
</code></div></pre>
          <div role="presentation"
            style="margin-top: 1em; margin-bottom: 1em;">(<a
              data-hovercard-type="pull_request"
data-hovercard-url="/syslog-ng/syslog-ng/pull/5332/hovercard"
              class="OWAAutoLink"
              id="OWAda4d7b0b-c979-f5bb-42fd-256728865238"
              href="https://github.com/syslog-ng/syslog-ng/pull/5332"
              moz-do-not-send="true">#5332</a>)</div>
        </li>
        <ul>
          <li
style="font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
            <code>opentelemetry()</code></li>
          <li
style="font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
            <code>loki()</code></li>
          <li
style="font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
            <code>bigquery()</code></li>
          <li
style="font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
            <code>clickhouse()</code></li>
          <li
style="font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
            <code>google-pubsub-grpc()</code></li>
          <li
style="font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
            ok</li>
          <li
style="font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
            unavailable</li>
          <li
style="font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
            cancelled</li>
          <li
style="font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
            deadline-exceeded</li>
          <li
style="font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
            aborted</li>
          <li
style="font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
            out-of-range</li>
          <li
style="font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
            data-loss</li>
          <li
style="font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
            unknown</li>
          <li
style="font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
            invalid-argument</li>
          <li
style="font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
            not-found</li>
          <li
style="font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
            already-exists</li>
          <li
style="font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
            permission-denied</li>
          <li
style="font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
            unauthenticated</li>
          <li
style="font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
            failed-precondition</li>
          <li
style="font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
            unimplemented</li>
          <li
style="font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
            internal</li>
          <li
style="font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
            resource-exhausted</li>
          <li
style="font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
            disconnect</li>
          <li
style="font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
            drop</li>
          <li
style="font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
            retry</li>
          <li
style="font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
            success</li>
        </ul>
        <li
style="font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
          <div role="presentation"
            style="margin-top: 1em; margin-bottom: 1em;"><code>s3</code>:
            Added two new options</div>
          <div role="presentation"
            style="margin-top: 1em; margin-bottom: 1em;">Example:</div>
          <pre role="presentation"><div
style="font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif;"><code>s3(
	url(<a class="moz-txt-link-rfc2396E" href="http://localhost:9000">"http://localhost:9000"</a>)
	bucket("testbucket")
	object_key("testobject")
	access_key("&lt;ACCESS_KEY_ID&gt;")
	secret_key("&lt;SECRET_ACCESS_KEY&gt;")
	content_type("text/plain")
	use_checksum("when_required")
);
</code></div></pre>
          <div role="presentation"
            style="margin-top: 1em; margin-bottom: 1em;">(<a
              data-hovercard-type="pull_request"
data-hovercard-url="/syslog-ng/syslog-ng/pull/5286/hovercard"
              class="OWAAutoLink"
              id="OWA36d4dc80-2ae4-5db6-0688-af2fba204ff7"
              href="https://github.com/syslog-ng/syslog-ng/pull/5286"
              moz-do-not-send="true">#5286</a>)</div>
        </li>
        <ul>
          <li
style="font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
            <code>content-type()</code>: users now can change the
            content type of the objects uploaded by syslog-ng.</li>
          <li
style="font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
            <code>use_checksum()</code>: This option allows the users to
            change the default checksum settings for<br>
            S3 compatible solutions that don't support checksums.
            Requires botocore 1.36 or above. Acceptable values are<br>
            <code>when_supported</code> (default) and <code>when_required</code>.</li>
        </ul>
        <li
style="font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
          <div role="presentation"
            style="margin-top: 1em; margin-bottom: 1em;"><code>loki()</code>:
            Added
            <code>batch-bytes()</code> and <code>compression()</code> options.<br>
            (<a data-hovercard-type="pull_request"
data-hovercard-url="/syslog-ng/syslog-ng/pull/5174/hovercard"
              class="OWAAutoLink"
              id="OWAc2aab7f1-dea2-9fea-a087-092c601ca57c"
              href="https://github.com/syslog-ng/syslog-ng/pull/5174"
              moz-do-not-send="true">#5174</a>)</div>
        </li>
        <li
style="font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
          <div role="presentation"
            style="margin-top: 1em; margin-bottom: 1em;"><code>syslog-ng-ctl</code>:
            Formatting the output of the
            <code>syslog-ng-ctl stats</code> and <code>syslog-ng-ctl
              query</code> commands is unified.</div>
          <div role="presentation"
            style="margin-top: 1em; margin-bottom: 1em;">Both commands
            got a new
            <code>--format</code> (<code>-m</code>) argument that can
            control the output format of the given stat or query. The
            following formats are supported:</div>
        </li>
        <ul>
          <li
style="font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
            <code>kv</code> - the legacy key-value-pairs e.g. <code>center.queued.processed=0</code> (only
            for the
            <code>query</code> command yet)</li>
          <li
style="font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
            <code>csv</code> - comma separated values e.g. <code>center;;queued;a;processed;0</code></li>
          <li
style="font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
            <code>prometheus</code> - the prometheus scraper ready
            format e.g. <code>syslogng_center_processed{stat_instance="queued"}
              0</code><br>
            (<a data-hovercard-type="pull_request"
data-hovercard-url="/syslog-ng/syslog-ng/pull/5248/hovercard"
              class="OWAAutoLink"
              id="OWA40f2909f-74ff-4255-2acd-5337a0d4fbcc"
              href="https://github.com/syslog-ng/syslog-ng/pull/5248"
              moz-do-not-send="true">#5248</a>)</li>
        </ul>
        <li
style="font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
          <div role="presentation"
            style="margin-top: 1em; margin-bottom: 1em;"><code>network()</code>,
            <code>syslog()</code> sources: add <code>$PEERIP</code> and
            <code>$PEERPORT</code> macros</div>
          <div role="presentation"
            style="margin-top: 1em; margin-bottom: 1em;">The <code>$PEERIP</code> and
            <code>$PEERPORT</code> macros always display the address and
            port of the direct sender.<br>
            In most cases, these values are identical to <code>$SOURCEIP</code> and
            <code>$SOURCEPORT</code>.<br>
            However, when dealing with proxied protocols, <code>$PEERIP</code> and
            <code>$PEERPORT</code> reflect the proxy's address and port,<br>
            while <code>$SOURCEIP</code> and <code>$SOURCEPORT</code> indicate
            the original source of the message.<br>
            (<a data-hovercard-type="pull_request"
data-hovercard-url="/syslog-ng/syslog-ng/pull/5291/hovercard"
              class="OWAAutoLink"
              id="OWAf289299f-d5ee-1a5d-5798-3ee6cb861747"
              href="https://github.com/syslog-ng/syslog-ng/pull/5291"
              moz-do-not-send="true">#5291</a>)</div>
        </li>
        <li
style="font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
          <div role="presentation"
            style="margin-top: 1em; margin-bottom: 1em;"><code>webhook()</code>,<code>opentelemetry()</code> sources:
            support
            <code>input_event_bytes</code> metrics<br>
            (<a data-hovercard-type="pull_request"
data-hovercard-url="/syslog-ng/syslog-ng/pull/5324/hovercard"
              class="OWAAutoLink"
              id="OWAc63b47c5-3ed2-0498-51ed-380492b9d534"
              href="https://github.com/syslog-ng/syslog-ng/pull/5324"
              moz-do-not-send="true">#5324</a>)</div>
        </li>
        <li
style="font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
          <div role="presentation"
            style="margin-top: 1em; margin-bottom: 1em;"><code>freebsd-audit()</code>:
            added a simple source SCL to collect FreeBSD audit logs
            using the built-in praudit program</div>
          <div role="presentation"
            style="margin-top: 1em; margin-bottom: 1em;"><a
              rel="nofollow" class="OWAAutoLink moz-txt-link-freetext"
              id="OWAdcb71d5a-e054-0dc7-effc-da62fe16a5fd"
href="https://www.syslog-ng.com/community/b/blog/posts/freebsd-audit-source-for-syslog-ng"
              moz-do-not-send="true">https://www.syslog-ng.com/community/b/blog/posts/freebsd-audit-source-for-syslog-ng</a><br>
            (<a data-hovercard-type="pull_request"
data-hovercard-url="/syslog-ng/syslog-ng/pull/5383/hovercard"
              class="OWAAutoLink"
              id="OWA08390551-c338-0ea4-30a8-f4e9607cd718"
              href="https://github.com/syslog-ng/syslog-ng/pull/5383"
              moz-do-not-send="true">#5383</a>)</div>
        </li>
        <li
style="font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
          <div role="presentation"
            style="margin-top: 1em; margin-bottom: 1em;"><code>webhook()</code>:
            headers support</div>
          <div role="presentation"
            style="margin-top: 1em; margin-bottom: 1em;"><code>include-request-headers(yes)</code> stores
            request headers under the
            <code>${webhook.headers}</code> key, allowing further
            processing</div>
          <div role="presentation"
            style="margin-top: 1em; margin-bottom: 1em;"><code>proxy-header("x-forwarded-for")</code> helps
            retain the sender's original IP and the proxy's IP address</div>
          <div role="presentation"
            style="margin-top: 1em; margin-bottom: 1em;">(<code>$SOURCEIP</code>,
            <code>$PEERIP</code>).<br>
            (<a data-hovercard-type="pull_request"
data-hovercard-url="/syslog-ng/syslog-ng/pull/5333/hovercard"
              class="OWAAutoLink"
              id="OWAab2a3357-e1e6-304c-1f2c-4d81e00b1bc8"
              href="https://github.com/syslog-ng/syslog-ng/pull/5333"
              moz-do-not-send="true">#5333</a>)</div>
        </li>
        <li
style="font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
          <div role="presentation"
            style="margin-top: 1em; margin-bottom: 1em;"><code>check-program</code>:
            Introduced as a flag for global or source options.</div>
          <div role="presentation"
            style="margin-top: 1em; margin-bottom: 1em;">By default,
            this flag is set to false. Enabling the check-program flag
            triggers
            <code>program</code> name validation for <code>RFC3164</code> messages.
            Valid <code>
              program</code> names must adhere to the following
            criteria:</div>
          <div role="presentation"
            style="margin-top: 1em; margin-bottom: 1em;">Contain only
            these characters:
            <code>[a-zA-Z0-9-_/().]</code><br>
            Include at least one alphabetical character.<br>
            If a <code>program</code> name fails validation, it will be
            considered part of the log message.</div>
          <div role="presentation"
            style="margin-top: 1em; margin-bottom: 1em;">Example:</div>
          <pre role="presentation"><div
style="font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif;"><code>source { network(flags(check-hostname, check-program)); };
</code></div></pre>
          <div role="presentation"
            style="margin-top: 1em; margin-bottom: 1em;">(<a
              data-hovercard-type="pull_request"
data-hovercard-url="/syslog-ng/syslog-ng/pull/5264/hovercard"
              class="OWAAutoLink"
              id="OWA91019089-851a-ccd3-756d-c50861e356a9"
              href="https://github.com/syslog-ng/syslog-ng/pull/5264"
              moz-do-not-send="true">#5264</a>)</div>
        </li>
        <li
style="font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
          <div role="presentation"
            style="margin-top: 1em; margin-bottom: 1em;"><code>syslog(transport(proxied-*))</code> and
            <code>network(transport(proxied-*))</code>: changed<br>
            where HAProxy transport saved the original source and
            destination addresses.<br>
            Instead of using dedicated <code>PROXIED_*</code> name-value
            pairs, use the usual<br>
            <code>$SOURCEIP</code>, <code>$SOURCEPORT</code>, <code>$DESTIP</code> and
            <code>
              $DESTPORT</code> macros, making haproxy<br>
            based connections just like native ones.</div>
          <div role="presentation"
            style="margin-top: 1em; margin-bottom: 1em;"><code>$SOURCEPORT</code>:
            added new macro which expands to the source port of the
            peer.<br>
            (<a data-hovercard-type="pull_request"
data-hovercard-url="/syslog-ng/syslog-ng/pull/5305/hovercard"
              class="OWAAutoLink"
              id="OWA62b757c9-75bc-823c-cc7c-c43c31a3023f"
              href="https://github.com/syslog-ng/syslog-ng/pull/5305"
              moz-do-not-send="true">#5305</a>)</div>
        </li>
        <li
style="font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
          <div role="presentation"
            style="margin-top: 1em; margin-bottom: 1em;"><code>opentelemetry()</code>,
            <code>syslog-ng-otlp()</code>: Added <code>keep-alive()</code> options.</div>
          <div role="presentation"
            style="margin-top: 1em; margin-bottom: 1em;">Keepalive can
            be configured with the
            <code>time()</code>, <code>timeout()</code><br>
            and <code>max-pings-without-data()</code> options of the <code>keep-alive()</code> block.</div>
          <pre role="presentation"><div
style="font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif;"><code>opentelemetry(
    ...
    keep-alive(time(20000) timeout(10000) max-pings-without-data(0))
);
</code></div></pre>
          <div role="presentation"
            style="margin-top: 1em; margin-bottom: 1em;">(<a
              data-hovercard-type="pull_request"
data-hovercard-url="/syslog-ng/syslog-ng/pull/5174/hovercard"
              class="OWAAutoLink"
              id="OWAba20a04c-8b7e-10aa-8396-01f29e028d65"
              href="https://github.com/syslog-ng/syslog-ng/pull/5174"
              moz-do-not-send="true">#5174</a>)</div>
        </li>
        <li
style="font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
          <div role="presentation"
            style="margin-top: 1em; margin-bottom: 1em;"><code>bigquery()</code>:
            Added
            <code>auth()</code> options.</div>
          <div role="presentation"
            style="margin-top: 1em; margin-bottom: 1em;">Similarly to
            other gRPC based destination drivers, the
            <code>bigquery()</code><br>
            destination now accepts different authentication methods,
            like<br>
            <code>adc()</code>, <code>alts()</code>, <code>insecure()</code> and
            <code>tls()</code>.</div>
          <pre role="presentation"><div
style="font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif;"><code>bigquery (
    ...
    auth(
        tls(
            ca-file("/path/to/ca.pem")
            key-file("/path/to/key.pem")
            cert-file("/path/to/cert.pem")
        )
    )
);
</code></div></pre>
          <div role="presentation"
            style="margin-top: 1em; margin-bottom: 1em;">(<a
              data-hovercard-type="pull_request"
data-hovercard-url="/syslog-ng/syslog-ng/pull/5174/hovercard"
              class="OWAAutoLink"
              id="OWA51685e85-9635-4b10-39be-4b84ce513943"
              href="https://github.com/syslog-ng/syslog-ng/pull/5174"
              moz-do-not-send="true">#5174</a>)</div>
        </li>
        <li
style="font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
          <div role="presentation"
            style="margin-top: 1em; margin-bottom: 1em;"><code>cloud-auth</code>:
            Added
            <code>azure-monitor()</code> destination</div>
          <div role="presentation"
            style="margin-top: 1em; margin-bottom: 1em;">Added oauth2
            authentication for azure monitor destinations.</div>
          <div role="presentation"
            style="margin-top: 1em; margin-bottom: 1em;">Example usage:</div>
          <pre role="presentation"><div
style="font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif;"><code>azure-monitor(
     dcr-id("dcr id")
     dce-uri("dce uri")
     stream_name("stream name")
     auth(
          tenant-id("tenant id")
          app-id("app id")
          app-secret("app secret")
     )
)
</code></div></pre>
          <div role="presentation"
            style="margin-top: 1em; margin-bottom: 1em;">(<a
              data-hovercard-type="pull_request"
data-hovercard-url="/syslog-ng/syslog-ng/pull/5293/hovercard"
              class="OWAAutoLink"
              id="OWAaf98083e-64ea-b5bc-6741-a82863e322f5"
              href="https://github.com/syslog-ng/syslog-ng/pull/5293"
              moz-do-not-send="true">#5293</a>)</div>
        </li>
        <li
style="font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
          <div role="presentation"
            style="margin-top: 1em; margin-bottom: 1em;"><code>multi-line-mode()</code>:
            Added a new mutiline detection mode
            <code>empty-line-separated</code> that, as its name
            suggests, reads and treats all messages as one till it
            receives an empty line (which contains only a
            <code>\r</code>, <code>\n</code> or <code>\r\n</code> sequence).<br>
            (<a data-hovercard-type="pull_request"
data-hovercard-url="/syslog-ng/syslog-ng/pull/5259/hovercard"
              class="OWAAutoLink"
              id="OWAcc3d18fa-68ec-49fa-b84d-3c2125b61b40"
              href="https://github.com/syslog-ng/syslog-ng/pull/5259"
              moz-do-not-send="true">#5259</a>)</div>
        </li>
        <li
style="font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
          <div role="presentation"
            style="margin-top: 1em; margin-bottom: 1em;"><code>google-pubsub-grpc()</code>:
            Added a new destination that sends logs to Google Pub/Sub
            via the gRPC interface.</div>
          <div role="presentation"
            style="margin-top: 1em; margin-bottom: 1em;">Example config:</div>
          <pre role="presentation"><div
style="font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif;"><code>google-pubsub-grpc(
  project("my_project")
  topic($topic)

  data($MESSAGE)
  attributes(
    timestamp =&gt; $S_ISODATE,
    host =&gt; $HOST,
  )

  workers(4)
  batch-timeout(1000) # ms
  batch-lines(1000)
);
</code></div></pre>
          <div role="presentation"
            style="margin-top: 1em; margin-bottom: 1em;">The <code>project()</code> and
            <code>topic()</code> options are templatable.<br>
            The default service endpoint can be changed with the <code>service_endpoint()</code> option.<br>
            (<a data-hovercard-type="pull_request"
data-hovercard-url="/syslog-ng/syslog-ng/pull/5266/hovercard"
              class="OWAAutoLink"
              id="OWAc2b4646d-b50b-023f-0f62-45485dcb937e"
              href="https://github.com/syslog-ng/syslog-ng/pull/5266"
              moz-do-not-send="true">#5266</a>)</div>
        </li>
        <li
style="font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
          <div role="presentation"
            style="margin-top: 1em; margin-bottom: 1em;"><code>ivykis</code>:
            We have switched to
            <a class="OWAAutoLink"
              id="OWA233cb61c-47ff-a10f-f428-ccc795575d7a"
              href="https://github.com/balabit/ivykis"
              moz-do-not-send="true">
              our own fork</a> of ivykis as the source for builds when
            using syslog-ng’s internal ivykis option (<code>--with-ivykis=internal</code> in
            autotools or
            <code>-DIVYKIS_SOURCE=internal</code> in CMake).</div>
          <div role="presentation"
            style="margin-top: 1em; margin-bottom: 1em;">We recommend
            switching to this internal version, as it includes new
            features not available in the
            <a class="OWAAutoLink"
              id="OWA264c2212-7150-53ca-3bd9-33fbb55fd0ce"
              href="https://github.com/buytenh/ivykis"
              moz-do-not-send="true">
              original version</a> and likely never will be.<br>
            (<a data-hovercard-type="pull_request"
data-hovercard-url="/syslog-ng/syslog-ng/pull/5307/hovercard"
              class="OWAAutoLink"
              id="OWAac3d0cb5-8439-1407-e710-2843e164ecdf"
              href="https://github.com/syslog-ng/syslog-ng/pull/5307"
              moz-do-not-send="true">#5307</a>)</div>
        </li>
        <li
style="font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
          <div role="presentation"
            style="margin-top: 1em; margin-bottom: 1em;"><code>ivykis</code>:
            Fixed and merged the in development phase
            <code>io_uring</code> based polling method solution to <a
              class="OWAAutoLink"
              id="OWA7755c6de-38f7-6bc3-ad4b-7727a086214b"
              href="https://github.com/balabit/ivykis"
              moz-do-not-send="true">
              our ivykis fork</a>.</div>
          <div role="presentation"
            style="margin-top: 1em; margin-bottom: 1em;">This is am
            experimental integration and not selected by default, you
            must activate it directly either using the
            <code>IV_EXCLUDE_POLL_METHOD</code> or <code>IV_SELECT_POLL_METHOD</code> as
            described
            <a rel="nofollow" class="OWAAutoLink"
              id="OWA46aeffe3-c0e8-fd6a-cbc5-e6fc561ecb15"
href="https://syslog-ng.github.io/admin-guide/060_Sources/020_File/001_File_following"
              moz-do-not-send="true">
              here</a>.<br>
            (<a data-hovercard-type="pull_request"
data-hovercard-url="/syslog-ng/syslog-ng/pull/5312/hovercard"
              class="OWAAutoLink"
              id="OWAb3c8fc2e-44d3-11ed-aa1e-4f07bb5a2c99"
              href="https://github.com/syslog-ng/syslog-ng/pull/5312"
              moz-do-not-send="true">#5312</a>)</div>
        </li>
        <li
style="font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
          <div role="presentation"
            style="margin-top: 1em; margin-bottom: 1em;"><code>file()</code>,
            <code>wildcard-file()</code>: Added <code>follow-method()</code> option.</div>
          <div role="presentation"
            style="margin-top: 1em; margin-bottom: 1em;">|Accepted
            values:| legacy | inotify | poll | system |</div>
          <div role="presentation"
            style="margin-top: 1em; margin-bottom: 1em;">This option
            controls how syslog-ng will follow file changes.<br>
            The default <code>legacy</code> mode preserves the pre-4.9
            version file follow-mode behavior of syslog-ng, which is
            based on the value of follow-freq().<br>
            The <code>poll</code> value forces syslog-ng to poll for
            file changes at the interval specified by the monitor-freq()
            option, even if a more efficient method (such as
            <code>inotify</code> or <code>kqueue</code>) is available.<br>
            If <code>inotify</code> is selected and supported by the
            platform, syslog-ng uses it to detect changes in source
            files. This is the most efficient and least
            resource-consuming option available on Linux for regular
            files.<br>
            The <code>system</code> value will use system poll methods
            (via ivykis) like <code>
              port-timer</code> <code>port</code> <code>dev_poll</code>
            <code>epoll-timerfd</code>
            <code>epoll</code> <code>kqueue</code> <code>ppoll</code>
            <code>poll</code> and <code>
              uring</code>. For more information about how to control
            the system polling methods used, see
            <a rel="nofollow" class="OWAAutoLink"
              id="OWA3c099903-1e7d-eb88-5e6f-91b6bed10048"
href="https://syslog-ng.github.io/admin-guide/060_Sources/020_File/001_File_following"
              moz-do-not-send="true">
              How content changes are followed in file() and
              wildcard-file() sources</a>.<br>
            (<a data-hovercard-type="pull_request"
data-hovercard-url="/syslog-ng/syslog-ng/pull/5338/hovercard"
              class="OWAAutoLink"
              id="OWA47219dcc-99bc-bb2d-cddd-0e4ca81eebb3"
              href="https://github.com/syslog-ng/syslog-ng/pull/5338"
              moz-do-not-send="true">#5338</a>)</div>
        </li>
        <li
style="font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
          <div role="presentation"
            style="margin-top: 1em; margin-bottom: 1em;"><code>opentelemetry()</code>,
            <code>loki()</code> destination: Add support for templated <code>header()</code> values<br>
            (<a data-hovercard-type="pull_request"
data-hovercard-url="/syslog-ng/syslog-ng/pull/5184/hovercard"
              class="OWAAutoLink"
              id="OWA4491306e-22c5-b29c-3b9f-61b6cfaf15e7"
              href="https://github.com/syslog-ng/syslog-ng/pull/5184"
              moz-do-not-send="true">#5184</a>)</div>
        </li>
      </ul>
      <div
style="font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
        class="elementToProof">
        <b>Bugfixes</b></div>
      <ul>
        <li
style="font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
          <div role="presentation"
            style="margin-top: 1em; margin-bottom: 1em;"><code>syslog-ng-otlp()</code> destination:
            Fixed a crash.<br>
            (<a data-hovercard-type="pull_request"
data-hovercard-url="/syslog-ng/syslog-ng/pull/5267/hovercard"
              class="OWAAutoLink"
              id="OWA8fefd32d-3eae-69f0-ffe2-8eba681d665c"
              href="https://github.com/syslog-ng/syslog-ng/pull/5267"
              moz-do-not-send="true">#5267</a>)</div>
        </li>
        <li
style="font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
          <div role="presentation"
            style="margin-top: 1em; margin-bottom: 1em;">Fixed some time
            parsing and time formatting issues.<br>
            (<a data-hovercard-type="pull_request"
data-hovercard-url="/syslog-ng/syslog-ng/pull/5386/hovercard"
              class="OWAAutoLink"
              id="OWA2af8b2bd-9899-0140-a563-435a9ba1c972"
              href="https://github.com/syslog-ng/syslog-ng/pull/5386"
              moz-do-not-send="true">#5386</a>)</div>
        </li>
        <li
style="font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
          <div role="presentation"
            style="margin-top: 1em; margin-bottom: 1em;">syslogformat:
            Fix integer overflow on set pri<br>
            (<a data-hovercard-type="pull_request"
data-hovercard-url="/syslog-ng/syslog-ng/pull/5254/hovercard"
              class="OWAAutoLink"
              id="OWA8d785fe1-4751-c148-a0c1-04d60dd359b9"
              href="https://github.com/syslog-ng/syslog-ng/pull/5254"
              moz-do-not-send="true">#5254</a>)</div>
        </li>
        <li
style="font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
          <div role="presentation"
            style="margin-top: 1em; margin-bottom: 1em;"><code>network(),
              syslog()</code>: Fixed a potential crash for TLS
            destinations during reload</div>
          <div role="presentation"
            style="margin-top: 1em; margin-bottom: 1em;">In case of a
            TLS connection, if the handshake didn't happen before
            reloading syslog-ng,<br>
            it crashed on the first message sent to that destination.<br>
            (<a data-hovercard-type="pull_request"
data-hovercard-url="/syslog-ng/syslog-ng/pull/5303/hovercard"
              class="OWAAutoLink"
              id="OWAe25c2ec5-6740-7a80-26c6-9454aaf6b84d"
              href="https://github.com/syslog-ng/syslog-ng/pull/5303"
              moz-do-not-send="true">#5303</a>)</div>
        </li>
        <li
style="font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
          <div role="presentation"
            style="margin-top: 1em; margin-bottom: 1em;"><code>collectd()</code>:
            fix not reading server responses<br>
            (<a data-hovercard-type="pull_request"
data-hovercard-url="/syslog-ng/syslog-ng/pull/5390/hovercard"
              class="OWAAutoLink"
              id="OWA1105d838-4c15-e46c-bdd0-77c7c7507b9b"
              href="https://github.com/syslog-ng/syslog-ng/pull/5390"
              moz-do-not-send="true">#5390</a>)</div>
        </li>
        <li
style="font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
          <div role="presentation"
            style="margin-top: 1em; margin-bottom: 1em;">metrics: <code>
              syslog-ng-ctl --reset</code> will no longer reset
            Prometheus metrics<br>
            (<a data-hovercard-type="pull_request"
data-hovercard-url="/syslog-ng/syslog-ng/pull/5261/hovercard"
              class="OWAAutoLink"
              id="OWA83cbd238-8262-04c6-7d39-5189ba255e56"
              href="https://github.com/syslog-ng/syslog-ng/pull/5261"
              moz-do-not-send="true">#5261</a>)</div>
        </li>
        <li
style="font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
          <div role="presentation"
            style="margin-top: 1em; margin-bottom: 1em;"><code>rate-limit()</code>:
            fix precision issue that could occur at a very low message
            rate<br>
            (<a data-hovercard-type="pull_request"
data-hovercard-url="/syslog-ng/syslog-ng/pull/5346/hovercard"
              class="OWAAutoLink"
              id="OWA92506a95-2e83-67e7-75f2-2e23c08bcb1b"
              href="https://github.com/syslog-ng/syslog-ng/pull/5346"
              moz-do-not-send="true">#5346</a>)</div>
        </li>
        <li
style="font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
          <div role="presentation"
            style="margin-top: 1em; margin-bottom: 1em;"><code>network()</code>,
            <code>syslog()</code> sources and destinations: fix TCP/TLS
            shutdown<br>
            (<a data-hovercard-type="pull_request"
data-hovercard-url="/syslog-ng/syslog-ng/pull/5271/hovercard"
              class="OWAAutoLink"
              id="OWA6ba6f48d-60af-16f9-ce38-2e53693822a9"
              href="https://github.com/syslog-ng/syslog-ng/pull/5271"
              moz-do-not-send="true">#5271</a>)</div>
        </li>
        <li
style="font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
          <div role="presentation"
            style="margin-top: 1em; margin-bottom: 1em;"><code>http</code>:
            Fixed a batching related bug that happened with templated
            URLs and a single worker.<br>
            (<a data-hovercard-type="pull_request"
data-hovercard-url="/syslog-ng/syslog-ng/pull/5281/hovercard"
              class="OWAAutoLink"
              id="OWAc0e8fefe-e27d-3da5-7dc2-51ad3a13e6dc"
              href="https://github.com/syslog-ng/syslog-ng/pull/5281"
              moz-do-not-send="true">#5281</a>)</div>
        </li>
        <li
style="font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
          <div role="presentation"
            style="margin-top: 1em; margin-bottom: 1em;"><code>network()</code>,
            <code>syslog()</code> destinations: handle async TLS
            messages (KeyUpdate, etc.)<br>
            (<a data-hovercard-type="pull_request"
data-hovercard-url="/syslog-ng/syslog-ng/pull/5390/hovercard"
              class="OWAAutoLink"
              id="OWAa3ac4307-be78-9f95-5a76-215786dceea8"
              href="https://github.com/syslog-ng/syslog-ng/pull/5390"
              moz-do-not-send="true">#5390</a>)</div>
        </li>
      </ul>
      <div
style="font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
        class="elementToProof">
        <b>Notes to developers</b></div>
      <ul>
        <li
style="font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
          editorconfig: configure supported editors for the project's
          style<br>
          (<a data-hovercard-type="pull_request"
data-hovercard-url="/syslog-ng/syslog-ng/pull/5331/hovercard"
            class="OWAAutoLink"
            id="OWA9f0200a4-f993-a914-a057-8613ce61c2f4"
            href="https://github.com/syslog-ng/syslog-ng/pull/5331"
            moz-do-not-send="true">#5331</a>)</li>
      </ul>
      <div
style="font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
        class="elementToProof">
        <b>Other changes</b></div>
      <ul>
        <li
style="font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
          <div role="presentation"
            style="margin-top: 1em; margin-bottom: 1em;">java-modules:
            Upgrade java
            <code>common</code> and <code>hdfs</code> dependencies.<br>
            (<a data-hovercard-type="pull_request"
data-hovercard-url="/syslog-ng/syslog-ng/pull/5366/hovercard"
              class="OWAAutoLink"
              id="OWAcd69fd17-3f48-b8ef-bc12-5778fecd3f06"
              href="https://github.com/syslog-ng/syslog-ng/pull/5366"
              moz-do-not-send="true">#5366</a>)</div>
        </li>
        <li
style="font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
          <div role="presentation"
            style="margin-top: 1em; margin-bottom: 1em;">java-modules:
            Remove depricated java destinations:
            <code>elasticsearch2</code>, <code>kafka-java</code> and
            the <code>java-http</code>.</div>
          <div role="presentation"
            style="margin-top: 1em; margin-bottom: 1em;">The following
            destinations can be used instead:</div>
        </li>
        <ul>
          <li
style="font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
            <code>elasticsearch2</code> - Both <a rel="nofollow"
              class="OWAAutoLink"
              id="OWA55162fde-0d2c-2281-4aea-59918504f674"
href="https://syslog-ng.github.io/admin-guide/070_Destinations/035_elasticsearch-datastream/README"
              moz-do-not-send="true">
              elastic-datastream()</a> or the <a rel="nofollow"
              class="OWAAutoLink"
              id="OWAc3d2fc4c-a269-a5c8-9f44-4f032b192f07"
href="https://syslog-ng.github.io/admin-guide/070_Destinations/030_Elasticsearch-http/README"
              moz-do-not-send="true">
              elastic-http()</a> can be used.</li>
          <li
style="font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
            <code>kafka-java</code> - The C based <a rel="nofollow"
              class="OWAAutoLink"
              id="OWAb563cc7a-8d37-8589-73e0-65ae2d9dec46"
href="https://syslog-ng.github.io/admin-guide/070_Destinations/100_Kafka-c/README"
              moz-do-not-send="true">
              kafka-c()</a> destination can be used instead. To help
            with migration check out the
            <a rel="nofollow" class="OWAAutoLink"
              id="OWA74dd0b3c-1e2e-922c-aa1a-487a8c7ef353"
href="https://syslog-ng.github.io/admin-guide/070_Destinations/100_Kafka-c/001_Shifting_from_Java_to_C"
              moz-do-not-send="true">
              Shifting from Java implementation to C implementation</a> page.</li>
          <li
style="font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
            <code>java-http</code> - the C based <a rel="nofollow"
              class="OWAAutoLink"
              id="OWAd8cafee0-14ab-303c-81f1-1d0b5a7c0128"
href="https://syslog-ng.github.io/admin-guide/070_Destinations/081_http/README"
              moz-do-not-send="true">
              http()</a> destination can be used.<br>
            (<a data-hovercard-type="pull_request"
data-hovercard-url="/syslog-ng/syslog-ng/pull/5366/hovercard"
              class="OWAAutoLink"
              id="OWAb261075a-781e-6fd0-9215-4e3a40933aba"
              href="https://github.com/syslog-ng/syslog-ng/pull/5366"
              moz-do-not-send="true">#5366</a>)</li>
        </ul>
      </ul>
      <div
style="font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
        class="elementToProof">
        <b>Credits</b></div>
      <div class="elementToProof"
style="margin-top: 1em; margin-bottom: 1em; font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
        syslog-ng is developed as a community project, and as such it
        relies<br>
        on volunteers, to do the work necessarily to produce syslog-ng.</div>
      <div class="elementToProof"
style="margin-top: 1em; margin-bottom: 1em; font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
        Reporting bugs, testing changes, writing code or simply
        providing<br>
        feedback are all important contributions, so please if you are a
        user<br>
        of syslog-ng, contribute.</div>
      <div class="elementToProof"
style="margin-top: 1em; margin-bottom: 1em; font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
        We would like to thank the following people for their
        contribution:</div>
      <div class="elementToProof"
style="margin-top: 1em; margin-bottom: 1em; font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
        Alex Becker, Attila Szakacs, Balazs Scheidler, Bálint Horváth,<br>
        David Mandelberg, Eli Schwartz, Hofi, Kovács Gergő Ferenc,<br>
        László Várady, Peter Czanik (CzP), Petr Vaganov,<br>
        Shiraz, Szilard Parrag, Tamas Pal, Tamás Kosztyu, shifter</div>
      <div
style="font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
        class="elementToProof">
        <br>
      </div>
      <div class="elementToProof" id="Signature">
        <div
style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
          class="elementToProof">
          <br>
        </div>
        <div class="elementToProof"
style="direction: ltr; font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
          Peter Czanik (CzP) <a class="moz-txt-link-rfc2396E" href="mailto:[email protected]">&lt;[email protected]&gt;</a><br>
          Balabit (a OneIdentity company) / syslog-ng upstream<br>
          <a target="_blank" href="https://syslog-ng.com/community/"
            moz-do-not-send="true">https://syslog-ng.com/<wbr>community/</a><br>
          <a target="_blank" href="https://twitter.com/PCzanik"
            moz-do-not-send="true" class="moz-txt-link-freetext">https://twitter.com/PCzanik</a></div>
        <div
style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
          class="elementToProof">
          <br>
        </div>
      </div>
      <br>
      <fieldset class="moz-mime-attachment-header"></fieldset>
      <pre wrap="" class="moz-quote-pre">______________________________________________________________________________
Member info: <a class="moz-txt-link-freetext" href="https://lists.balabit.hu/mailman/listinfo/syslog-ng">https://lists.balabit.hu/mailman/listinfo/syslog-ng</a>
Documentation: <a class="moz-txt-link-freetext" href="http://www.balabit.com/support/documentation/?product=syslog-ng">http://www.balabit.com/support/documentation/?product=syslog-ng</a>
FAQ: <a class="moz-txt-link-freetext" href="http://www.balabit.com/wiki/syslog-ng-faq">http://www.balabit.com/wiki/syslog-ng-faq</a>

</pre>
    </blockquote>
  </body>
</html>

--------------Y5XuoHaePIZb40vvFyAdDt28--

--===============0070327105166436691==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

______________________________________________________________________________
Member info: %(web_page_url)slistinfo/%(_internal_name)s
Documentation: http://www.balabit.com/support/documentation/?product=syslog-ng
FAQ: http://www.balabit.com/wiki/syslog-ng-faq


--===============0070327105166436691==--