Skip to content

Releases: telenornms/skogul

v0.29.2

23 Oct 13:06
Compare
Choose a tag to compare

Adds the ability to ban fields based on regular expression. Also improves
the replace transformer that only supported metadata fields, now it also
supports the data field.

Adds new data type support to cast transformer. Now you will be able to
transform between byte-arrays (blobs) and strings.

v0.28.0

30 Sep 13:16
99623a3
Compare
Choose a tag to compare

Release date: 2024-09-27

Adds the ability to ban content with a regular expression. Also bumps some,
but not all modules.

Fixes an issue where transformers were not visible when running with -show.

PS: There were some github action issues that caused some minor history
issues which can be seen in the git log as we re-did the tags of v0.28.x

v0.27.2

18 Mar 10:51
66ea46a
Compare
Choose a tag to compare

Release date: 2024-03-18

Very minor release to improve debugging by adding timestamps to
metric-related messages. Also a few library bumps for security advisories.

v0.27.1

01 Dec 11:21
1478171
Compare
Choose a tag to compare

Release date: 2023-12-01

Minor, second attempt at fixing the ban transformer. Should no longer
cause out of bounds errors. Hopefully.

v0.27.0

22 Nov 10:01
28c2c2b
Compare
Choose a tag to compare

Release date: 2023-11-22

Two minor, but important bug fixes:

  • Fixes an issue with out-of-bounds checking on the ban transformer.
  • Make the SNMP trap sender iterate over all metrics in a container, not
    just the first.

Other than that, some more relevant documentaiton and examples.

v0.26.0

12 Oct 11:13
f46cc06
Compare
Choose a tag to compare

Release date: 2023-10-12

At a glance: Improvements to the SNMP sender and security fixes.

This addresses:

The SNMP trap sender fixes included make the sender more usable. It allows
manually configuring snmpTrapOID among other things, needed to make the
sender actually send valid snmpTraps.

v0.25.1

25 Sep 16:16
be0fd69
Compare
Choose a tag to compare

Release date: 2023-09-25

Allow Dictsplit to split on the top-object.

Previously Skogul could split::

{
	"metrics": [
		{
			"metadata": { },
			"timestamp": { ... },
			"data": {
				"foo": {
					"eth0": { "key": 123 },
					"eth1": { "key": 567 }
				}
			}
		}
	]
}

Into::

{
	"metrics": [
		{
			"timestamp": { ... },
			"metadata": { "name": "eth0" },
			"data": { "key": 123 }
		},
		{
			"timestamp": { ... },
			"metadata": { "name": "eth1" },
			"data": { "key": 567 }
		}
	]
}

but always needed a top key bellow "data" to refer to. Now you can also
split the following original::

{
	"metrics": [
		{
			"metadata": { },
			"timestamp": { ... },
			"data": {
				"eth0": { "key": 123 },
				"eth1": { "key": 567 }
			}
		}
	]
}

To do this, simply omit the Field option (or leave it as an empty array).

E.g.::

"transformers": {
	"type": "dictsplit",
	"metadataname": "name"
}

As before, "Metadataname" will be the metadata key where the dictionary
index is stored.

Also, some printf-debugging was accidentally included in v0.25.0, this is
removed.

v0.25.0

21 Aug 12:55
3520875
Compare
Choose a tag to compare

Release date: 2023-08-21

Skogul, now with more blobs.

The blob encoder and "parser" introduces a way of shuffeling arbitrary data
through Skogul without actually parsing it. By using the blob "parser",
Skogul will simply add the input data to a generic "data" key as a byte
array. This can then be forwarded and handled with any regular Skogul
mechanism. The regular JSON encoding will actually base64-encode byte
arrays, so you can forward it just fine like that.

To unpack the data, you can use the blob encoder, which should return the
data to the original unparsed state. Since you may have introduced a batch
sender and put multiple metrics into a container, the blob encoder has an
optional delimiter which will be injected in between metrics.

The TCP sender expands upon the net-sender. Technically, the net-sender can
do TCP just fine, but it is extremely inefficient at scale, because it will
open a new TCP connection for each container sent, instead of re-using it.
The TCP sender tries to address this and has been tested. It is still not
perfect in error-handling, so it should not be used if you need a guarantee
that messages are delivered, but it is actually reasonably performant.

Putting this together you can receive syslog messages on a UDP port and
forward it with the TCP sender without either side knowing there was
something like Skogul in between, and thus making sure rsyslogd doesn't get
backed up and blocks due to a slow receiving end and full buffers. NOT THAT
THAT EVER HAPPENS.

docs/examples/misc/tcp.json includes an example of two receivers using the
same handler, the blob encoder and tcp sender.

v0.24.0

08 Aug 13:16
c124124
Compare
Choose a tag to compare

Release date: 2023-08-08

Adds two new, somewhat experimental modules: an SNMP trap sender and
rabbitmq sender and receiver. Both are expected to get some changes after
we get them tested, but of course any feedback is welcome.

v0.23.0

06 Jul 10:51
68c6786
Compare
Choose a tag to compare

Release date: 2023-06-06

Bump Juniper telemetry protocolbuffers from Junos 21.3R1 to 23.2R1.

Adds a small fix to the influx sender, preventing it from sending
empty tag strings to Influx. Fixes #294.

Adds support for renaming metadata and data fields using the "rename"
key to the metadata/data transformer. Example::

"transformers": {
	"ok": {
		"type": "data",
		"rename": [
			{ "source": "old_key_name", "destination": "new_key_name" }
		]
}