-
Notifications
You must be signed in to change notification settings - Fork 8.3k
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
[Fleet] Add support for custom ingest pipeline to integrations #133740
Comments
Pinging @elastic/fleet (Team:Fleet) |
Few comments
|
@joshdover How do we plan the migration from 8.3.0 to 8.4.0 to work with that?
|
I like the idea of the "manual" upgrade. We could use this also in other places. Instead of magically rolling over / upgrading we could should users a manual upgrade button on these packages. |
@nchaulet The only bit here that sounds odd to me is this requirement for the Component Template editor:
There is no direct connection between a component template and a data stream at the ES level. A component template's settings etc are applied to a new data stream when it's created, and then that link is discarded -- you can't inspect a data stream to determine which component template created it (AFAIK). So I believe this direct link between components templates and data streams is a new concept that's been introduced at the integration level. If all of this is correct so far, then I suggest the following requirements, in order to clarify this relationship:
|
Out of curiosity, shouldn't the index.final_pipeline setting be used for this instead of injecting a |
@nchaulet Whenever we open the docs issue for this feature, let's have the docs for this added to or linked from this page https://www.elastic.co/guide/en/fleet/current/data-streams.html |
@adriansr we already use a final pipeline shared between all the datastream created by fleet (that set |
@nchaulet Is there anything left for this feature before we close this issue out? |
@jen-huang No just closed the last PR for that today, and there is an issue for doc already (where I need to had more info) |
Could you please share some more detailed information for the feature, like use case and how it will enhance user experience.
Could you please explain us the working of pipeline as mentioned in above statement. Further, we would be requiring more guidelines for feature validation. Thanks |
Hi @amolnater-qasource this feature allow a user to edit custom ingest pipeline and custom mappings for a datastream from the package policy editor under the advanced section. I recorded a small demo of the feature here maybe it could help you to better understand the feature let me know if you have more questions, Loom.Message.-.19.July.2022.mp4 |
Hi @nchaulet Thank you for all the information and sharing a demo recording for the feature testing. We have revalidated this feature on latest 8.4 Snapshot and had below observations:
Could you please confirm if this is an issue? Screen Recording: Edit.integration.-.Agent.policy.1.-.Agent.policies.-.Fleet.-.Elastic.-.Google.Chrome.2022-07-25.17-34-17.mp4Build details: Please let us know if we are missing anything here. |
Hi @amolnater-qasource yes you should not get anything in custom mapping it's up to the user to add custom mappings after adding a custom pipeline.. |
Hi @nchaulet Thanks |
Hi Team
Please let us know if any other scenario is required to be covered from our end. |
Hi Team We have executed 04 testcases for this feature under our Fleet Test run at link: Build details:
As the testing is completed on this feature, we are marking it as QA:Validated. Thanks |
@joshdover how do @Custom mappings interact with existing index templates for the integration index pattern? Will apply this custom mappings at the beginning or the end of the components chain? |
@llermaly The |
In order to support user customizations to how data is processed from integrations, we will add support to Integration packages for adding an optional, custom ingest pipeline that is executed after the package's data stream pipeline on each data stream. This custom pipeline can container processors directly or use the
pipeline
processor to call other pipelines that can be shared across integrations.In this initial phase, we'll also add some UX entry points in the default integration policy editor for accessing the pipeline and custom mappings editors. This will lay the groundwork for future workflow enhancements around data customization, enrichment, and processing.
Implementation plan
Add support for
@custom
pipelines to all integration data streamsDepends on:
In this initial step, we'll update the EPM installation code to append a new
pipeline
processor to the end of any ingest pipeline that is installed by the integration. This processor will reference a pipeline with the naming convention<type>-<dataset>@custom
with theignore_missing_pipeline: true
option set.We should also install a default pipeline that only includes this pipeline processor. for every data streams that do not define an ingest pipeline at all.
The
<type>-<dataset>@custom
pipeline that is referenced should not be created during installation, removed during upgrades, or removed during uninstallation. In other words, EPM does not directly touch these pipelines at all.Example of what this would look like for the
logs-nginx.access-*
data streams' pipeline:Enhancements to Stack Management
There are some changes we need to improve the UX of editing mappings and these custom ingest pipelines. These may or may not be done by the Fleet UI team, as these are currently owned by @elastic/platform-deployment-management team.
Ingest Pipeline UI
name
field on the "create ingest pipeline" UI with the custom pipeline name. I propose we add a?name=logs-nginx.access@custom
query parameter to this UI. The name field should also be disabled when this query parameter is specified. ([Ingest Pipeline] Provide url params to use ingestPipeline UI from Fleet #134776 (comment))?redirect_path=/app/fleet/policies/<uuid>/edit-integration/<uuid>
([Ingest Pipeline] Provide url params to use ingestPipeline UI from Fleet #134776 (comment))Component template editor
?tab=mappings
query parameter. [Ingest Pipeline] Allow to provide a redirect path and a tab in component template edit UI #134910?redirect_path=/app/fleet/policies/<uuid>/edit-integration/<uuid>
[Ingest Pipeline] Allow to provide a redirect path and a tab in component template edit UI #134910Add entry points to pipeline and mapping editors from integration policy editor
We will guide the user towards creating or editing these pipelines and their associated mappings from the integration policy editor, under each data stream's "Advanced options" section. This includes adding a table that displays the data stream's pipeline and mappings defined by the package as well as the custom pipeline (if created) and custom component template.
These new components should be built in a way that can also be reused in other custom policy editors, like APM and Endpoint.
Detailed Requirements:
General changes
history.block
helper from Core's application serviceIngest pipelines table
PR is here #134760
/app/management/ingest/ingest_pipelines/?pipeline=<pipeline name>
/app/management/ingest/ingest_pipelines/create?name=<type>-<dataset>@custom&redirect_path=/app/fleet/policies/<uuid>/edit-integration/<uuid>
/app/management/ingest/ingest_pipelines/edit/<type>-<dataset>@custom?redirect_path=/app/fleet/policies/<uuid>/edit-integration/<uuid>
Mappings table
It's important to note that today, we always create @Custom component templates for mappings and settings overrides. We should explore changing this in the future, but it is not considered in scope for this change.
@package
component template and the@custom
component template. These should include a link to view the template by redirecting to/app/management/data/index_management/component_templates/<template name>
@custom
template should redirect to/app/management/data/index_management/edit_component_template/<type>-<dataset>@custom?tab=mappings&redirect_path=/app/fleet/policies/<uuid>/edit-integration/<uuid>
Optional enhancements
Deferred
These features will further enhance custom ingest pipelines, but are planned to be implemented separately from this initial effort:
logs-*
andmetrics-*
that ship with Elasticsearch See templates added in https://github.com/elastic/elasticsearch/pull/64978/filesQuestions
whatever-the-pipename-is@custom
?Top level pipeline is only used by a ML integration and not related to any datastream , so it probably make no sense to add a custom pipeline there.
The text was updated successfully, but these errors were encountered: