Context
The auto-installation of integrations is based on the specification of a dataset. If the dataset exists and data is present, the matching integration will be installed. Integrations specify this in the discovery section of the manifest.ymlfile. To provide an example, the OpenTelemetry Collector Internal Telemetry integration defines:
discovery:
datasets:
- name: collectortelemetry.otel
OpenTelemetry data ingested by the SDKs, by default, is routed to data streams
logs-generic.otel-default
metrics-generic.otel-default
traces-generic.otel-default
and the data streams to the generic.otel dataset.
New OpenTelemetry content-only integrations (also referred to as content packs) are often language and technology specific. The following scenarios are examples to make it more tangible.
Scenario 1
OpenTelemetry data from a Java application is ingested through the managed OTLP endpoint. The generic.otel dataset is available and data is present. Matching based on the dataset generic.otel installs the Android OpenTelemetry Assets and the RUM OpenTelemetry Assets automatically. The user is never ingesting OpenTelemetry Android or RUM data, the automatically installed dashboards have no data to show.
Scenario 2
Prometheus data from a Node.js application is ingested through the Prometheus remote write endpoint. The generic.prometheus dataset is available and data is present. A technology-specific Java SpringBoot integration is automatically installed because the data stream is available and data is present. The dashboard will not find any data.
Change
It should be possible to define attributes and attribute values to match in order to express the auto-installation condition in more detail. Something like:
discovery:
datasets:
- name: generic.otel
attributes:
resource.attributes.telemetry.sdk.language: java
resource.attributes.telemetry.sdk.name: android
scope.name: io.opentelemetry.okhttp-3.0
@juliaElastic mentioned this change impacts the package spec and Kibana.
Open
Data can be routed to custom datasets (PRW, OTel). IIUC the auto-installation mechanism would not install an integration, because of the custom name of the dataset. To mitigate this issue, should it be possible to omit the dataset definition and only provide attributes and attribute values to match? An integration could be installed if the attributes and values match independent of the dataset.
Context
The auto-installation of integrations is based on the specification of a dataset. If the dataset exists and data is present, the matching integration will be installed. Integrations specify this in the
discoverysection of themanifest.ymlfile. To provide an example, the OpenTelemetry Collector Internal Telemetry integration defines:OpenTelemetry data ingested by the SDKs, by default, is routed to data streams
logs-generic.otel-defaultmetrics-generic.otel-defaulttraces-generic.otel-defaultand the data streams to the
generic.oteldataset.New OpenTelemetry content-only integrations (also referred to as content packs) are often language and technology specific. The following scenarios are examples to make it more tangible.
Scenario 1
OpenTelemetry data from a Java application is ingested through the managed OTLP endpoint. The
generic.oteldataset is available and data is present. Matching based on the datasetgeneric.otelinstalls theAndroid OpenTelemetry Assetsand theRUM OpenTelemetry Assetsautomatically. The user is never ingesting OpenTelemetry Android or RUM data, the automatically installed dashboards have no data to show.Scenario 2
Prometheus data from a Node.js application is ingested through the Prometheus remote write endpoint. The
generic.prometheusdataset is available and data is present. A technology-specific Java SpringBoot integration is automatically installed because the data stream is available and data is present. The dashboard will not find any data.Change
It should be possible to define attributes and attribute values to match in order to express the auto-installation condition in more detail. Something like:
@juliaElastic mentioned this change impacts the package spec and Kibana.
Open
Data can be routed to custom datasets (PRW, OTel). IIUC the auto-installation mechanism would not install an integration, because of the custom name of the dataset. To mitigate this issue, should it be possible to omit the dataset definition and only provide attributes and attribute values to match? An integration could be installed if the attributes and values match independent of the dataset.