Skip to content

Releases: denschub/nginx-syslog-postgres-bridge

v3.0.0

15 Dec 01:05
v3.0.0
073e10f

Choose a tag to compare

This version moves away from individual INSERT statements for each individual request. Instead, database insertions are batched via large INSERT INTO ... SELECT * FROM UNNEST queries. This significantly increases the throughput, while also reducing database server load. In a benchmark on a real-world small virtual server, the default settings were good for ~5000 requests per second, and with some tuning, this bridge could achieve ~40.000 requests per second on a single CPU core of that virtual server. If you're using this bridge and your production workload exceeds that.. uh.. please email me. :)

Changes

  • Potentially breaking: The short setting CLI flags, like -d for --database-url have been removed. If you used those, please migrate to the long form names or environment variables.
  • Potentially breaking: The default value for QUEUE_SIZE has been dropped to 50. Unless you handle hundreds of requests per second, this should not matter to you.
  • A new setting, --insert-batch-size/INSERT_BATCH_SIZE, is available to set the size of batch insertions. The default batch size is 10, which should be fine for small setups.
  • Another setting, --insert-timeout/INSERT_TIMEOUT, exists to throttle INSERT queries. If the buffer doesn't immediately reaches INSERT_BATCH_SIZE, the tool waits INSERT_TIMEOUT milliseconds before inserting the log entries into the database. Defaults to 1 second.
  • You can now set the log level and log output format. Run with --help to see the available flags and values.

v2.1.4

01 Nov 18:53
v2.1.4
abd55e7

Choose a tag to compare

This version does not contain any functional changes. It only updates third-party dependencies.

v2.1.3

08 Aug 02:44
v2.1.3
53c6b22

Choose a tag to compare

This version does not contain any functional changes. It only updates third-party dependencies. Users of the binary releases or the official container images should be aware that there was a switch from Debian to Alpine as the base system. libjemalloc is no longer available in the container.

v2.1.2

12 May 21:49
v2.1.2
ec333f4

Choose a tag to compare

This version does not contain any functional changes. It only updates third-party dependencies. Note: The release binaries attached on GitHub are now built with the Ubuntu 24.04 base image, which means they won't work on older systems. It's been long enough, though.

v2.1.1

28 Mar 21:51
v2.1.1
351d082

Choose a tag to compare

This version does not contain any functional changes. It only updates third-party dependencies.

2.1.0

05 Jan 07:53
v2.1.0
1909169

Choose a tag to compare

This version introduces a new setting, --threads/THREADS that allows limiting the number of worker threads and the size of the database connection pool. If this flag is not set, the number of available CPU cores will be used, which matches the current behavior.

2.0.3

30 Dec 22:47
v2.0.3
86b4172

Choose a tag to compare

This version does not contain any functional changes. It only updates third-party dependencies

2.0.2

29 Oct 01:15
v2.0.2
1a059c1

Choose a tag to compare

This version does not contain any functional changes. It only updates third-party dependencies.

2.0.1

26 Aug 18:32
v2.0.1
4880dc5

Choose a tag to compare

This version does not contain any functional changes. It only updates third-party dependencies.

2.0.0

14 Jun 01:41
v2.0.0
4633c80

Choose a tag to compare

The first public release. It's named 2.0.0, because I have been using this service for two years internally and made some breaking changes while I was preparing this project for the public.