All Versions
Latest Version
Avg Release Cycle
89 days
Latest Release

Changelog History
Page 1

  • v0.6.0 Changes

    Gollum 0.6.0 contains breaking changes over version 0.5.x. ๐Ÿš€ Please read the release notes carefully

    Gollum 0.6.0 dependency management switches from go-dep to go-modules. As of this is recommended to use go 1.11 or later for development. ๐Ÿ‘ Go 1.10 and 1.9 are still supported. Support for Go 1.8 or older has been dropped.

    ๐Ÿ†• New with 0.6.0

    • โž• Added a new flag "-mt" to choose the metrics provider (currently only prometheus).
    • ๐Ÿ‘ Consumer.File setting "Files" now supports glob patterns.
    • ๐Ÿ‘€ Consumer.Syslog now allows non-standard protocol types (see issue #234)
    • ๐Ÿ“‡ Message metadata can now store arbitrary data
    • When not setting the numbers of CPU, gollum will try to use cgroup limits
    • ๐Ÿ“‡ format.Cast for changing metadata field types
    • format.Override to set static field values

    ๐Ÿ’ฅ Breaking changes with 0.6.0

    • 0๏ธโƒฃ Format.SplitPick default delimiter is now ","
    • ๐Ÿ“‡ Multiple formatters have been renamed to support the new metadata model
    • 0๏ธโƒฃ Metrics are now collected using go-metrics. This allows e.g. prometheus output (default). Old-style metrics have been removed and many metrics names have changed.
    • Consumer.File setting "File" has been renamed to "Files"
    • ๐Ÿ‘ Consumer.File setting "OffsetFile" changed to "OffsetPath" to support multiple offset files per consumer.
    • Consumer.File setting "PollingDelay" has been renamed to "PollingDelayMs".
    • ๐Ÿ“‡ Metadata type has changed from map[string][]byte to tgo.MarshalMap.
    • ๐Ÿ“‡ Deserializing messages written by v0.5.x will lead to metadata of those message to be discarded.
    • โœ‚ Removed support for go 1.8 in order to allow sync.Map
    • ๐Ÿšš The functions Message.ResizePayload and .ExtendPayload have been removed in favor if go's slice internal functions.
  • v0.6.0-beta2

    July 30, 2019
  • v0.6.0-beta1

    July 19, 2019
  • v0.6.0-alpha1

    August 22, 2018
  • v0.5.4 Changes

    April 17, 2019

    ๐Ÿš‘ This is a critical patch release.

    ๐Ÿ›  It fixes various problems with producer.Spooling that prevented it from working at all.
    The issues were most likely introduced during the transition from 0.4.x to 0.5.x.

    This version has been built with go 1.12.3

    ๐Ÿ›  Fixed with 0.5.4

    • producer.spooling is now functional again as messages were not written correctly since 0.5.0 (#248).
    • producer.spooling now does not block upon shutdown (#248).
    • ๐Ÿ“‡ metadata is now handled correctly when messages are sent to fallback (#247).
    • producer.socket now sends messages directly to fallback if connect fails.
  • v0.5.3 Changes

    April 23, 2018

    ๐Ÿš‘ This is a critical patch release.

    ๐Ÿ›ฐ It fixes a GC crash caused by the message payload memory handler.
    ๐Ÿ”Œ If your plugins use core. MessageDataPool.get(size) please replace it with make([]byte, size).

    ๐Ÿ— The buffer causing this was introduced with 0.5.0 but the bug seems to occur only when building with go 1.10.
    ๐Ÿšš We decided to remove the buffer as it's allocation speed improvements showed to be only minor anyways.

  • v0.5.2 Changes

    April 16, 2018

    ๐Ÿš€ This is a patch / minor features release.

    All binaries have been compiled with go 1.10.1.

    ๐Ÿ†• New with 0.5.2

    • ๐Ÿš€ The version number is now generated via make and git. This will properly identify versions between releases.
    • ๐Ÿ†• New producer.AwsCloudwatchLogs. Thanks to @luqasz
    • ๐Ÿ‘• The makefile has been cleaned up and go meta-linter support has been added

    ๐Ÿ›  Fixed with 0.5.2

    • consumer.Kafka now properly commits the consumer offsets to kafka. Thanks to @crewton
    • producer.awsKinesis failed to produce records under certain conditions
    • The consumer.Kafka folderPermissions property is now correctly applied
    • formt.ExtractJSON trimValues property is now correctly applied
    • ๐Ÿš€ The gollum binary inside the Dockerfile is built on the same baseimage as deployed
    • Filter will now always filter out the MODIFIED message, not the original. This behavior is more "expected".
  • v0.5.1 Changes

    January 24, 2018

    ๐Ÿš€ This is a patch / minor features release.

    โšก๏ธ All vendor dependencies have been updated to the latest version and binaries have been compiled with go 1.9.3.

    ๐Ÿ†• New with 0.5.1

    • ๐Ÿ“‡ format.MetadataCopy has been updated to support free copying between metadata and payload
    • producer.ElasticSearch alles setting the format of timeBasedIndex
    • ๐Ÿšš format.GrokToJSON has new options: RemoveEmptyValues, NamedCapturesOnly and SkipDefaultPatterns
    • using dep for dependencies instead of glide

    ๐Ÿ›  Fixed with 0.5.1

    • ๐Ÿ›  fixed inversion of -lc always
    • ๐Ÿ›  fixed a nil pointer panic with producer.elasticsearch when receiving messages with unassigned streams
    • producer.ElasticSearch settings are now named according to config
    • producer.ElasticSearch dayBasedIndex renamed to timeBasedIndex and it's now working as expected
    • โšก๏ธ updated dependencies to latest version (brings support for kafka 1.0, fixes user agent parsing for format.processTSV)
  • v0.5.0 Changes

    December 21, 2017

    Gollum 0.5.0 contains major breaking changes in all areas. ๐Ÿ”ง Configuration files working with Gollum 0.4.x will not work with this verison unless changed. ๐Ÿš€ Please have a look at the transition guide for details.

    Important note: When switching a pipline from 0.4.x to 0.5.0, make sure all spooling data has been read. Messages serialized to disk with 0.4.x are not compatible with 0.5.0.

    ๐Ÿ†• New with 0.5.0

    • ๐Ÿ”€ Filters and Formatters have been merged into one list
    • ๐Ÿ”Œ You can now use a filter or formatter more than once in the same plugin
    • Consumers can now do filtering and formatting, too
    • ๐Ÿ“‡ Messages can now store metadata. Formatters can affect the payload or a metadata field
    • ๐Ÿ”Œ All plugins now have an automatic log scope
    • ๐Ÿ›ฐ Message payloads are now backed by a memory pool
    • ๐Ÿ›ฐ Messages now store the original message, i.e. a backup of the payload state after consumer processing
    • Gollum now provides per-stream metrics
    • ๐Ÿ”Œ Plugins are now able to implement health checks that can be queried via http
    • ๐Ÿ†• New base types for producers: Direct, Buffered, Batched
    • ๐Ÿ”Œ Plugin configurations now support nested structures
    • ๐Ÿ”ง The configuration process has been simplified a lot by adding automatic error handling and struct tags
    • ๐Ÿ”ง All plugin configuration keys are now case insensitive
    • โž• Added a new formatter format.GrokToJSON
    • โž• Added a new formatter format.JSONToInflux10
    • โž• Added a new formatter format.Double
    • โž• Added a new formatter format.MetadataCopy
    • โž• Added a new formatter format.Trim
    • ๐Ÿ‘ Consumer.File now supports filesystem events
    • Consumers can now define the number of go routines used for formatting/filtering
    • ๐Ÿ”Œ All AWS plugins now support role switching
    • ๐Ÿ”Œ All AWS plugins are now based on the same credentials code

    ๐Ÿ›  Fixed with 0.5.0

    • ๐Ÿ”Œ The plugin lifecycle has been reimplemented to avoid gollum being stuck waiting for plugins to change state
    • โœ… Integration test suite added
    • ๐Ÿ›  Producer.HTTPRequest port handling fixed
    • โœ… The test-config command will now produce more meaningful results
    • Duplicating messages now properly duplicates the whole message and not just the struct
    • ๐Ÿ›  Several race conditions have been fixed
    • Producer.ElasticSearch is now based on a more up-to-date library
    • Producer.AwsS3 is now behaving more like producer.File
    • Gollum metrics can now bind to a specific address instead of just a port

    ๐Ÿ’ฅ Breaking changes with 0.5.0

    • The config format has changed to improve automatic processing
    • ๐Ÿ”Œ A lot of plugins have been renamed to avoid confusion and to better reflect their behavior
    • ๐Ÿ”Œ A lot of plugins parameters have been renamed
    • ๐Ÿšš The instances plugin parameter has been removed
    • Most of gollum's metrics have been renamed
    • ๐Ÿ”Œ Plugin base types have been renamed
    • All message handling function signatures have changed to use pointers
    • All formatters don't daisy chain anymore as they can now be listed in proper order
    • ๐Ÿ”Œ Stream plugins have been renamed to Router plugins
    • Routers are not allowed to modify message content anymore
    • ๐Ÿšš filter.All and format.Forward have been removed as they are not required anymore
    • ๐Ÿšš Producer formatter listss dedicated to format a key or similar constructs have been removed
    • ๐ŸŒฒ Logging framework switched to logrus
    • ๐Ÿ“ฆ The package gollum.shared has been removed in favor of trivago.tgo
    • ๐Ÿšš Fuses have been removed from all plugins
    • ๐Ÿšš The general message sequence number has been removed
    • The term "drop" has been replaced by the term "fallback" to emphasise it's use
    • โฌ‡๏ธ The _DROPPED_ stream has been removed. Messages are discarded if no fallback is set
    • Formatters can still the stream of a message but cannot trigger routing by themselves
    • ๐Ÿ”Œ Compiling contrib plugins now requires a specific loader.go to be added
    • ๐Ÿณ The docker file on docker hub is now a lot smaller and only contains the gollum binary
    • The message serialization format has been changed
  • v0.5.0-rc3.1 Changes

    August 16, 2017

    ๐Ÿš€ This is a pre-release of v0.5.0

    โšก๏ธ All vendor dependencies have been updated to the latest version and binaries have been compiled with go 1.9-beta2.

    ๐Ÿš€ The current release notes can be found under

    ๐Ÿ”„ Changes since 0.5.0-rc3

    • ๐Ÿ›  fix format.MetadataCopy to actually copy the payload and not reference it