This changelog is intended for community Beat developers. It covers the major
breaking changes to the internal APIs in the official Beats and changes related
to developing a Beat like code generators or fields.yml. Only the major
changes will be covered in this changelog that are expected to affect community
developers. Each breaking change added here should have an explanation on how
other Beats should be migrated.
Note: This changelog was only started after the 6.3 release.
-
Compare event by event in
testadataframework to avoid sorting problems 13747
-
For "metricbeat style" generated custom beats, the mage target
GoTestIntegrationhas changed toGoIntegTestandGoTestUnithas changed toGoUnitTest. 13341
-
Add ClientFactory to TCP input source to add SplitFunc/NetworkFuncs per client. 8543
-
Introduce beat.OutputChooses publisher mode. 12996
-
Ensure that beat.Processor, beat.ProcessorList, and processors.ProcessorList are compatible and can be composed more easily. 12996
-
Add support to close beat.Client via beat.CloseRef (a subset of context.Context). 13031
-
Add checks for types and formats used in fields definitions in
fields.ymlfiles. 13188 -
Makefile included in generator copies files from beats repository using
git archiveinstead of cp. 13193
-
Add new option
IgnoreAllErrorstolibbeat.common.schemafor skipping fields that failed while converting. 12089
-
Move Fields from package libbeat/common to libbeat/mapping. 11198
-
Metricset generator generates beta modules by default now. 10657
-
The
beat.Eventaccessor methods now support@metadatakeys. 10761 -
Assertion for documented fields in tests fails if any of the fields in the tested event is documented as an alias. 10921
-
Support for Logger in the Metricset base instance. 11106
-
Filebeat modules can now use ingest pipelines in YAML format. 11209
-
Prometheus helper for metricbeat contains now
Namespacefield forprometheus.MetricsMappings11424 -
Update Jinja2 version to 2.10.1. 11817
-
Reduce idxmgmt.Supporter interface and rework export commands to reuse logic. 11777,https://github.com/elastic/beats/pull/12065[12065],https://github.com/elastic/beats/pull/12067[12067],https://github.com/elastic/beats/pull/12160[12160]
-
Update urllib3 version to 1.24.2 11930
-
Add libbeat/common/cleanup package. 12134
-
Only Load minimal template if no fields are provided. 12103
-
Add new option
IgnoreAllErrorstolibbeat.common.schemafor skipping fields that failed while converting. 12089 -
Deprecate setup cmds for
templateandilm-policy. Add new setup cmd forindex-management. 12132
The list below covers the major changes between 7.0.0-rc2 and 7.0 only.
-
Added support for using PYTHON_EXE to control what Python interpreter is used by
makeandmage. Example:export PYTHON_EXE=python2.7. 11212
-
Introduce processing.Support to instance.Setting. This allows Beats to fully modify the event processing. 10801
-
Allow multiple object type configurations per field. 9772
-
Move agent metadata addition to a processor. 9952
-
Add (*common.Config).Has and (*common.Config).Remove. 10363
-
Introduce ILM and IndexManagement support to beat.Settings. 10347
-
Generating index pattern on demand instead of shipping them in the packages. 10478
The list below covers the major changes between 6.3.0 and 7.0.0-alpha2 only.
-
The beat.Pipeline is now passed to cfgfile.RunnerFactory. Beats using libbeat for module reloading or autodiscovery need to be adapted. 7017
-
Moving of TLS helper functions and structs from
output/tlstotlscommon. 7054 -
Port fields.yml collector to Golang 6911
-
Dashboards under _meta/kibana are expected to be decoded. See elastic#7224 for a conversion script. 7265
-
Constructor
(github.com/elastic/beats/libbeat/output/codec/json).Newexpects a newescapeHTMLparameter. 7445 -
Packaging has been refactored and updates are required. See the PR for migration details. 7388
-
make fieldshas been modified to use Mage (https://magefile.org/) in an effort to make the building a Beat more cross-platform friendly (e.g. Windows). This requires that your Beat has a magefile.go with a fields target. TheFIELDS_FILE_PATHmake variable is no longer used because the value is specified in magefile.go. 7670 -
Outputs must implement String. 6404
-
Renamed
-beat-nameCLI option used inkibana_index_pattern.goto-beatfor consistency with other scripts indev-tools/cmd. 8615 -
Systemd unit file template used on Linux packaging now includes environment variables to ease flag overriding. One of them includes the
-eflag, making beats log to stderr by default on systemd uses. 8942 -
Removed dashboards and index patterns generation for Kibana 5. 8927
-
Move generator packages of Filebeat from
scripts/generatortogenerator. 9147
-
Libbeat provides a global registry for beats developer that allow to register and retrieve plugin. 7392
-
Added more options to control required and optional fields in schema.Apply(), error returned is a plain nil if no error happened 7335
-
Packaging on MacOS now produces a .dmg file containing an installer (.pkg) and uninstaller for the Beat. 7481
-
Added mage targets
goTestUnitandgoTestIntegrationfor executing 'go test'. This captures the log to a file, summarizes the result, produces a coverage profile (.cov), and produces an HTML coverage report. Seemage -h goTestUnit. 7766 -
Beats packaging now build non-oss binaries from code located in the x-pack folder. 7783
-
New function
AddTagsWithKeyis added, socommon.MapStrcan be enriched with tags with an arbitrary key. 7991 -
Move filebeat/reader to libbeat/reader 8206
-
Libbeat provides a new function
cmd.GenRootCmdWithSettingsthat should be preferred over deprecated functionscmd.GenRootCmd,cmd.GenRootCmdWithRunFlags, andcmd.GenRootCmdWithIndexPrefixWithRunFlags. 7850 -
Set current year in generator templates. 8396
-
You can now override default settings of libbeat by using instance.Settings. 8449
-
Add
-space-idoption toexport_dashboards.goscript to support Kibana Spaces 7942 -
Add
-nameoption toasset.goscript to explicitly name the asset rather than using its filename. 8693 -
Add
-outoption tokibana_index_pattern.goto control the output dir to make it possible to write the generated output tobuild/kibanainstead of_meta/kibana.generated(but the output dir remains unchanged at this point). 8615 -
Add
module_fields.gofor generatedfields.gofiles for modules. 8615 -
Add
mage.GenerateModuleReferenceConfigfor generating reference config files that include configuration sections from the module directory. 8615 -
Add
mage.GenerateFieldsGofor generating fields.go files. 8615 -
Add
mage.KibanaDashboardsfor collecting Kibana dashboards and generating index patterns. 8615 -
Allow to disable config resolver using the
Settings.DisableConfigResolverfield when initializing libbeat. 8769 -
Add
mage.AddPlatformsto allow to specify dependent platforms when building a beat. 8889 -
Add
cfgwarn.CheckRemoved6xSetting(s)to display a warning for options removed in 7.0. 8909 -
Add docker image building to
mage.Package. 8898 -
Simplified exporting of dashboards. 7730
-
Update Beats to use go 1.11.2 8746
-
Allow/Merge fields.yml overrides 9188
-
Filesets can now define multiple ingest pipelines, with the first one considered as the entry point pipeline. 8914
-
Add
group_measurements_by_instanceoption to windows perfmon metricset. 8688 -
Bump ECS version to 1.10.0. 25734