Integrating with Prometheus to collect events via webhook
You can view the collected data in various BMC Helix applications and derive the following benefits:
BMC Helix application | Type of data collected or viewed | Benefits |
---|---|---|
BMC Helix Operations Management | Events (alerts received as events) | Use a centralized event view to monitor, filter, and manage events, and perform event operations in one place. Process events to help identify actionable events quickly from a large volume of event data. For more information, see Monitoring events and reducing event noise. |
BMC Helix Dashboards | Events | Create dashboards to get a consolidated view of data collected from third-party products across your environment. For more information, see Creating and customizing custom dashboards. |
As a tenant administrator, perform the following steps to collect data from Prometheus through BMC Helix Intelligent Integrations.
Supported versions
BMC Helix Intelligent Integrations supports the following Prometheus versions for collecting events data via a webhook:
- Prometheus version 3.1
- Prometheus version 2.36
- Alertmanager version 0.27
Task 1: To plan for the connection
Review the following prerequisites to help you plan and configure a connection with Prometheus via a webhook.
Prometheus prerequisite
If you want to collect events data by using the custom JSLT mapping, prepare the events JSLT mapping, as shown in the
following example:
BMC Helix Intelligent Integrations prerequisites
- Depending on the location of the third-party product (SaaS, on-premises), choose one or more BMC Helix Intelligent Integrations deployment modes and review the corresponding port requirements. For information about various deployment modes and port requirements, see Deployment scenarios.
- Based on the deployment mode, use the BMC Helix Intelligent Integrations SaaS deployment or the BMC Helix Intelligent Integrations on-premises gateway or both. For more information about the gateway, see Deploying the BMC Helix Intelligent Integrations on-premises gateway.
In the preceding list, third-party product refers to Prometheus.
Task 2: To configure the connection with Prometheus via a webhook
- Depending on the deployment mode, perform one of the following steps to access BMC Helix Intelligent Integrations:
- BMC Helix Intelligent Integrations SaaS – Log on to BMC Helix Portal, and click Launch on BMC Helix Intelligent Integrations.
- BMC Helix Intelligent Integrations on-premises gateway – Use the following URL to access BMC Helix Intelligent Integrations: https://<hostName>:<portNumber>/swpui
- On the CONNECTORS tab, click
in the SOURCES panel.
Click
the
Prometheus
Alert Manager Webhook tile.
- Specify a unique instance name for the source connection:
- Click VALIDATE AND CREATE.
The specified connection details are validated and the corresponding source connection is created in the Source Connection list. - Verify that the source connection you created is selected.
Click CREATE COLLECTORS to create the required collector streams for the selected data types.
Click a data type and specify the configuration parameters in the Distributors section as described in the following table:
Parameter name
Description
Max Batching Size
Specify the maximum number of data items to send in a single POST request to the destination API.
The batch size depends on the destination’s ability to buffer the incoming data.
Default: 250
Max Batching Delay
Specify the maximum time (in seconds) to wait before the system builds and processes a batch.
Default: 3 seconds
Base Retry Delay
Specify the initial time (in seconds) for which to wait before the system tries to rebuild and process a batch.
The waiting time increases in the following sequence: n1, n2, n3, and so on, where n indicates the number of seconds.
Default: 2 seconds
Example:
Base Retry Delay is set to 2 seconds.
Retry is performed after 2, 4, 8, 16, and so on, seconds.
Max Intra-Retry Delay
Specify the maximum limit for the base retry delay.
Default: 60 seconds
Example:
Max Intra-Retry Delay is set to 60 seconds.
Base Retry Delay is set to 2 seconds.Retries are performed 2, 4, 8, 16, 32, and so on, seconds later.
Max Retry Duration
Specify the total time for which the system retries a delivery. For REST destinations, a delivery is a batch of data items in one POST request.
Default: 5 minutes
Example:
Max Retry Duration is set to 8 hours.
Base Retry Delay is set to 2 seconds.Requests are sent for 2+4+8+16+32+64+132, and so on, until 8 hours in total duration is reached. After that, no subsequent attempts are made to retry the delivery.
The assumption here is that if there is an outage or other issue with the destination tool, the recovery time should be less than the value of the Max Retry Duration parameter.
Attributes To Be Dropped When Updating Events
Specify the event attributes that you do not want to be updated in BMC Helix Operations Management when events are updated.
For example, if you do not want an event's severity, source address, source category, and subcategory to be updated in BMC Helix Operations Management, you need to specify those attributes in a comma-separated format: severity,source_address,source_category,source_subcategory
Important:
You can obtain the event attribute names in BMC Helix Operations Management by exporting any event data in JSON, BAROC, XML, or CSV format. The exported file contains all attributes of the event data, and from there you can identify the attributes to be dropped.
Click CREATE DISTRIBUTORS to create the required distributor streams for the selected data types.
Click VALIDATE AND CREATE and then click SAVE STREAM to save the stream.
After you save the stream, the connection that you just created is listed on the SOURCES panel.Perform the following steps to enter the custom JSLT mapping:
- On the SOURCES panel, click Configure Mediator
for the source connection that you created and then expand PROMETHEUS ALERTS WEBHOOK and navigate to the DISTRIBUTOR CONFIGURATION tab.
- To view JSON in the edit mode, click Edit JSON.
- Search for the following line: "jsltField": "//NO JSLT",
- Delete the existing value from the jsltField field; the result should look as follows:"jsltField": "",
- To disable the edit mode for JSON, click Edit JSON.
- In the JSLT field, enter the JSLT that you have prepared according to the sample shown in Prometheus prerequisite.
- Click SAVE & CLOSE.
- On the SOURCES panel, click Configure Mediator
Navigate to the COLLECTOR CONFIGURATION tab.
Click copy
to copy the auto-generated Prometheus webhook collector URL and save it in a temporary file.
Depending on whether you are using only SaaS deployment of BMC Helix Intelligent Integrations or BMC Helix Intelligent Integrations on-premises gateway, perform the following steps:
If you are using only SaaS deployment of BMC Helix Intelligent Integrations or the on-premises gateway with authentication enabled, perform the following steps:
Log on to BMC Helix Portal and generate an access key.
For instructions, see Setting up access keys for programmatic access.Copy the generated access key and save it in a temporary file.
The key is generated in the following format: <accessKey>::<secretKey>,tenant id:<tenantID>.Change the format of the access key to <tenantID>::<accessKey>::<secretKey>.|
In a temporary file, modify the auto-generated collector URL by replacing API-KEY with the access key that you formatted in the previous step.
Configure Prometheus to forward incidents data to BMC Helix Intelligent Integrations.
If you are using the on-premises gateway with authentication disabled, perform the following steps:
Save the URL in a temporary file.
Remove the following string from the collector URL:?token=API-KEY
The updated collector URL looks like the following example:Configure Prometheusto forward incidents data to BMC Helix Intelligent Integrations.
On the SOURCES panel, move the slider to the right to start the data stream for the connector you created.
Task 3: To configure Prometheus to forward alerts data to BMC Helix Intelligent Integrations
- Log in to the host where Prometheus is installed.
- Navigate to <Prometheus_install_DIR>/etc/alertmanager/ directory and open the config.yml file with a text editor.
In the webhook_configs section, under the receivers section, replace the existing URL with the URL you prepared in step 14, as shown in the following example:
receivers:
- name: 'webhook-hii'
webhook_configs:
- url: 'https://hostA/hii/api/mediator/v3/push/5a092cf4-e795-43f6-a3af-e2c3d9ee1e9a?token=385261281::Y40OSC49QZA11Q8A1H9H6::MnVLk69TNyCEponsthHJ1Hj1uKcjTB'- Save and close the config.yml file.
- Start the data stream; see step 15.
Task 4: To verify the connection
In BMC Helix Intelligent Integrations, on the SOURCES panel, confirm that the data streams for the connection you created are running. Data streaming is indicated by moving colored arrows.
A moving dark blue arrow () indicates that the event stream is running. Event data is pushed as soon as events are available.
To view events in BMC Helix Operations Management
- In BMC Helix Operations Management, select Monitoring > Events.
- Filter the events by the PrometheusAlert class.
Incoming events from Prometheus are processed in BMC Helix Operations Management through a set of deduplication rules to determine whether the incoming event is a duplicate event or a new event. For more information, see Event-deduplication-suppression-and-closure-for-reducing-event-noise.
For information about events, see Monitoring and managing events.