diff --git a/exporter/bmchelixexporter/README.md b/exporter/bmchelixexporter/README.md index f3c8ee28f6ce..515a7dd34288 100644 --- a/exporter/bmchelixexporter/README.md +++ b/exporter/bmchelixexporter/README.md @@ -11,14 +11,14 @@ [development]: https://github.com/open-telemetry/opentelemetry-collector/blob/main/docs/component-stability.md#development -This exporter supports sending metrics to BMC Helix Operation Management. +This exporter supports sending metrics to [BMC Helix Operations Management](https://www.bmc.com/it-solutions/bmc-helix-operations-management.html) through its [metric ingestion REST API](https://docs.bmc.com/docs/helixoperationsmanagement/244/en/metric-operation-management-endpoints-in-the-rest-api-1392780044.html). ## Getting Started The following settings are **required**: -- `endpoint`: is the URL of your BMC Helix environment, at **onbmc.com** (e.g., `https://company.onbmc.com`). -- `api_key`: API key to authenticate the exporter. Connect to BMC Helix Operations Management, go to the Administration > Repository page, and click on the Copy API Key button to get your API Key. +- `endpoint`: is the *BMC Helix Portal URL* of your environment, at **onbmc.com** for a BMC Helix SaaS tenant (e.g., `https://company.onbmc.com`), or your own Helix Portal URL for an on-prem instance. +- `api_key`: API key to authenticate the exporter. Connect to BMC Helix Operations Management, go to the Administration > Repository page, and click on the Copy API Key button to get your API Key. Alternatively, it is recommended to create and use a dedicated [authentication key for external integration](https://docs.bmc.com/docs/helixportal244/using-api-keys-for-external-integrations-1391501992.html). Example: @@ -67,13 +67,17 @@ To ensure resource attributes (e.g., `host.name`) are available for all metrics, ## Setting Required Attributes for Metrics -To ensure metrics are correctly populated in BMC Helix, the following attributes must be set: +To ensure metrics are correctly populated in BMC Helix, the following attributes must be set either at the *Resource* level, or at the *Metric* level: - `entityName`: Unique identifier for the entity. Used as display name if `instanceName` is missing. - `entityTypeId`: Type identifier for the entity. - `instanceName`: Display name of the entity. -> **Note:** If `entityName` or `entityTypeId` is missing, the metric will not be populated. +> **Note:** If `entityName` or `entityTypeId` is missing, the metric will not be exported. + +To ensure the necessary attributes are present, it is recommended to leverage the [transform processor](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/processor/transformprocessor) with [OTTL](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/pkg/ottl), and include it in the configuration of the telemetry pipeline. + +The minimal pipeline most often looks like: `OTEL metrics --> (batch/memory limit) --> transform processor --> bmchelix exporter`. ### Transformer Example for Hardware Metrics