-
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
Add support for multiple sets of hints on autodiscover #18883
Conversation
Since this is a community submitted pull request, a Jenkins build has not been kicked off automatically. Can an Elastic organization member please verify the contents of this patch and then kick off a build manually? |
1 similar comment
Since this is a community submitted pull request, a Jenkins build has not been kicked off automatically. Can an Elastic organization member please verify the contents of this patch and then kick off a build manually? |
8d6bfb0
to
b4c57d9
Compare
Pinging @elastic/integrations-platforms (Team:Platforms) |
this allows use cases like:
this is currently not doable. |
I think this feature makes sense, also thinking on cases like kafka, where we may want to do something like this:
So this enhancement has my +1, but I also think that it increases the complexity and we have to be very careful. We have to be clear on how this feature would work, for example, would a mix of numbered and unnumbered configurations work? and if it is, what configs would it produce?
We also need to be clear on how we are going to document this. Autodiscover is already quite powerful, but also sometimes difficult to understand by some users. Currently we document the possible annotations with its whole name (e.g: And we are also going to need thorough testing, this feature opens the gate to many kinds of cases. |
a0eed91
to
2e431b8
Compare
f18fa4c
to
09e06c8
Compare
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.
@vjsamuel thanks for remarking that this is a feature already available in heartbeat, I see this as an strong point to make it available as is in other beats 🙂 And thanks for improving the documentation!
I have been taking a quick look to the PR that introduced hints in Heartbeat (#13119), and there you mentioned that Heartbeat seems to be a unique use case as a user might want more than one check on his/her pod/container. Out of curiosity, what made you change your opinion? Is there a use case worth mentioning for other beats?
I am going to add this PR to the manual test plan so we will make additional manual testing before releasing it, I have added some notes for it in the how to test section in the issue description, please review it and feel free to modify it.
What helped change my mind? One of the reasons is that the prometheus endpoint having the jvm/go runtime metrics causes a stop the world pause to get the memory snapshot. for latency sensitive applications we prefer not to scrape these endpoints at 5s granularity. However, we do have application metrics that need such scrape intervals. so, the natural tendency is to push those metrics to a different registry and scrape them at a lower granularity as compared to the runtime metrics. I had no good reason to do it for filebeat but its a great feature :) |
ddcf32d
to
1c54e3f
Compare
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.
LGTM, improvements in docs and tests cover my original concerns, thanks @vjsamuel!
jenkins, run the tests please |
1c54e3f
to
e72dcbe
Compare
Allows defining multiple sets of annotations similar to how processors are defined. This functionality already exists in heartbeat. This change standardizes the utility and adds it to logs and metrics hints builder as well. (cherry picked from commit a5da85c)
Allows defining multiple sets of annotations similar to how processors are defined. This functionality already exists in heartbeat. This change standardizes the utility and adds it to logs and metrics hints builder as well. (cherry picked from commit a5da85c) Co-authored-by: Vijay Samuel <vjsamuel@ebay.com>
Allows defining multiple sets of annotations similar to how processors are defined. This functionality already exists in heartbeat. This change standardizes the utility and adds it to logs and metrics hints builder as well.
Enhancement
What does this PR do?
This PR allows defining multiple sets of annotations similar to how processors are defined. This functionality already exists in heartbeat. This PR standardizes the utility and adds it to logs and metrics hints builder as well.
Why is it important?
A container can always have more than one kind of endpoint that requires different kinds of processing needs. We need to provide a uniform experience across all beats from a hints perspective.
Checklist
I have made corresponding change to the default configuration filesCHANGELOG.next.asciidoc
orCHANGELOG-developer.next.asciidoc
.Author's Checklist
How to test this PR locally
Related issues
Use cases