-
Notifications
You must be signed in to change notification settings - Fork 4.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update the HTTP field set with ECS definitions as of beta 2 #9645
Conversation
Looks like this breaks some packetbeat tests? |
@ruflin Yeah that's possible. I had problems running the test suite locally, so I decided to ask Jenkins and Travis for help. Hence the WIP / "in progress" ;-) |
Error in question:
|
@andrewkroh ECS 1 Beta 2 introduced the |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That looks like everything w.r.t to the Packetbeat code. I'm really hoping the test coverage for http is good in Packetbeat 🤞
I think there are some mentions in the documentation that also need updated. Like here.
1e3e1d2
to
c9ea42d
Compare
I've modified the documentation and added changelog entries in two places (Pb/breaking and All beats/Added). I'd like to merge this as is. There's a few caveats listed in the body of this PR. One for awareness / discussion (can't alias Packetbeat's body changes), and one is for follow-up work. |
jenkins, test this |
packetbeat/protos/http/http.go
Outdated
@@ -629,7 +629,7 @@ func (http *httpPlugin) collectHeaders(m *message) interface{} { | |||
|
|||
func (http *httpPlugin) setBody(result common.MapStr, m *message) { | |||
if m.sendBody && len(m.body) > 0 { | |||
result["body"] = string(m.body) | |||
result["body.content"] = string(m.body) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Probably better user here result.Put("body.content", string(m.body)
so it creates the correct object.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done. Although the rest of this file use the square bracket notation to set fields. I'm not adjusting the rest of this file.
8ec2907
to
4d540f7
Compare
4d540f7
to
da5b718
Compare
a1ba677
to
9ac91f5
Compare
@ruflin One last look needed. My understanding is that these metricbeat failures are unrelated, correct? https://beats-ci.elastic.co/job/elastic+beats+pull-request+multijob-linux/2877/testReport/ Once I merge this PR, the rebase conflicts that leave |
Ok just confirmed metricbeat failure is unrelated. Just got fixed by #9749 |
- With the exception of http, captured in elastic#9645 - With the exception of os, which must be updated in a bunch of places
This addresses most of the differences, with the exception of http (#9645) and os (PR coming) Changes: - `client/server`, `source/destination` - Update each field set's definition - Add the `.address` field (except for `source`, which already had it) - `network`: update definitions and examples wrt lowercase directive - `user_agent.original` index is now `keyword` indexed (See elastic/ecs#262) - Update `ecs.version` example
@webmat Nit: Could you adjust the title of the PR so if people come back to this PR it does not say WIP and it's merged ;-) |
@webmat Should this also show up in the ecs migration yml file? |
Notes: - Can't be aliased since `body` is moving to `body.content`. - Currently only affects Packetbeat, so it's been listed only there, even if these are ECS field defs. - This will affect the ES Filebeat module logs as well. A note as been added to elastic#9293, so it doesn't get forgotten.
…up. (#9878) Details: * Add two migrated fields to ecs-migration from #9645. Can't be aliased since `.body` is moving to `.body.content`. * Remove dupe headers for what's after the 'processors' section. Likely a rebase hiccup. * Fix typo in processors entries: `form` => `from`. * Move the processors heading above the docker processor section
…tic#9645) - Introduces fields for http size metrics - HTTP body field is now nested deeper: - `http.request.body` moves to `http.request.body.content` - `http.response.body` moves to `http.response.body.content` - packetbeat has been adjusted accordingly - Introduces missing field definition updates (mainly to lowercase `method`) - Unrelated: delete `x-pack/auditbeat/include/fields.go` which should have been deleted in elastic#9724.
This addresses most of the differences, with the exception of http (elastic#9645) and os (PR coming) Changes: - `client/server`, `source/destination` - Update each field set's definition - Add the `.address` field (except for `source`, which already had it) - `network`: update definitions and examples wrt lowercase directive - `user_agent.original` index is now `keyword` indexed (See elastic/ecs#262) - Update `ecs.version` example
Caveat
.body
fields for this migration. This is a situation similar to Filebeat'ssource
field.http.request.method
is not lowercased in this PR. This affects many Fb modules, Packetbeat, etc. I think it should be implemented via an index tokenizer, not by modifying _sourceTODO
...body.content
is completex-pack/auditbeat/include/fields.go
which should have been deleted in Update Auditbeat magefile.go #9724.