Package policies for input packages are currently designed to collect a single signal type, and send it to a single data stream.
In the case of OTel, a single receiver can collect multiple signal types if it is connected to pipelines of different types, as seen in elastic/integrations#16003
Changes in package-spec
available_types: [logs, metrics, traces]
Changes in Fleet
processors:
transform/foo
log_statements:
- set(attributes["data_stream.type"], "logs")
- set(attributes["data_stream.dataset"], "<policy_template_name>")
- set(attributes["data_stream.namespace"], "<namespace>")
metric_statements:
- set(attributes["data_stream.type"], "metrics")
- set(attributes["data_stream.dataset"], "<policy_template_name>")
- set(attributes["data_stream.namespace"], "<namespace>")
trace_statements:
- set(attributes["data_stream.type"], "traces")
- set(attributes["data_stream.dataset"], "<policy_template_name>")
- set(attributes["data_stream.namespace"], "<namespace>")
The changes can be tested by compiling the test package defined in elastic/integrations#16003 with the new available_types field.
Original description
We have to design how this should work, as this has some implications, between them:
* There are currently UI elements to select the data stream type, should they be disabled for OTel input packages with multiple pipelines?
* Should support for multiple signal types in a package detected automatically or indicated by some flag in the manifest?
* How would routing work? Using fixed indexes in the exporter, different transforms for different dynamic mappings? Routing on ingestion? Should this be configurable per package?
...
Package policies for input packages are currently designed to collect a single signal type, and send it to a single data stream.
In the case of OTel, a single receiver can collect multiple signal types if it is connected to pipelines of different types, as seen in elastic/integrations#16003
Changes in package-spec
available_typesin the manifest that allows the author to specify the signal types available for the package, for instance:Changes in Fleet
available_types- example in case of all three signals present:e.g. a user can toggle between logs or metrics when
available_types: [logs, metrics]is set, but can't select tracesThe changes can be tested by compiling the test package defined in elastic/integrations#16003 with the new
available_typesfield.Original description
We have to design how this should work, as this has some implications, between them: * There are currently UI elements to select the data stream type, should they be disabled for OTel input packages with multiple pipelines? * Should support for multiple signal types in a package detected automatically or indicated by some flag in the manifest? * How would routing work? Using fixed indexes in the exporter, different transforms for different dynamic mappings? Routing on ingestion? Should this be configurable per package? ...