-
Notifications
You must be signed in to change notification settings - Fork 2.6k
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
New component: BMC Helix Exporter #36773
Comments
Signals that should be supported:
|
Asking for sponsors, please! @Aneurysm9 @dashpole @trask @atoulme @MovieStoreGuy @jmacd Would you be okay to be a "sponsor" for this new component of the Collector? This exporter will send metrics to BMC Helix a leading vendor in the observability market (at least it's worth mentioning by Gartner in their magic quadrant). I think it's a good addition to OpenTelemetry Collector. @NassimBtk and I will be maintaining this. It will be a pretty simple exporter that simply needs to push the Otel metrics through a dedicated REST API endpoint on BMC Helix. Later on we will add support for logs and traces. Thank you! |
@NassimBtk needs to be a member of the OpenTelemetry community to be a codeowner of this component. See https://github.com/open-telemetry/community/issues/new?assignees=&labels=area%2Fgithub-membership&projects=&template=membership.md&title=REQUEST%3A+New+membership+for+%3Cyour-GH-handle%3E to get started |
I am happy to sponsor this, Are you representing BMC Helix as part of the contribution? or is this a community funded component? |
Sentry Software is a tech partner of BMC Helix and we have tons of contacts there, with R&D, product management, support, etc. but we don't represent them, per se. So it's more of a "community funded" component, where the community has strong ties with vendor. If there is any change in the interfaces, APIs, or any new requirements, we have the right contacts to handle the situation and ensure the quality of the components of the foreseeable future. Thank you for the sponsorship, @MovieStoreGuy! 😊 |
Thank you, @atoulme! I’ve created open-telemetry/community#2493 to join the OpenTelemetry community as a member. |
I am happy to sponsor this |
Thank you @fatsheep9146 and @MovieStoreGuy! 😊 |
…#36964) #### Description This pull request introduces a new component for exporting metrics to BMC Helix. The changes include adding the new component to various configuration files, creating necessary documentation, and implementing the component's configuration and factory logic. Key changes include: ##### New Component Addition: * Added a new changelog entry for the BMC Helix exporter in `.chloggen/bmchelixexporter-new-component.yaml`. * Updated `.github/CODEOWNERS` to include the new BMC Helix exporter. ##### Documentation: * Created `README.md` for the BMC Helix exporter with detailed setup instructions and examples. ##### Configuration and Factory Implementation: * Implemented configuration struct and validation logic in `config.go`. * Created tests for the configuration in `config_test.go`. * Added factory methods for creating the exporter in `factory.go`. * Created tests for the factory methods in `factory_test.go`. ##### Miscellaneous: * Included the common Makefile in `exporter/bmchelixexporter/Makefile`. * Added package documentation in `doc.go`. #### Link to tracking issue Fixes open-telemetry#36773 --------- Co-authored-by: Bertrand Martin <[email protected]>
…37350) * Implemented core functionality in `exporter.go` to handle metric transformation and payload dispatch to BMC Helix. * Added `metrics_client.go` with HTTP client configuration. * Added `metrics_producer.go` to produce BMC Helix-compatible payloads. * Added unit tests. <!--Ex. Fixing a bug - Describe the bug and how this fixes the issue. Ex. Adding a feature - Explain what this achieves.--> #### Description This pull request introduces the BMC Helix Exporter, which is responsible for exporting metrics to BMC Helix Operations Management. The most important changes include the implementation of the exporter, configuration adjustments, and the addition of unit tests. ##### Implementation of BMC Helix Exporter: * [`exporter/bmchelixexporter/exporter.go`](diffhunk://#diff-4a430330ea5f9e90bc37821ca52351bc66219d4da8a1da11299b049cd4864214R1-R84): Introduced `BmcHelixExporter` class with methods to start the exporter and push metrics to BMC Helix. * Developed `metrics_producer.go` to build the BMC Helix Operations Management expected metric payloads. * [`exporter/bmchelixexporter/metrics_client.go`](diffhunk://#diff-9a8d71b75da3d5cc679440769fae03014ae601d122e65e5797ea9866cb9cf341R1-R93): Added `MetricsClient` class responsible for sending metrics payloads to BMC Helix. ##### Configuration Adjustments: * [`exporter/bmchelixexporter/config.go`](diffhunk://#diff-4b576c9fd2cd87cecaf1fd1182f88283e38a6e2f4c6c28549f98f22ad60949dcL8-L17): Replaced `Endpoint` and `Timeout` fields with `confighttp.ClientConfig` to handle HTTP client configuration. * [`exporter/bmchelixexporter/factory.go`](diffhunk://#diff-f69eea4d007085533aa8bb35cc91f6c41f1783a87998eaa3ddefd1730ea2d0fbR30-R54): Updated `createDefaultConfig` to use `confighttp.NewDefaultClientConfig` and adjusted the `createMetricsExporter` function to initialize the exporter properly. ##### Unit Tests: * [`exporter/bmchelixexporter/config_test.go`](diffhunk://#diff-b79eedb9dda64716aecd4902019fc29dc3ade40d26b5b32081d60d5c43d6fd4bL34-L45): Modified tests to accommodate changes in configuration structure and added helper function `createDefaultClientConfig`. * [`exporter/bmchelixexporter/exporter_test.go`](diffhunk://#diff-ed008fa0f26264e77c8516b3334f98fdc7f9bbac4fd7bc09719033c57331ad5fR1-R28): Added unit tests for `newBmcHelixExporter` function to ensure proper initialization. * `exporter/bmchelixexporter/metrics_producer.go`: Added unit tests. * `exporter/bmchelixexporter/metrics_client.go`: Added unit tests. ##### Changelog Entry: * [`.chloggen/bmchelixexporter-metrics-implementation.yaml`](diffhunk://#diff-e86aa08891f9688ad1995e82d398c481bedbbdea3903847c853585869c2feb65R1-R27): Added a new changelog entry for the BMC Helix Exporter metrics implementation. <!-- Issue number (e.g. #1234) or full URL to issue, if applicable. --> #### Link to tracking issue Fixes #36773 <!--Describe what testing was performed and which tests were added. #### Testing--> <!--Describe the documentation added.- #### Documentation-> <!--Please delete paragraphs that you did not use before submitting.-->
…pen-telemetry#37350) * Implemented core functionality in `exporter.go` to handle metric transformation and payload dispatch to BMC Helix. * Added `metrics_client.go` with HTTP client configuration. * Added `metrics_producer.go` to produce BMC Helix-compatible payloads. * Added unit tests. <!--Ex. Fixing a bug - Describe the bug and how this fixes the issue. Ex. Adding a feature - Explain what this achieves.--> #### Description This pull request introduces the BMC Helix Exporter, which is responsible for exporting metrics to BMC Helix Operations Management. The most important changes include the implementation of the exporter, configuration adjustments, and the addition of unit tests. ##### Implementation of BMC Helix Exporter: * [`exporter/bmchelixexporter/exporter.go`](diffhunk://#diff-4a430330ea5f9e90bc37821ca52351bc66219d4da8a1da11299b049cd4864214R1-R84): Introduced `BmcHelixExporter` class with methods to start the exporter and push metrics to BMC Helix. * Developed `metrics_producer.go` to build the BMC Helix Operations Management expected metric payloads. * [`exporter/bmchelixexporter/metrics_client.go`](diffhunk://#diff-9a8d71b75da3d5cc679440769fae03014ae601d122e65e5797ea9866cb9cf341R1-R93): Added `MetricsClient` class responsible for sending metrics payloads to BMC Helix. ##### Configuration Adjustments: * [`exporter/bmchelixexporter/config.go`](diffhunk://#diff-4b576c9fd2cd87cecaf1fd1182f88283e38a6e2f4c6c28549f98f22ad60949dcL8-L17): Replaced `Endpoint` and `Timeout` fields with `confighttp.ClientConfig` to handle HTTP client configuration. * [`exporter/bmchelixexporter/factory.go`](diffhunk://#diff-f69eea4d007085533aa8bb35cc91f6c41f1783a87998eaa3ddefd1730ea2d0fbR30-R54): Updated `createDefaultConfig` to use `confighttp.NewDefaultClientConfig` and adjusted the `createMetricsExporter` function to initialize the exporter properly. ##### Unit Tests: * [`exporter/bmchelixexporter/config_test.go`](diffhunk://#diff-b79eedb9dda64716aecd4902019fc29dc3ade40d26b5b32081d60d5c43d6fd4bL34-L45): Modified tests to accommodate changes in configuration structure and added helper function `createDefaultClientConfig`. * [`exporter/bmchelixexporter/exporter_test.go`](diffhunk://#diff-ed008fa0f26264e77c8516b3334f98fdc7f9bbac4fd7bc09719033c57331ad5fR1-R28): Added unit tests for `newBmcHelixExporter` function to ensure proper initialization. * `exporter/bmchelixexporter/metrics_producer.go`: Added unit tests. * `exporter/bmchelixexporter/metrics_client.go`: Added unit tests. ##### Changelog Entry: * [`.chloggen/bmchelixexporter-metrics-implementation.yaml`](diffhunk://#diff-e86aa08891f9688ad1995e82d398c481bedbbdea3903847c853585869c2feb65R1-R27): Added a new changelog entry for the BMC Helix Exporter metrics implementation. <!-- Issue number (e.g. open-telemetry#1234) or full URL to issue, if applicable. --> #### Link to tracking issue Fixes open-telemetry#36773 <!--Describe what testing was performed and which tests were added. #### Testing--> <!--Describe the documentation added.- #### Documentation-> <!--Please delete paragraphs that you did not use before submitting.-->
<!--Ex. Fixing a bug - Describe the bug and how this fixes the issue. Ex. Adding a feature - Explain what this achieves.--> #### Description This pull request introduces the BMC Helix exporter as a new component and marks it as Alpha. The changes include adding the BMC Helix exporter to various configuration files and updating its stability status. ### Addition of BMC Helix Exporter: * [`.chloggen/add-bmchelix-to-build.yaml`](diffhunk://#diff-73f91bea722874de9aa8f64da379018915873458021d431b0e4534ac141affb3R1-R27): Added a changelog template entry to mark the BMC Helix exporter as Alpha. * [`cmd/otelcontribcol/builder-config.yaml`](diffhunk://#diff-e544ba2c49af711a5eb01b4c980e3bef42daa2088f140d79de23fc79b10f1369R68): Included the `bmchelixexporter` in the list of exporters. * [`reports/distributions/contrib.yaml`](diffhunk://#diff-3ec0bc3053ed4dee6375471a38ee1b586e8335565c8ced2c072d2f885e63b376R27): Added `bmchelix` to the list of components in the contrib distribution. ### Stability Update: * [`exporter/bmchelixexporter/README.md`](diffhunk://#diff-a6513cb9bece579c6c0c3cfff40bdeac127fe06983e068319c0907ea86bca0edL6-R12): Updated the stability status from development to Alpha and specified the distribution as contrib. * [`exporter/bmchelixexporter/internal/metadata/generated_status.go`](diffhunk://#diff-f1ffa219036a11de849517010dd941abf177ddf334041974dc7032e8993c3257L15-R15): Changed the `MetricsStability` constant to Alpha. * [`exporter/bmchelixexporter/metadata.yaml`](diffhunk://#diff-5798995bb6b49e70bf0f62c0a2875569921869a8a300a3eceb9bf5c93ad5e474L6-R7): Updated the stability status to Alpha and added the contrib distribution. <!-- Issue number (e.g. #1234) or full URL to issue, if applicable. --> #### Link to tracking issue Fixes #36773 <!--Please delete paragraphs that you did not use before submitting.-->
The purpose and use-cases of the new component
The BMC Helix Exporter will transmit metrics from the OpenTelemetry Collector to BMC Helix Operations Management platform. It is designed to meet BMC Helix’s specific requirements on how data (metrics) is sent through the BMC Helix REST API and entity mapping standards.
Use Cases:
Metrics Integration:
Organizations using BMC Helix Operations Management would be able to integrate metrics received by the OpenTelemetry Collector.
Attributes to BMC Helix Mapping:
The exporter should dynamically map attributes (e.g.,
host.name
,service.name
,name
,id
) to BMC Helix's labels. The exporter should not implement any logic to determine the values for the mandatory labels (attributes required by BMC Helix)entityName
orentityTypeId
; it should only ensure that these two labels are available for a given metric. This guarantees that the payload is accepted by BMC Helix and avoids rejection due to missing fields.BMC Helix Metrics payload example:
Customization and Flexibility:
entityName
andentityTypeId
.Example configuration for the component
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.Example:
Optional Settings
The following settings can be optionally configured:
timeout
: (default =10s
) Timeout for requests made to the BMC Helix.retry_on_failure
:enabled
(default =false
): Enables retries for failed requests.initial_interval
(default =5s
): The time to wait after the first failure before retrying.randomization_factor
(default =0.5
): Random factor used to calculate next backoffs.multiplier
(default =1.5
): The value multiplied by the backoff interval bounds.max_interval
(default =30s
): The upper bound on backoff interval.max_elapsed_time
(default =5m
): The maximum amount of time (including retries) spent trying to send a request.Example:
Telemetry data types supported
Code Owner(s)
@bertysentry, @NassimBtk
Sponsor (optional)
Additional context
MetricTypeSum
andMetricTypeGauge
.The text was updated successfully, but these errors were encountered: