Update module github.com/Jeffail/benthos/v3 to v4
This MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| github.com/Jeffail/benthos/v3 | require | major |
v3.65.0 -> v4.38.0
|
Release Notes
Jeffail/benthos (github.com/Jeffail/benthos/v3)
v4.38.0
For installation instructions check out the getting started guide.
Added
- Anonymous telemetry data is now sent by Connect instances after running for >5 mins. Details about which data is sent, when it is sent, and how to disable it can be found in the telemetry README. (@Jeffail)
- Field
checksum_algorithmadded to theaws_s3output. (@dom-lee-naimuri) - Field
nkeyadded tonats,nats_jetstream,nats_kvandnats_streamcomponents. (@ye11ow) - Field
private_keyadded to thesnowflake_putoutput. (@mihaitodor) - New
azure_data_lake_gen2output. (@ooesili) - New
timeplusoutput. (@ye11ow)
Fixed
- The
elasticsearchoutput now performs retries for HTTP status code429(Too Many Requests). (@kahoowkh) - The docs for the
collectionfield of themongodboutput now specify support for interpolation functions. (@mihaitodor)
Changed
- All components with a default
pathfield value (such as theaws_s3output) containing the deprecated functioncounthave now been changed to use the new functioncounter. This could potentially change behaviour in cases where multiple components are executing a mapping with acountfunction sharing the same of the old default count, and these counters need to cascade. This is an extremely unlikely scenario, but for all users of these components it is recommended that yourpathis defined explicitly, and in a future major version we will be removing the defaults.
The full change log can be found here.
v4.37.0
For installation instructions check out the getting started guide.
Added
- New experimental
gcp_vertex_ai_embeddingsprocessor. (@rockwotj) - New experimental
aws_bedrock_embeddingsprocessor. (@rockwotj) - New experimental
cohere_chatandcohere_embeddingsprocessors. (@rockwotj) - New experimental
questdboutput. (@sklarsa) - Field
metadata_max_ageadded to thekafka_franzinput. (@Scarjit) - Field
metadata_max_ageadded to thekafka_migratorinput. (@mihaitodor) - New experimental
cypheroutput. (@rockwotj) - New experimental
couchbaseoutput. (@rockwotj) - Field
fetch_in_orderadded to theschema_registryinput. (@mihaitodor)
Fixed
- Fixed a bug with the
input_resourcefield for thekafka_migratoroutput where new topics weren't created as expected. (@mihaitodor) - Fixed a bug in the
kafka_migratorinput which could lead to extra duplicate messages during a consumer group rebalance. (@mihaitodor) -
kafka_migrator,kafka_migrator_offsetsandkafka_migrator_bundlecomponents renamed toredpanda_migrator,redpanda_migrator_offsetsandredpanda_migrator_bundle(@mihaitodor)
Fixed
- Fixes a panic in the
parquet_encodeprocessor (@mihaitodor)
The full change log can be found here.
v4.36.0
For installation instructions check out the getting started guide.
Added
- Fields
replication_factorandreplication_factor_overrideadded to thekafka_migratorinput and output. (@mihaitodor)
Fixed
- The
schema_registry_encodeandschema_registry_decodeprocessors no longer unescape path separators in the schema name. (@Mizaro) - (Benthos) The
switchoutput metrics now emit the case id as part of their labels. This is a regression introduced in v4.25.0. (@mihaitodor) - (Benthos) Fixed a bug where certain logs used the
%wverb to print errors resulting in incorrect output. (@mihaitodor) - (Benthos) The logger no longer tries to replace Go fmt verbs in log messages. (@mihaitodor)
The full change log can be found here.
v4.35.3
For installation instructions check out the getting started guide.
Added
- Azure and GCP components added to cloud builds. (@Jeffail)
Fixed
- The
kafka_migrator_bundleinput and output no longer require schema registry to be configured. (@mihaitodor)
The full change log can be found here.
v4.35.2
For installation instructions check out the getting started guide.
Added
- Azure and GCP components added to cloud builds. (@Jeffail)
Fixed
- The
kafka_migrator_bundleinput and output no longer require schema registry to be configured. (@mihaitodor)
The full change log can be found here.
v4.35.1
For installation instructions check out the getting started guide.
Added
- Azure and GCP components added to cloud builds. (@Jeffail)
Fixed
- The
kafka_migrator_bundleinput and output no longer require schema registry to be configured. (@mihaitodor)
The full change log can be found here.
v4.35.0
For installation instructions check out the getting started guide.
Added
- Auth fields added to the
schema_registryinput and output. (@mihaitodor) - New experimental
kafka_migratorandkafka_migrator_bundleinputs and outputs. (@mihaitodor) - New experimental
kafka_migrator_offsetsoutput. (@mihaitodor) - Field
job_projectadded to thegcp_bigqueryoutput. (@Roviluca)
The full change log can be found here.
v4.34.0
For installation instructions check out the getting started guide.
Fixed
- The
schema_registryoutput now allows pushing schemas if the target Schema Registry instance is inIMPORTmode. (@mihaitodor) - Fixed an issue where the
azure_blob_storageinput would fail to delete blobs when usingtargets_inputwithdelete_objects: true. (@mihaitodor) - New experimental
gcp_vertex_ai_chatprocessor. (@rockwotj) - New experimental
aws_bedrock_chatprocessor. (@rockwotj)
The full change log can be found here.
v4.33.0
For installation instructions check out the getting started guide.
Added
- Field
content_md5added to theaws_s3output. (@dom-lee-naimuri) - Field
send_ackadded to thenatsinput. (@plejd-sebman) - New Bloblang method
vector. (@rockwotj) - New experimental
ockam_kafkainput and output. (@mrinalwadhwa, @davide-baldo) - Field
credentials_jsonadded to all GCP components. (@tomasz-sadura) - (Benthos) The
listsubcommand now supports the formatjsonschema. (@Jeffail) - New experimental
schema_registryinput and output. (@mihaitodor) - New experimental
qdrantoutput. (@Anush008) - (Benthos) The
--setrun flag now supports structured values, e.g.--set input={}. (@Jeffail)
The full change log can be found here.
v4.32.1
For installation instructions check out the getting started guide.
Added
- Field
app_nameadded to the MongoDB components. (@mihaitodor) - New
openai_chat_completionprocessor. (@rockwotj) - New
openai_embeddingsprocessor. (@rockwotj) - New
openai_image_generationprocessor. (@rockwotj) - New
openai_speechprocessor. (@rockwotj) - New
openai_transcriptionprocessor. (@rockwotj) - New
openai_translationprocessor. (@rockwotj) - New
ollama_chatprocessor. (@rockwotj) - New
ollama_embeddingsprocessor. (@rockwotj)
Changed
- The
gcp_pubsuboutput now rejects messages with metadata values which contain invalid UTF-8-encoded runes. (@AndreasBergmeier6176) - The
.goreleaser.ymlconfiguration has been set back to version 1. (@Jeffail) - The number of release build artifacts for the
communityandcloudflavours have been reduced due to Github Action Runner disk space limitations.
The full change log can be found here.
v4.32.0
v4.31.0
For installation instructions check out the getting started guide.
4.31.0 - 2024-07-19
Added
- The
splunkinput andsplunk_hecoutput now support customtlsconfiguration. (@mihaitodor) - Field
timestampadded to thekafkaandkafka_franzoutputs. (@mihaitodor) - (Benthos) Field
max_retriesadded to theretryprocessor. (@mihaitodor) - (Benthos) Metadata fields
retry_countandbackoff_durationadded to theretryprocessor. (@mihaitodor) - (Benthos) Parameter
escape_htmladded to theformat_json()Bloblang method. (@mihaitodor) - (Benthos) New
arraybloblang method. (@gramian) - (Benthos) Algorithm
fnv32added to thehashbloblang method. (@CallMeMhz) - New experimental
redpanda_data_transform. (@rockwotj) - New
-communitysuffixed build included in release artifacts, containing only FOSS functionality. (@Jeffail) - New
-cloudsuffixed build included in release artifacts, containing components enabled in Redpanda Cloud. (@Jeffail) - Field
status_topicadded to the globalredpandaconfig block. (@Jeffail) - New
pineconeoutput. (@rockwotj) - (Benthos) The
/readyendpoint in regular operation now provides a detailed summary of all inputs and outputs, including connection errors where applicable. (@Jeffail)
Changed
- (Benthos) All cli subcommands that previously relied on root-level flags (
streams,lint,test,echo) now explicitly define those flags such that they appear in help-text and can be specified after the subcommand itself. This means previous commands such asconnect -r ./foo.yaml streams ./bar.yamlcan now be more intuitively written asconnect streams -r ./foo.yaml ./bar.yamland so on. The old style will still work in order to preserve backwards compatibility, but the help-text for these root-level flags has been hidden. (@Jeffail)
v4.30.1
For installation instructions check out the getting started guide.
Added
- (Benthos) Field
omit_emptyadded to thelinesscanner. (@mihaitodor) - (Benthos) New scheme
gcmadded to theencrypt_aesanddecrypy_aesBloblang methods. (@abergmeier) - (Benthos) New Bloblang method
pow. (@mfamador) - (Benthos) New
sin,cos,tanandpibloblang methods. (@mfamador) - (Benthos) Field
proxy_urladded to thewebsocketinput and output. (@mihaitodor) - New experimental
splunkinput. (@mihaitodor)
Fixed
- The
sql_insertandsql_rawcomponents no longer fail when inserting large binary blobs into OracleBLOBcolumns. (@mihaitodor) - (Benthos) The
websocketinput and output now obey theHTTP_PROXY,HTTPS_PROXYandNO_PROXYenvironment variables. (@mihaitodor) - AWS Lambda serverless build artifacts have been added back to official releases.
Changed
- The
splunk_hecoutput is now implemented as a native Go component. (@mihaitodor)
The full change log can be found here.
v4.30.0
For installation instructions check out the getting started guide.
Added
- (Benthos) Field
omit_emptyadded to thelinesscanner. (@mihaitodor) - (Benthos) New scheme
gcmadded to theencrypt_aesanddecrypy_aesBloblang methods. (@abergmeier) - (Benthos) New Bloblang method
pow. (@mfamador) - (Benthos) New
sin,cos,tanandpibloblang methods. (@mfamador) - (Benthos) Field
proxy_urladded to thewebsocketinput and output. (@mihaitodor) - New experimental
splunkinput. (@mihaitodor)
Fixed
- The
sql_insertandsql_rawcomponents no longer fail when inserting large binary blobs into OracleBLOBcolumns. (@mihaitodor) - (Benthos) The
websocketinput and output now obey theHTTP_PROXY,HTTPS_PROXYandNO_PROXYenvironment variables. (@mihaitodor)
Changed
- The
splunk_hecoutput is now implemented as a native Go component. (@mihaitodor)
The full change log can be found here.
v4.29.0
For installation instructions check out the getting started guide.
Added
- Go API: New packages
public/bundle/freeandpublic/bundle/enterprisewith explicit licensing for bundles of component imports. - Field
auth.oauth2.scopeadded to thepulsarinput and output. (@srenatus) - Field
subscription_initial_positionadded to thepulsarinput. (@srenatus)
Fixed
- The
pulsarinput and output should no longer ignoreauth.oauth2fields. (@srenatus) - Creating builds using
makeno longer prints warnings when the repository does not contain a tag. (@mkysel) - Messages resulting from the
redisprocessor are no longer invalid when using hash commands. (@mkysel) - The
nats_jetstreaminput no longer fails to initialise when a stream is specified and a subject is not. (@maxarndt)
The full change log can be found here.
v4.28.0
For installation instructions check out the getting started guide.
Changed
- The repository has been moved to
redpanda-data/connectand no longer contains the core Benthos engine, which is now broken out intoredpanda-data/benthos.
The full change log can be found here.
v4.27.0
For installation instructions check out the getting started guide.
Added
- New
nats_kvcache type. - The
nats_jetstreaminput now supportslast_per_subjectandnewdeliver fallbacks. - Field
error_patternsadded to thedrop_onoutput. - New
redis_scaninput type. - Field
auto_replay_nacksadded to all inputs that traditionally automatically retry nacked messages as a toggle for this behaviour. - New
retryprocessor. - New
noopcache. - Field
targets_inputadded to theazure_blob_storageinput. - New
reject_erroredoutput. - New
nats_request_replyprocessor. - New
json_documentsscanner.
Fixed
- The
unarchiveprocessor no longer yields linting errors when the formatcsv:xis specified. This is a regression introduced in v4.25.0. - The
sftpinput will no longer consume files when the watcher cache returns an error. Instead, it will reattempt the file upon the next poll. - The
aws_sqsinput no longer logs error level logs for visibility timeout refreshing errors. - The
nats_kvprocessor now allows nats wildcards for thekeysoperation. - The
nats_kvprocessorkeysoperation now returns a single message with an array of found keys instead of a batch of messages. - The
nats_kvprocessorhistoryoperation now returns a single message with an array of objects containing the record fields instead of a batch of messages. - Field
timeoutadded to thenats_kvprocessor to specify the maximum period to wait on an operation before aborting and returning an error. - Bloblang comparison operators (
>,<,<=,>=) now match the precision of the compared integers when applicable. - The
parse_form_url_encodedBloblang method no longer produces results with an unknown data type for repeated query parameters. - The
echoCLI command no longer fails to sanitise configs when encountering an emptypasswordfield.
Changed
- The log events from all inputs and outputs when they first connect have been made more consistent and no longer contain any information regarding the nature of their connections.
- Splitting message batches with a
splitprocessor (or custom plugins) no longer results in downstream error handling loops around nacks. This was previously implemented as a feature to ensure unbounded expanded and split batches don't flood downstream services in the event of a minority of errors. However, introducing more clever origin tracking of errored messages has eliminated the need for this undocumented behaviour.
The full change log can be found here.
v4.26.0
For installation instructions check out the getting started guide.
Added
- Field
creditadded to theamqp_1input to specify the maximum number of unacknowledged messages the sender can transmit. - Bloblang now supports root-level
ifstatements. - New experimental
sqlcache. - Fields
batch_size,sortandlimitadded to themongodbinput. - Field
idemponent_writeadded to thekafkaoutput.
Changed
- The default value of the
amqp_1.creditinput has changed from1to64. - The
mongodbprocessor and output now support extended JSON in canonical form for document, filter and hint mappings. - The
open_telemetry_collectortracer has had theurlfield of gRPC and HTTP collectors deprecated in favour ofaddress, which more accurately describes the intended format of endpoints. The old style will continue to work, but eventually will have its default value removed and an explicit value will be required.
Fixed
- Resource config imports containing
%characters were being incorrectly parsed during unit test execution. This was a regression introduced in v4.25.0. - Dynamic input and output config updates containing
%characters were being incorrectly parsed. This was a regression introduced in v4.25.0.
The full change log can be found here.
v4.25.1
For installation instructions check out the getting started guide.
Fixed
- Fixed a regression in v4.25.0 where template based components were not parsing correctly from configs.
The full change log can be found here.
v4.25.0
For installation instructions check out the getting started guide.
Added
- Field
address_cacheadded to thesocket_serverinput. - Field
read_headeradded to theamqp_1input. - All inputs with a
codecfield now support a new fieldscannerto replace it. Scanners are more powerful as they are configured in a structured way similar to other component types rather than via a single string field, for more information check out the scanners page. - New
diffandpatchBloblang methods. - New
processorsprocessor. - Field
read_headeradded to theamqp_1input. - A debug endpoint
/debug/pprof/allocshas been added for profiling allocations. - New
cockroachdb_changefeedinput. - The
open_telemetry_collectortracer now supports sampling. - The
aws_kinesisinput and output now support specifying ARNs as the stream target. - New
azure_cosmosdbinput, processor and output. - All
sql_*components now support thegocosmosdriver. - New
opensearchoutput.
Fixed
- The
javascriptprocessor now handles module imports correctly. - Bloblang
ifstatements now provide explicit errors when query expressions resolve to non-boolean values. - Some metadata fields from the
amqp_1input were always empty due to type mismatch, this should no longer be the case. - The
zipBloblang method no longer fails when executed without arguments. - The
amqp_0_9output no longer prints bogus exchange name when connecting to the server. - The
generateinput no longer adds an extra second tointerval: '@​every x'syntax. - The
nats_jetstreaminput no longer fails to locate mirrored streams. - Fixed a rare panic in batching mechanisms with a specified
period, where data arrives in low volumes and is sporadic. - Executing config unit tests should no longer fail due to output resources failing to connect.
Changed
- The
parse_parquetBloblang function,parquet_decode,parquet_encodeprocessors and theparquetinput have all been upgraded to the latest version of the underlying Parquet library. Since this underlying library is experimental it is likely that behaviour changes will result. One significant change is that encoding numerical values that are larger than the column type (float64intoFLOAT,int64intoINT32, etc) will no longer be automatically converted. - The
parse_logprocessor fieldcodecis now deprecated. - WARNING: Many components have had their underlying implementations moved onto newer internal APIs for defining and extracting their configuration fields. It's recommended that upgrades to this version are performed cautiously.
- WARNING: All AWS components have been upgraded to the latest client libraries. Although lots of testing has been done, these libraries have the potential to differ in discrete ways in terms of how credentials are evaluated, cross-account connections are performed, and so on. It's recommended that upgrades to this version are performed cautiously.
The full change log can be found here.
v4.24.0
For installation instructions check out the getting started guide.
Added
- Field
idempotent_writeadded to thekafka_franzoutput. - Field
idle_timeoutadded to theread_untilinput. - Field
delay_secondsadded to theaws_sqsoutput. - Fields
discard_unknownanduse_proto_namesadded to theprotobufprocessors.
Fixed
- Bloblang error messages for bad function/method names or parameters should now be improved in mappings that use shorthand for
root = .... - All redis components now support usernames within the configured URL for authentication.
- The
protobufprocessor now supports targetting nested types from proto files. - The
schema_registry_encodeandschema_registry_decodeprocessors should no longer double escape URL unsafe characters within subjects when querying their latest versions.
The full change log can be found here.
v4.23.0
For installation instructions check out the getting started guide.
Added
- The
amqp_0_9output now supports dynamic interpolation functions within theexchangefield. - Field
custom_topic_creationadded to thekafkaoutput. - New Bloblang method
ts_sub. - The Bloblang method
absnow supports integers in and integers out. - Experimental
extract_tracing_mapfield added to thenats,nats_jetstreamandnats_streaminputs. - Experimental
inject_tracing_mapfield added to thenats,nats_jetstreamandnats_streamoutputs. - New
_fail_fastvariants for thebrokeroutputfan_outandfan_out_sequentialpatterns. - Field
summary_quantiles_objectivesadded to theprometheusmetrics exporter. - The
metricprocessor now supports floating point values forcounter_byandgaugetypes.
Fixed
- Allow labels on caches and rate limit resources when writing configs in CUE.
- Go API:
log/slogloggers injected into a stream builder viaStreamBuilder.SetLoggershould now respect formatting strings. - All Azure components now support container SAS tokens for authentication.
- The
kafka_franzinput now provides properly typed metadata values. - The
trinodriver for the varioussql_*components no longer panics when trying to insert nulls. - The
http_clientinput no longer sends a phantom request body on subsequent requests when an emptypayloadis specified. - The
schema_registry_encodeandschema_registry_decodeprocessors should no longer fail to obtain schemas containing slashes (or other URL path unfriendly characters). - The
parse_logprocessor no longer extracts structured fields that are incompatible with Bloblang mappings. - Fixed occurrences where Bloblang would fail to recognise
float32values.
The full change log can be found here.
v4.22.0
For installation instructions check out the getting started guide.
Added
- The
-e/--env-filecli flag for importing environment variable files now supports glob patterns. - Environment variables imported via
-e/--env-filecli flags now support triple quoted strings. - New experimental
counterfunction added to Bloblang. It is recommended that this function, although experimental, should be used instead of the now deprecatedcountfunction. - The
schema_registry_encodeandschema_registry_decodeprocessors now support JSONSchema. - Field
metadataadded to thenatsandnats_jetstreamoutputs. - The
cachedprocessor fieldttlnow supports interpolation functions. - Many new properties fields have been added to the
amqp_0_9output. - Field
commandadded to theredis_listinput and output.
Fixed
- Corrected a scheduling error where the
generateinput with a descriptor interval (@hourly, etc) had a chance of firing twice. - Fixed an issue where a
redis_streamsinput that is rejected from read attempts enters a reconnect loop without backoff. - The
sqsinput now periodically refreshes the visibility timeout of messages that take a significant amount of time to process. - The
ts_add_iso8601andts_sub_iso8601bloblang methods now return the correct error for certain invalid durations. - The
discordoutput no longer ignores structured message fields containing underscores. - Fixed an issue where the
kafka_franzinput was ignoring batching periods and stalling.
Changed
- The
random_intBloblang function now prevents instantiations where either themaxorminarguments are dynamic. This is in order to avoid situations where the random number generator is re-initialised across subsequent mappings in a way that surprises map authors.
The full change log can be found here.
v4.21.0
For installation instructions check out the getting started guide.
Added
- Fields
client_idandrack_idadded to thekafka_franzinput and output. - New experimental
commandprocessor. - Parameter
no_cacheadded to thefileandenvBloblang functions. - New
file_relfunction added to Bloblang. - Field
endpoint_paramsadded to theoauth2section of HTTP client components.
Fixed
- Allow comments in single root and directly imported bloblang mappings.
- The
azure_blob_storageinput no longer addsblob_storage_content_typeandblob_storage_content_encodingmetadata values as string pointer types, and instead adds these values as string types only when they are present. - The
http_serverinput now returns a more appropriate 503 service unavailable status code during shutdown instead of the previous 404 status. - Fixed a potential panic when closing a
pusheroutput that was never initialised. - The
sftpoutput now reconnects upon being disconnected by the Azure idle timeout. - The
switchoutput now produces error logs when messages do not pass at least one case withstrict_modeenabled, previously these rejected messages were potentially re-processed in a loop without any logs depending on the config. An inaccuracy to the documentation has also been fixed in order to clarify behaviour when strict mode is not enabled. - The
logprocessorfields_mappingfield should no longer reject metadata queries using@syntax. - Fixed an issue where heavily utilised streams with nested resource based outputs could lock-up when performing heavy resource mutating traffic on the streams mode REST API.
- The Bloblang
zipmethod no longer produces values that yield an "Unknown data type".
The full change log can be found here.
v4.20.0
For installation instructions check out the getting started guide.
Added
- The
amqp1input now supportsanonymousSASL authentication. - New JWT Bloblang methods
parse_jwt_es256,parse_jwt_es384,parse_jwt_es512,parse_jwt_rs256,parse_jwt_rs384,parse_jwt_rs512,sign_jwt_es256,sign_jwt_es384andsign_jwt_es512added. - The
csv-safeinput codec now supports custom delimiters with the syntaxcsv-safe:x. - The
open_telemetry_collectortracer now supports secure connections, enabled via thesecurefield. - Function
v0_msg_exists_metaadded to thejavascriptprocessor.
Fixed
- Fixed an issue where saturated output resources could panic under intense CRUD activity.
- The config linter no longer raises issues with codec fields containing colons within their arguments.
- The
elasticsearchoutput should no longer fail to send basic authentication passwords, this fixes a regression introduced in v4.19.0.
The full change log can be found here.
v4.19.0
For installation instructions check out the getting started guide.
Added
- Field
topics_patternadded to thepulsarinput. - Both the
schema_registry_encodeandschema_registry_decodeprocessors now support protobuf schemas. - Both the
schema_registry_encodeandschema_registry_decodeprocessors now support references for AVRO and PROTOBUF schemas. - New Bloblang method
zip. - New Bloblang
int8,int16,uint8,uint16,float32andfloat64methods.
Fixed
- Errors encountered by the
gcp_pubsuboutput should now present more specific logs. - Upgraded
kafkainput and output underlying sarama client library to v1.40.0 at new module path github.com/IBM/sarama - The CUE schema for
switchprocessor now correctly reflects that it takes a list of clauses. - Fixed the CUE schema for fields that take a 2d-array such as
workflow.order. - The
snowflake_putoutput has been added back to 32-bit ARM builds since the build incompatibilities have been resolved. - The
snowflake_putoutput and thesql_*components no longer trigger a panic when running on a readonly file system with thesnowflakedriver. This driver still requires access to write temporary files somewhere, which can be configured via the GoTMPDIRenvironment variable. Details here. - The
http_serverinput and output now follow the same multiplexer rules regardless of whether the generalhttpserver block is used or a custom endpoint. - Config linting should now respect fields sourced via a merge key (
<<). - The
lintsubcommand should now lint config files pointed to via-r/--resourcesflags.
Changed
- The
snowflake_putoutput is now beta. - Endpoints specified by
http_servercomponents using both the generalhttpserver block or their own custom server addresses should no longer be treated as path prefixes unless the path ends with a slash (/), in which case all extensions of the path will match. This corrects a behavioural change introduced in v4.14.0.
The full change log can be found here.
v4.18.0
For installation instructions check out the getting started guide.
Added
- Field
logger.level_nameadded for customising the name of log levels in the JSON format. - Methods
sign_jwt_rs256,sign_jwt_rs384andsign_jwt_rs512added to Bloblang.
Fixed
- HTTP components no longer ignore
proxy_urlsettings when OAuth2 is set. - The
PATCHverb for the streams mode REST API no longer fails to patch over newer components implemented with the latest plugin APIs. - The
nats_jetstreaminput no longer fails for configs that setbindtotrueand do not specify both astreamanddurabletogether. - The
mongodbprocessor and output no longer ignores theupsertfield.
Changed
- The old
parquetprocessor (now superseded byparquet_encodeandparquet_decode) has been removed from 32-bit ARM builds due to build incompatibilities. - The
snowflake_putoutput has been removed from 32-bit ARM builds due to build incompatibilities. - Plugin API: The
(*BatchError).WalkMessagesmethod has been deprecated in favour ofWalkMessagesIndexedBy.
The full change log can be found here.
v4.17.0
For installation instructions check out the getting started guide.
Added
- The
dynamicinput and output have a new endpoint/input/{id}/uptimeand/output/{id}/uptimerespectively for obtaining the uptime of a given input/output. - Field
wait_time_secondsadded to theaws_sqsinput. - Field
timeoutadded to thegcp_cloud_storageoutput. - All NATS components now set the name of each connection to the component label when specified.
Fixed
- Restore message ordering support to
gcp_pubsuboutput. This issue was introduced in 4.16.0 as a result of #1836. - Specifying structured metadata values (non-strings) in unit test definitions should no longer cause linting errors.
Changed
- The
natsinput default value ofprefetch_counthas been increased from32to a more appropriate524288.
The full change log can be found here.
v4.16.0
For installation instructions check out the getting started guide.
Added
- Fields
auth.user_jwtandauth.user_nkey_seedadded to all NATS components. - bloblang: added
ulid(encoding, random_source)function to generate Universally Unique Lexicographically Sortable Identifiers (ULIDs). - Field
skip_onadded to thecachedprocessor. - Field
nak_delayadded to thenatsinput. - New
splunk_hecoutput. - Plugin API: New
NewMetadataExcludeFilterFieldfunction and accompanyingFieldMetadataExcludeFiltermethod added. - The
pulsarinput and output are now included in the main distribution of Benthos again. - The
gcp_pubsubinput now adds the metadata fieldgcp_pubsub_delivery_attemptto messages when dead lettering is enabled. - The
aws_s3input now addss3_version_idmetadata to versioned messages. - All compress/decompress components (codecs, bloblang methods, processors) now support
pgzip. - Field
connection.max_retriesadded to thewebsocketinput. - New
sentry_captureprocessor.
Fixed
- The
open_telemetry_collectortracer option no longer blocks service start up when the endpoints cannot be reached, and instead manages connections in the background. - The
gcp_pubsuboutput should see significant performance improvements due to a client library upgrade. - The stream builder APIs should now follow
logger.fileconfig fields. - The experimental
cueformat in the clilistsubcommand no longer introduces infinite recursion for#Processors. - Config unit tests no longer execute linting rules for missing env var interpolations.
The full change log can be found here.
v4.15.0
For installation instructions check out the getting started guide.
Added
- Flag
--skip-env-var-checkadded to thelintsubcommand, this disables the new linting behaviour where environment variable interpolations without defaults throw linting errors when the variable is not defined. - The
kafka_franzinput now supports explicit partitions in the fieldtopics. - The
kafka_franzinput now supports batching. - New
metadataBloblang function for batch-aware structured metadata queries. - Go API: Running the Benthos CLI with a context set with a deadline now triggers graceful termination before the deadline is reached.
- Go API: New
public/service/servicetestpackage added for functions useful for testing custom Benthos builds. - New
lruandttlruin-memory caches.
Fixed
- Provide msgpack plugins through
public/components/msgpack. - The
kafka_franzinput should no longer commit offsets one behind the next during partition yielding. - The streams mode HTTP API should no longer route requests to
/streams/<stream-ID>to the/streamshandler. This issue was introduced in v4.14.0.
The full change log can be found here.
v4.14.0
For installation instructions check out the getting started guide.
Added
- The
-e/--env-filecli flag can now be specified multiple times. - New
studio pullcli subcommand for running Benthos Studio session deployments. - Metadata field
kafka_tombstone_messageadded to thekafkaandkafka_franzinputs. - Method
SetEnvVarLookupFuncadded to the stream builder API. - The
discordinput and output now use the official chat client API and no longer rely on poll-based HTTP requests, this should result in more efficient and less erroneous behaviour. - New bloblang timestamp methods
ts_add_iso8601andts_sub_iso8601. - All SQL components now support the
trinodriver. - New input codec
csv-safe. - Added
base64rawurlscheme to both theencodeanddecodeBloblang methods. - New
find_byandfind_all_byBloblang methods. - New
skipbominput codec. - New
javascriptprocessor.
Fixed
- The
find_allbloblang method no longer produces results that are of anunknowntype. - The
find_allandfindBloblang methods no longer fail when the value argument is a field reference. - Endpoints specified by HTTP server components using both the general
httpserver block or their own custom server addresses should now be treated as path prefixes. This corrects a behavioural change that was introduced when both respective server options were updated to support path parameters. - Prevented a panic caused when using the
encrypt_aesanddecrypt_aesBloblang methods with a mismatched key/iv lengths. - The
snowpipefield of thesnowflake_putoutput can now be omitted from the config without raising an error. - Batch-aware processors such as
mappingandmutationshould now report correct error metrics. - Running
benthos blobl servershould no longer panic when a mapping with variable read/writes is executed in parallel. - Speculative fix for the
cloudwatchmetrics exporter rejecting metrics due tominimum field size of 1, PutMetricDataInput.MetricData[0].Dimensions[0].Value. - The
snowflake_putoutput now prevents silent failures under certain conditions. Details here. - Reduced the amount of pre-compilation of Bloblang based linting rules for documentation fields, this should dramatically improve the start up time of Benthos (~1s down to ~200ms).
- Environment variable interpolations with an empty fallback (
${FOO:}) are now valid. - Fixed an issue where the
mongodboutput wasn't using bulk send requests according to batching policies. - The
amqp_1input now falls back to accessingMessage.Valuewhen the data is empty.
Changed
- When a config contains environment variable interpolations without a default value (i.e.
${FOO}), if that environment variable is not defined a linting error will be emitted. Shutting down due to linting errors can be disabled with the--chilledcli flag, and variables can be specified with an empty default value (${FOO:}) in order to make the previous behaviour explicit and prevent the new linting error. - The
findandfind_allBloblang methods no longer support query arguments as they were incompatible with supporting value arguments. For query based arguments use the newfind_byandfind_all_bymethods.
The full change log can be found here.
v4.13.0
For installation instructions check out the getting started guide.
Added
- New
nats_kvprocessor, input and output. - Field
partitionadded to thekafka_franzoutput, allowing for manual partitioning.
Fixed
- The
brokeroutput with the patternfan_out_sequentialwill no longer abandon in-flight requests that are error blocked until the full shutdown timeout has occurred. - The
brokerinput no longer reports itself as unavailable when a child input has intentionally closed. - Config unit tests that check for structured data should no longer fail in all cases.
- The
http_serverinput with a custom address now supports path variables.
The full change log can be found here.
v4.12.1
For installation instructions check out the getting started guide.
Fixed
- Fixed a regression bug in the
natscomponents where panics occur during a flood of messages. This issue was introduced in v4.12.0 (45f785a).
The full change log can be found here.
v4.12.0
For installation instructions check out the getting started guide.
Added
- Format
csv:xadded to theunarchiveprocessor. - Field
max_bufferadded to theaws_s3input. - Field
open_message_typeadded to thewebsocketinput. - The experimental
--watchercli flag now takes into account file deletions and new files that match wildcard patterns. - Field
dump_request_log_leveladded to HTTP components. - New
couchbasecache implementation. - New
compressanddecompressBloblang methods. - Field
endpointadded to thegcp_pubsubinput and output. - Fields
file_name,file_extensionandrequest_idadded to thesnowflake_putoutput. - Add interpolation support to the
pathfield of thesnowflake_putoutput. - Add ZSTD compression support to the
compressionfield of thesnowflake_putoutput. - New Bloblang method
concat. - New
redisratelimit. - The
socket_serverinput now supportstlsas a network type. - New bloblang function
timestamp_unix_milli. - New bloblang method
ts_unix_milli. - JWT based HTTP authentication now supports
EdDSA. - New
flow_controlfields added to thegcp_pubsuboutput. - Added bloblang methods
sign_jwt_hs256,sign_jwt_hs384andsign_jwt_hs512 - New bloblang methods
parse_jwt_hs256,parse_jwt_hs384,parse_jwt_hs512. - The
open_telemetry_collectortracer now automatically sets theservice.nameandservice.versiontags if they are not configured by the user. - New bloblang string methods
trim_prefixandtrim_suffix.
Fixed
- Fixed an issue where messages caught in a retry loop from inputs that do not support nacks (
generate,kafka,file, etc) could be retried in their post-mutation form from theswitchoutput rather than the original copy of the message. - The
sqlitebuffer should no longer printFailed to ack buffer messagelogs during graceful termination. - The default value of the
conn_max_idlefield has been changed from 0 to 2 for allsql_*components in accordance to thedatabase/sqldocs. - The
parse_csvbloblang method withparse_header_rowset tofalseno longer produces rows that are of anunknowntype. - Fixed a bug where the
oracledriver for thesql_*components was returning timestamps which were getting marshalled into an empty JSON object instead of a string. - The
aws_sqsinput no longer backs off on subsequent empty requests when long polling is enabled. - It's now possible to mock resources within the main test target file in config unit tests.
- Unit test linting no longer incorrectly expects the
json_containspredicate to contain a string value only. - Config component initialisation errors should no longer show nested path annotations.
- Prevented panics from the
jqprocessor when querying invalid types. - The
jaegertracer no longer emits theservice.versiontag automatically if the user sets theservice.nametag explicitly. - The
int64(),int32(),uint64()anduint32()bloblang methods can now infer the number base as documented here. - The
mappingandmutationprocessors should provide metrics and tracing events again. - Fixed a data race in the
redis_streamsinput. - Upgraded the Redis components to
github.com/redis/go-redis/v9.
The full change log can be found here.
v4.11.0
For installation instructions check out the getting started guide.
Added
- Field
default_encodingadded to theparquet_encodeprocessor. - Field
client_session_keep_aliveadded to thesnowflake_putoutput. - Bloblang now supports metadata access via
@foosyntax, which also supports arbitrary values. - TLS client certs now support both PKCS#1 and PKCS#8 encrypted keys.
- New
redis_scriptprocessor. - New
wasmprocessor. - Fields marked as secrets will no longer be printed with
benthos echoor debug HTTP endpoints. - Add
no_indentparameter to theformat_jsonbloblang method. - New
format_xmlbloblang method. - New
batchedhigher level input type. - The
gcp_pubsubinput now supports optionally creating subscriptions. - New
sqlitebuffer. - Bloblang now has
int64,int32,uint64anduint32methods for casting explicit integer types. - Field
application_properties_mapadded to theamqp1output. - Param
parse_header_row,delimiterandlazy_quotesadded to theparse_csvbloblang method. - Field
delete_on_finishadded to thecsvinput. - Metadata fields
header,path,mod_time_unixandmod_timeadded to thecsvinput. - New
couchbaseprocessor. - Field
max_attemptsadded to thensqinput. - Messages consumed by the
nsqinput are now enriched with metadata. - New Bloblang method
parse_url.
Fixed
- Fixed a regression bug in the
mongodbprocessor where message errors were not set any more. This issue was introduced in v4.7.0 (64eb72). - The
avro-ocf:marshaler=jsoninput codec now omits unexpected logical type fields. - Fixed a bug in the
sql_insertoutput (see commitc6a71e9) where transaction-based drivers (clickhouseandoracle) would fail to roll back an in-progress transaction if any of the messages caused an error. - The
resourceinput should no longer block the first layer of graceful termination.
Changed
- The
catchmethod now defines the context of argument mappings to be the string of the caught error. In previous cases the context was undocumented, vague and would often bind to the outer context. It's still possible to reference this outer context by capturing the error (e.g..catch(_ -> this)). - Field interpolations that fail due to mapping errors will no longer produce placeholder values and will instead provide proper errors that result in nacks or retries similar to other issues.
The full change log can be found here.
v4.10.0
For installation instructions check out the getting started guide.
Added
- The
nats_jetstreaminput now adds a range of useful metadata information to messages. - Field
transaction_typeadded to theazure_table_storageoutput, which deprecates the previousinsert_typefield and supports interpolation functions. - Field
logged_batchadded to thecassandraoutput. - All
sqlcomponents now support Snowflake. - New
azure_table_storageinput. - New
sql_rawinput. - New
tracing_idbloblang function. - New
withbloblang method. - Field
multi_headeradded to thekafkaandkafka_franzinputs. - New
cassandrainput. - New
base64_encodeandbase64_decodefunctions for the awk processor. - Param
use_numberadded to theparse_jsonbloblang method. - Fields
init_statementandinit_filesadded to all sql components. - New
findandfind_allbloblang array methods.
Fixed
- The
gcp_cloud_storageoutput no longer ignores errors when closing a written file, this was masking issues when the target bucket was invalid. - Upgraded the
kafka_franzinput and output to use github.com/twmb/franz-go@v1.9.0 since some bug fixes were made recently. - Fixed an issue where a
read_untilchild input with processors affiliated would block graceful termination. - The
--labelslinting option no longer flags resource components.
The full change log can be found here.
v4.9.1
For installation instructions check out the getting started guide.
Added
- Go API: A new
BatchErrortype added for distinguishing errors of a given batch.
Fixed
- Rolled back
kafkainput and output underlying sarama client library to fix a regression introduced in 4.9.0😅 whereinvalid configuration (Consumer.Group.Rebalance.GroupStrategies and Consumer.Group.Rebalance.Strategy cannot be set at the same time)errors would prevent consumption under certain configurations. We've decided to roll back rather than upgrade as a breaking API change was introduced that could cause issues for Go API importers (more info here: https://github.com/Shopify/sarama/issues/2358).
The full change log can be found here.
v4.9.0
For installation instructions check out the getting started guide.
Added
- New
parquetinput for reading a batch of Parquet files from disk. - Field
max_in_flightadded to theredis_listinput.
Fixed
- Upgraded
kafkainput and output underlying sarama client library to fix a regression introduced in 4.7.0 whereThe requested offset is outside the range of offsets maintained by the server for the given topic/partitionerrors would prevent consumption of partitions. - The
cassandraoutput now inserts logged batches of data rather than the less efficient (and unnecessary) unlogged form.
The full change log can be found here.
v4.8.0
For installation instructions check out the getting started guide.
Added
- All
sqlcomponents now support Oracle DB.
Fixed
- All SQL components now accept an empty or unspecified
args_mappingas an alias for no arguments. - Field
unsafe_dynamic_queryadded to thesql_rawoutput. - Fixed a regression in 4.7.0 where HTTP client components were sending duplicate request headers.
The full change log can be found here.
v4.7.0
For installation instructions check out the getting started guide.
Added
- Field
avro_raw_jsonadded to theschema_registry_decodeprocessor. - Field
priorityadded to thegcp_bigquery_selectinput. - The
hashbloblang method now supportscrc32. - New
tracing_spanbloblang function. - All
sqlcomponents now support SQLite. - New
beanstalkdinput and output. - Field
json_marshal_modeadded to themongodbinput. - The
schema_registry_encodeandschema_registry_decodeprocessors now support Basic, OAuth and JWT authentication.
Fixed
- The streams mode
/readyendpoint no longer returns status503for streams that gracefully finished. - The performance of the bloblang
.explodemethod now scales linearly with the target size. - The
influxdbandloggermetrics outputs should no longer mix up tag names. - Fix a potential race condition in the
read_untilconnect check on terminated input. - The
parse_parquetbloblang method andparquet_decodeprocessor now automatically parseBYTE_ARRAYvalues as strings when the logical type is UTF8. - The
gcp_cloud_storageoutput now correctly cleans up temporary files on error conditions when the collision mode is set to append.
The full change log can be found here.
v4.6.0
For installation instructions check out the getting started guide.
Added
- New
squashbloblang method. - New top-level config field
shutdown_delayfor delaying graceful termination. - New
snowflake_idbloblang function. - Field
wait_time_secondsadded to theaws_sqsinput. - New
json_pathbloblang method. - New
file_json_containspredicate for unit tests. - The
parquet_encodeprocessor now supports theUTF8logical type for columns.
Fixed
- The
schema_registry_encodeprocessor now correctly assumes Avro JSON encoded documents by default. - The
redisprocessorretry_periodno longer shows linting errors for duration strings. - The
/inputsand/outputsendpoints for dynamic inputs and outputs now correctly render configs, both structured within the JSON response and the raw config string. - Go API: The stream builder no longer ignores
httpconfiguration. Instead, the value ofhttp.enabledis set tofalseby default.
The full change log can be found here.
v4.5.1
For installation instructions check out the getting started guide.
Fixed
- Reverted
kafka_franzdependency back to1.3.1due to a regression in TLS/SASL commit retention. - Fixed an unintentional linting error when using interpolation functions in the
elasticsearchoutputsactionfield.
The full change log can be found here.
v4.5.0
For installation instructions check out the getting started guide.
Added
- Field
batch_sizeadded to thegenerateinput. - The
amqp_0_9output now supports setting thetimeoutof publish. - New experimental input codec
avro-ocf:marshaler=x. - New
mappingandmutationprocessors. - New
parse_form_url_encodedbloblang method. - The
amqp_0_9input now supports setting theauto-deletebit during queue declaration. - New
open_telemetry_collectortracer. - The
kafka_franzinput and output now supports no-op SASL options with the mechanismnone. - Field
content_typeadded to thegcp_cloud_storagecache.
Fixed
- The
mongodbprocessor and output defaultwrite_concern.w_timeoutempty value no longer causes configuration issues. - Field
message_nameadded to the logger config. - The
amqp_1input and output should no longer spam logs with timeout errors during graceful termination. - Fixed a potential crash when the
containsbloblang method was used to compare complex types. - Fixed an issue where the
kafka_franzinput or output wouldn't use TLS connections without custom certificate configuration. - Fixed structural cycle in the CUE representation of the
retryoutput. - Tracing headers from HTTP requests to the
http_serverinput are now correctly extracted.
Changed
- The
brokerinput no longer applies processors before batching as this was unintentional behaviour and counter to documentation. Users that rely on this behaviour are advised to place their pre-batching processors at the level of the child inputs of the broker. - The
brokeroutput no longer applies processors after batching as this was unintentional behaviour and counter to documentation. Users that rely on this behaviour are advised to place their post-batching processors at the level of the child outputs of the broker.
The full change log can be found here.
v4.4.1
For installation instructions check out the getting started guide.
Fixed
- Fixed an issue where an
http_serverinput or output would fail to register prometheus metrics when combined with other inputs/outputs. - Fixed an issue where the
jaegertracer was incapable of sending traces to agents outside of the default port.
The full change log can be found here.
v4.4.0
For installation instructions check out the getting started guide.
Added
- The service-wide
httpconfig now supports basic authentication. - The
elasticsearchoutput now supports upsert operations. - New
fakebloblang function. - New
parquet_encodeandparquet_decodeprocessors. - New
parse_parquetbloblang method. - CLI flag
--prefix-stream-endpointsadded for disabling streams mode API prefixing. - Field
timestamp_nameadded to the logger config.
The full change log can be found here.
v4.3.0
For installation instructions check out the getting started guide.
Added
- Timestamp Bloblang methods are now able to emit and process
time.Timevalues. - New
ts_tzmethod for switching the timezone of timestamp values. - The
elasticsearchoutput fieldtypenow supports interpolation functions. - The
redisprocessor has been reworked to be more generally useful, the oldoperatorandkeyfields are now deprecated in favour of newcommandandargs_mappingfields. - Go API: Added component bundle
./public/components/awsfor all AWS components, including aRunLambdafunction. - New
cachedprocessor. - Go API: New APIs for registering both metrics exporters and open telemetry tracer plugins.
- Go API: The stream builder API now supports configuring a tracer, and tracer configuration is now isolated to the stream being executed.
- Go API: Plugin components can now access input and output resources.
- The
redis_streamsoutput fieldstreamfield now supports interpolation functions. - The
kafka_franzinput and outputs now supportAWS_MSK_IAMas a SASL mechanism. - New
pusheroutput. - Field
input_batchesadded to config unit tests for injecting a series of message batches.
Fixed
- Corrected an issue where Prometheus metrics from batching at the buffer level would be skipped when combined with input/output level batching.
- Go API: Fixed an issue where running the CLI API without importing a component package would result in template init crashing.
- The
httpprocessor andhttp_clientinput and output no longer have default headers as part of their configuration. AContent-Typeheader will be added to requests with a default value ofapplication/octet-streamwhen a message body is being sent and the configuration has not added one explicitly. - Logging in
logfmtmode withadd_timestampenabled now works.
The full change log can be found here.
v4.2.0
For installation instructions check out the getting started guide.
Added
- Field
credentials.from_ec2_roleadded to all AWS based components. - The
mongodbinput now supports aggregation filters by setting the newoperationfield. - New
gcp_cloudtracetracer. - New
slugbloblang string method. - The
elasticsearchoutput now supports thecreateaction. - Field
tls.root_cas_fileadded to thepulsarinput and output. - The
fallbackoutput now adds a metadata fieldfallback_errorto messages when shifted. - New bloblang methods
ts_round,ts_parse,ts_format,ts_strptime,ts_strftime,ts_unixandts_unix_nano. Most are aliases of (now deprecated) time methods withtimestamp_prefixes. - Ability to write logs to a file (with optional rotation) instead of stdout.
Fixed
- The default docker image no longer throws configuration errors when running streams mode without an explicit general config.
- The field
metrics.mappingnow allows environment functions such ashostnameandenv. - Fixed a lock-up in the
amqp_0_9output caused when messages sent with theimmediateormandatoryflags were rejected. - Fixed a race condition upon creating dynamic streams that self-terminate, this was causing panics in cases where the stream finishes immediately.
The full change log can be found here.
v4.1.0
For installation instructions check out the getting started guide.
Added
- The
nats_jetstreaminput now adds headers to messages as metadata. - Field
headersadded to thenats_jetstreamoutput. - Field
lazy_quotesadded to the CSV input.
Fixed
- Fixed an issue where resource and stream configs imported via wildcard pattern could not be live-reloaded with the watcher (
-w) flag. - Bloblang comparisons between numerical values (including
matchexpression patterns) no longer require coercion into explicit types. - Reintroduced basic metrics from the
twitteranddiscordtemplate based inputs. - Prevented a metrics label mismatch when running in streams mode with resources and
prometheusmetrics. - Label mismatches with the
prometheusmetric type now log errors and skip the metric without stopping the service. - Fixed a case where empty files consumed by the
aws_s3input would trigger early graceful termination.
The full change log can be found here.
v4.0.0
For installation instructions check out the getting started guide.
This is a major version release, for more information and guidance on how to migrate please refer to https://benthos.dev/docs/guides/migration/v4.
Added
- In Bloblang it is now possible to reference the
rootof the document being created within a mapping query. - The
nats_jetstreaminput now supports pull consumers. - Field
max_number_of_messagesadded to theaws_sqsinput. - Field
file_output_pathadded to theprometheusmetrics type. - Unit test definitions can now specify a
labelas atarget_processorsvalue. - New connection settings for all sql components.
- New experimental
snowflake_putoutput. - New experimental
gcp_cloud_storagecache. - Field
regexp_topicsadded to thekafka_franzinput. - The
hdfsoutputdirectoryfield now supports interpolation functions. - The cli
listsubcommand now supports acueformat. - Field
jwt.headersadded to all HTTP client components. - Output condition
file_json_equalsadded to config unit test definitions.
Fixed
- The
sftpoutput no longer opens files in both read and write mode. - The
aws_sqsinput withreset_visibilityset tofalsewill no longer reset timeouts on pending messages during gracefully shutdown. - The
schema_registry_decodeprocessor now handles AVRO logical types correctly. Details in #1198 and #1161 and also in https://github.com/linkedin/goavro/issues/242.
Changed
- All components, features and configuration fields that were marked as deprecated have been removed.
- The
pulsarinput and output are no longer included in the default Benthos builds. - The field
pipeline.threadsfield now defaults to-1, which automatically matches the host machine CPU count. - Old style interpolation functions (
${!json:foo,1}) are removed in favour of the newer Bloblang syntax (${! json("foo") }). - The Bloblang functions
meta,root_meta,errorandenvnow returnnullwhen the target value does not exist. - The
clickhouseSQL driver Data Source Name format parameters have been changed due to a client library update. This also means placeholders insql_rawcomponents should use dollar syntax. - Docker images no longer come with a default config that contains generated environment variables, use
-sflag arguments instead. - All cache components have had their retry/backoff fields modified for consistency.
- All cache components that support a general default TTL now have a field
default_ttlwith a duration string, replacing the previous field. - The
httpprocessor andhttp_clientoutput now execute message batch requests as individual requests by default. This behaviour can be disabled by explicitly settingbatch_as_multiparttotrue. - Outputs that traditionally wrote empty newlines at the end of batches with >1 message when using the
linescodec (socket,stdout,file,sftp) no longer do this by default. - The
switchoutput fieldretry_until_successnow defaults tofalse. - All AWS components now have a default
regionfield that is empty, allowing environment variables or profile values to be used by default. - Serverless distributions of Benthos (AWS lambda, etc) have had the default output config changed to reject messages when the processing fails, this should make it easier to handle errors from invocation.
- The standard metrics emitted by Benthos have been largely simplified and improved, for more information check out the metrics page.
- The default metrics type is now
prometheus. - The
http_servermetrics type has been renamed tojson_api. - The
stdoutmetrics type has been renamed tologger. - The
loggerconfiguration section has been simplified, withlogfmtbeing the new default format. - The
loggerfieldadd_timestampis nowfalseby default. - Field
partshas been removed from all processors. - Field
max_in_flighthas been removed from a range of output brokers as it no longer required. - The
dedupeprocessor now acts upon individual messages by default, and thehashfield has been removed. - The
logprocessor now executes for each individual message of a batch. - The
sleepprocessor now executes for each individual message of a batch. - Go API: Module name has changed to
github.com/benthosdev/benthos/v4. - Go API: All packages within the
libdirectory have been removed in favour of the newer APIs withinpublic. - Go API: Distributed tracing is now via the Open Telemetry client library.
The full change log can be found here.
Configuration
-
If you want to rebase/retry this MR, check this box
This MR has been generated by Renovate Bot.