With 7.0 Beats will transition to ECS: https://github.com/elastic/ecs This meta issue is to track all changes needed in Beats. The list will be extended over time
The overall migration strategy is to add a alias layer to 7.x which is opt-in to be backward compatible with 6.x data if needed. For some of the core fields used in the Infra / Logging UI aliases are introduced in 6.x for the 7.x data.
agent.* overwritable for apm-server https://github.com/elastic/beats/pull/9952migrate: * flagos field set in all relevant places elastic/beats#9763group field set elastic/beats#10275text indexing. All fields except message and error.message should be keyword. If a field requires text indexing, it should be added as a multi-field under the keyword field.agent.id and agent.ephemeral_id elastic/beats#9404meta.*, cloud.* should be at the top level.container.* at the top level, not nested under docker.*, and make sure to review field names vs ECS https://github.com/elastic/beats/pull/9412host.os.name elastic/beats#9405read_timestamp which should be changed to event.created elastic/beats#9924source field to ECS https://github.com/elastic/beats/pull/8902offset to log.offset https://github.com/elastic/beats/pull/8923source_ecs to source elastic/beats#8983event.created, and not read_timestamp elastic/beats#10139[source|destination].address for the ambiguous address (prior to parsing an IP, socket, domain) everywhere elastic/beats#10141alias: false and with scale:, use the shared Ingest Node code, to reduce compilations. elastic/beats#10274url.hostname. #10469:long instead[x] Rename metricset.name to event.dataset #8941
[x] Rename metricset.module to event.module elastic/beats#8941
network metricsetprocess metricset elastic/beats#10332ecs.version in all relevant places https://github.com/elastic/beats/pull/9284user_agent parsing to ECS for all web access logs.See also all issues tagged "ecs"
co.elastic.logs/fileset to co.elastic.logs/dataset for autodiscovery (@exekias )metricsets config option in Metricbeat?INTEGRATION_TESTS=1 GENERATE=1 nosetests tests/system/test_modules.py -v, x-pack: MODULES_PATH=./module INTEGRATION_TESTS=1 GENERATE=1 nosetests tests/system/test_xpack_modules.py -v. @ruflin
@ruflin about fileset -> dataset. This relies in Filebeat docs, they name these fileset: https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-modules-overview.html
In my opinion that makes sense, as we are talking about files. They will generate datasets, and that's correct too, but as as long as we name this fileset in Filebeat docs I think the annotation should keep that nomenclature.
@exekias We must change it in the docs too. Would this solve the issue?
If we completely rename the thing, I would say yes, annotations must follow
@ruflin I've updated the "Beats processors" section. The list and fields to change should be pretty comprehensive now. Please take a look, to confirm I haven't missed something.
cc @roncohen
@ruflin Just added this to the "Field changes" section. I think this would be best solved by moving ECS docs to asciidoc on the doc website:
For our UI ML Module automated testing, we do the following:
We currently use
fileset.module": "nginx" AND "fileset.name": "access"fileset.module": "apache2" AND "fileset.name": "access""event.type": "syscall" for docker containers and hosts (tbc if ECS changes will affect ML in 7.0) As we start with data snapshots in our existing test framework, is the beats team able to supply snapshots of indices containing
a) pure new 7.0 ECS data and b) backward compatible indices?
With (a) being the priority.
With 7.0 you will be able for the above queries to just rely on event.dataset: nginx.access as an example. BTW we also renamed apache2 to apache to be in line with the metricbeat module.
I assume the data you are looking for is nginx and apache data for the logs. What I could produce is a few lines of example data based on our test suite logs. Would that be enough? Or you need larger logs? If you have larger log files for nginx and apache I can easily create the data.
@ruflin Can we please start with some example data snapshots?
(We do have larger logs, but I'm not sure if we retained them in their original raw format as they were anonymised. Will need to check and will share with you if we can).
Our tests logs can be found here:
I initially thought I provide you with a snapshot or es_archiver zip file from ES. But I think it's easier if the one that works on these files ingests the data himself. Like this also your apache files can be used and it does not have to go through me anymore.
To make the module work with any file path, var.paths must be adjusted in the module config: https://github.com/elastic/beats/blob/master/filebeat/modules.d/apache.yml.disabled
For testing use the snapshot builds:
@webmat Above I did check the checkbox around http.request.method to normalise it. I suggest we skip this for now.
@ruflin Understood. If I can get around to it in time would you have any objections, though?
Not 100% sure I can (e.g. if we don't have what we need in field generation), but I'd like to get it done if possible.
@webmat No objections :-)
Closing this issue as all the checkboxes have been done except the following 3:
A big thank you to everyone that contributed to getting this massive effort done.
Most helpful comment
Closing this issue as all the checkboxes have been done except the following 3:
A big thank you to everyone that contributed to getting this massive effort done.