Skip to content
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

Plugin extensions beyond pipeline components #2588

Open
4 of 6 tasks
dlvenable opened this issue Apr 24, 2023 · 0 comments
Open
4 of 6 tasks

Plugin extensions beyond pipeline components #2588

dlvenable opened this issue Apr 24, 2023 · 0 comments
Labels
enhancement New feature or request proposal Proposed major changes to Data Prepper

Comments

@dlvenable
Copy link
Member

dlvenable commented Apr 24, 2023

Problem

The term pipeline component refers to a source, buffer, processor, or sink. Today, Data Prepper plugins only support creating pipeline components. (Or in some cases, sub-configurations within a component.) The opensearch sink is an example of component plugin. Data Prepper creates an instance of this class for each sink declared in a pipeline configuration.

However, Data Prepper has no solution for extending existing functionality beyond pipeline components. Nor does it have a solution to add new functionality to the overall system.

One use-case for this is described in #2570. This proposes:

  • Extending the data-prepper-config.yaml to support AWS credential configurations.
  • Adding new functionality for other plugins to use which allow them to get credentials from a common mechanism.

Another use-case is supporting variable injection (through environment variables or AWS Secrets). For example, see #2780.

Another problem extensions could help with is sharing resources. For example, we could possibly share data across multiple opensearch sinks through the use of extensions. See #2589 for more details.

Solution

Provide a mechanism for extending Data Prepper functionality. Extensions will provide this mechanism.

An extension is a global component that can be used across all of Data Prepper. Other pipeline components (sources, processors, sinks) can use extensions. And even Data Prepper core functionality can be modified by using extensions.

These extensions should allow:

  • Adding new configurations in data-prepper-config.yaml
  • Creating new types that can be shared within the plugin framework. These types can themselves be registered as plugins.
  • Add new configurations within a pipeline YAML file

Tasks

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request proposal Proposed major changes to Data Prepper
Projects
Development

No branches or pull requests

1 participant