-
Notifications
You must be signed in to change notification settings - Fork 117
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 fields to integrations by default #949
Comments
pinging @elastic/ecosystem and @mukeshelastic for prioritization |
One of the options is to add these to each package. The other one is to have it as a feature of Fleet like I think |
I agree that they would offer a lot of flexibility to users, but I think that there are already other efforts intended to cover these areas. For example custom processing is being added to Fleet. Having it in Fleet makes it available for all packages without adding anything. Any improvement in this area will benefit all packages, including existing ones. Tags would be covered by any solution intended for custom processing. If you can do custom processing, you can add tags. Regarding |
We need to split up a few things here:
I don't think the custom processing covers the local case. For tags, it is also a bit different. Assuming we have multiple policies shipping system metrics. All metrics go to the same data stream, but for the "east coast" policy a tag should be added to each event and one for the "west coast" policy. This can't be done globally AFAIK. |
Good points on global vs. local processing. I still wonder if, given that we want this in all packages (or all packages of certain kinds), the config for local processing should be also managed by Fleet. This would allow to change the implementation without needing to change all packages. It is true that we are probably far from having anything based on enrichment processor, but still, I think it'd be preferred if things wanted the same in all packages of a kind are managed by Fleet. For consistency and to reduce the number of things package developers need to take into account.
Another good point, but this sounds to me more like a limitation of the current approach for custom processing. As a user I would expect to be able to add different custom processing per policy, the data stream is more an implementation detail. My main point is that requiring to add something to all packages to have some desired functionality sounds like a source of problems: there can be inconsistencies between packages and it increases complexity (and error-proneness) of package development. |
Processors: Tags: ignore_older: Pinging @elastic/obs-service-integrations |
The log input package would have this option, yes. Ideally these inputs could use the pipelines of other packages, providing a similar functionality to the definition of custom inputs in Filebeat modules configuration. |
This triggered a more fundamental idea on my end. What if Fleet becomes knowledge about certain "core" inputs like logfile? Instead of each package having to figure out what the necessary fields are for using the logs input instead Fleet would have some basic knowledge. Or a package would inherit it from the log input package? This could be an extension of the input package development elastic/kibana#133296 @kpollich It makes it even more clear that any non input package is basically an extension of an input package (or multiple of them). |
Not that I know, I'd say this is a new idea that has appeared here. Pinging @kpollich for his opinion here.
Yes, I think we should go in the direction of including this information in the specific input packages and not on every package. Fleet would also get the knowledge about these options from the input packages, this knowledge shouldn't be hardcoded in Fleet. |
@kpollich: Could you please let us know about any dependencies if these processors are required to be implemented at Fleet Level. |
I believe this is the issue we're looking for here: elastic/kibana#122892
I don't think we have any real blockers on our end, as we already support custom processors for the Custom Logs integration. We'd just need to do some definition/architecture around how we'll expand that support to all integrations.
I like these thoughts, but I wonder about the feasibility of "cross package lookups". e.g. I have the If this isn't the case, and a single package manifest still contains all the package data Fleet needs to operate, then the "base package" notion is not a Fleet concern and instead should be handled by the |
All very good thoughts. To not derail the initial conversation of the Github issue, should we take this to a new issue? |
@kpollich I have raised a Github ticket for the same. elastic/kibana#139900.
Also, regarding elastic/kibana#122892, for custom processing at policy level. |
cc @jen-huang @nimarezainia - See above for requested work in 8.6 |
Gisting out AI's here:
@jen-huang @nimarezainia : Could you please incorporate this in 8.6 planning. It would be a great addition for integrations from Fleet.
|
I expect that we have quite a few scenarios in the future where certain configs become obsolete because these will be removed eventually or were taken over by another config. In an ideal scenario we can just migrate users but I guess this is not the case here. One idea would be to mark this fields as deprecated. For any user where the field already contains content, it still shows up and these users have to migrate over to the new feature manually. For any other user, it does not show up. |
Added a follow up elastic/kibana#139900 (comment) . Additionally processors are a little different than conditions, because can live for start only in the top level (if that eases the implementation) and do not interfere with any existing data stream field. So the text box for conditions can start and independently continue the discussions for any new cases like processors that can be more complex FYI exposing conditions is a critical thing for cloudnative team if we want to support auto-discovery feature in managed agent based on them |
@gizas @ishleenk17 @kpollich let's use elastic/kibana#108525 for the |
If we are not taking the generic approach of raw yaml, it would be good to carry on discussions for processors/tags here and conditions in the other thread. |
@ishleenk17 Consistency of input processors across all integrations is a goal but we won't be able to address this in the 8.6 timeframe. What we have done (based on customer requirement) has been to ensure that some of the top integrations already have implemented tags&processors for their datastreams. is there a specific customer request we need to consider? if not we should punt this to a later release and ensure the technical design is appropriate. We also do plan to address the Global processors on a per policy basis via: https://github.com/elastic/ingest-dev/issues/2442 |
@nimarezainia , there are a couple of reasons why we think having this consistency of processors/tags is important:
I agree, the end to end technical design and challenges should be thought through. We will plan to close that in this iteration, post that I suppose we should prioritize this activity. |
@ishleenk17 I agree that we need this type of consistency across all integrations and the proposal to do it via fleet seems to be lowest effort approach. Regarding customer requests though, we have addressed those for the most part by modifying the individual packages - so I think there shoudl be less urgency in that sense. Based on the lack of urgency on this I don' want to disrupt the work/planning that has already started for 8.6 and we will try and pursiue the correct implementation in 8.7 (once prioritized amongst other asks there) |
Hello @nimarezainia , wanted to check if we will be prioritizing this for 8.7 ? |
@nimarezainia : There have been a couple of requests for processors in integrations yet again. |
@ishleenk17 our 8.9 is over subscribed. I have added this as a lower priority item for 8.9 but we may have to consider 8.10 or later. (fyi @kpollich ) |
@andresrc for this is has been push out to alter sprint due to competing priorities. |
Pinging @elastic/fleet (Team:Fleet) |
The UX proposal for this, as was developed for some of the most utilized integrations, is here: https://docs.google.com/document/d/18x1q_jog3_xgCdsU20wVZcyZz1_ZiI4pXGE5ZMma6Ho/edit?usp=sharing I'm moving this out of PM definition into tech. |
I've created elastic/kibana#170336 to capture the plan for adding default field appending logic for all data streams to Fleet |
Closing in favor of elastic/kibana#170336 |
As part of elastic package, it would be good to have the below fields in the default template of elastic package create, so that every integration inherits these.
These fields can be optional for the users.
The above would provide us unanimity across integrations and more flexibility to users.
cc: @ruflin
The text was updated successfully, but these errors were encountered: