-
Notifications
You must be signed in to change notification settings - Fork 728
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
Default configuration in Beat CR #3042
Comments
To make it easier to make a call, some examples below. As above, ignoring option 3. as won't work for some of the use cases at all. There are at least two scenarios where this would be used:
Get logs only from Pods in
|
I'm a bit concerned about any future breaking change here (you upgrade ECK and suddenly your config isn't the one you expect anymore). As you said it should not prevent us from moving on with the current approach in the short term. Also concerned with the lack of consistency in the way we deal with Are lists/arrays the only data structure that causes merging issues? Re. smart merging I'm wondering if we could expose options from elastic/go-ucfg#152 to the user: # replace the 'modules' section with our own list of modules
config:
metricbeat:
modules:
- module: system
period: 10s
metricsets:
- cpu
- load
configOpts:
mergeStrategy:
metricbeat.modules: replace It looks like we can go quite far in what can be expressed (eg. Edit: thinking about this again I feel like it's very complicated to reason about for the end user. |
My feeling after playing with #3041: The 1st thing I tried to do is open the Kibana dashboard to see my Pods logs. Then I realized I need to enable Luckily I knew some implementation details so I grabbed the content of the |
I think that the complexity of Beats configs will prevent us from finding a perfect, clean solution.
I think it will be less confusing and error-prone if we continue with the current approach (either default or user config), with one, maybe two additions:
I'd start with only 1. though. |
I wonder if it would make sense to have the For the |
We are going to ship
Given the above, closing this issue. |
There are few ways a config can be provided in Beats. The most basic one is through
inputs
. Some of the Beats (Filebeat, Metricbeat, Heartbeat, Auditbeat) also offer an alternative - autodiscover. There are two ways a config can be provided there - viaautodiscover.providers[*].hints.default_config
and/orautodiscover.providers[*].templates
. This means that there are at least three ways users can write their config. This raises a question about our defaults - which way do our default settings use and how they get overriden/replaced by user configs.I think we should go with
autodiscover
config as a default, due to:There is an additional difficulty -
autodiscover.providers
andautodiscover.providers[*].templates
are lists which means that merging them is different (lists items are added together to form a longer list instead of being merged position by position).I think our goals for good defaults should be to be easily understandable, easy to overwrite and good starting experience.
We have a number of paths we can take:
output
part based onelasticsearchRef
.output
part based onelasticsearchRef
. This is the current implementation.I think we should cross out:
So being left with 2 and 4:
The text was updated successfully, but these errors were encountered: