Integrations

This section describes the integrations available for alerting.

Alerts are sent to channels.

See provisioning for integration into your CI/CD pipelines.

AWS Cloud Watch

To send alerts to AWS Cloud Watch, you first need an AWS connection. Go to Admin->Connections->New Connection->AWS. Enter your AWS Credentials.

Rather than enter your AWS credentials you can use the AWS credentials chain.

Next, go to Admin->Alerts->Channels->New Channel->AWS Cloud Watch.

Select an AWS connection.

Datadog

To send alerts to Datadog, you first need a Datadog connection. Go to Admin->Connections->New Connection->DataDog. Enter your API, Application Key and Site.

Next, go to Admin->Alerts->Channels->New Channel->Data Dog.

Select a DataDog connection.

Pager Duty

To send alerts to Pager Duty, you first need a Pager Duty connection. Go to Admin->Connections->New Connection->PagerDuty. Enter your Service Integration Key.

Next, go to Admin->Alerts->Channels->New Channel->Pager Duty.

Select the pager duty connection.

Prometheus Alert Manager

To send alerts to Pager Duty, you first need a Pager Duty connection. Go to Admin->Connections->New Connection->Prometheus.

  1. Select your Prometheus connection

  2. Set the Source

  3. Set the GeneratorURL for your Alert Manager instance

Slack

To send alerts to Slack, you first need a Slack connection. Go to Admin->Connections->New Connection->Slack. Enter your Slack webhook URL.

Next, go to Admin->Alerts->Channels->New Channel->Slack.

Enter the Slack channel you want to send alerts to.

Webhook

Webhooks allow you to send alerts to any service implementing them, they are very flexible.

First, you need a Webhook connection. Go to Admin->Connections->New Connection

Enter the URL, port and credentials.

Create a Channel to use the connection. Go to Admin->Alerts->Channels->New Channel.

  1. Choose a name for your Channel instance.

  2. Select your connection.

  3. Set the HTTP method to use.

  4. Set the Request pathA URI0 encoded request path, which may include a query string. Supports alert-variable interpolation.

  5. Set the HTTP Headers

  6. Set the Body payload

Template variables

In Request path, HTTP Headers and Body payload there is a possibility of using template variables, which will be translated to alert specific fields. To use template variables, you have to use this format: {{VARIABLE}}, i.e. {{LEVEL}}.

Supported template variables:

  • LEVEL - alert level (INFO, LOW, MEDIUM, HIGH, CRITICAL).

  • CATEGORY - alert category (Infrastructure, Consumers, Kafka Connect, Topics, Producers).

  • INSTANCE - (broker url / topic name etc.).

  • SUMMARY - alert summary - same content in the Alert Events tab.

  • TIMESTAMP

  • ID - alert global id (i.e. 1000 for BrokerStatus alert).

  • CREDS - CREDS[0] etc. - variables specified in connections Credentials as a list of values separated by a comma.

Webhook Email

To configure real-time email alerts you can leverage Webhooks, for example with the following service:

  • Twilio and SendGrid

  • Zapier

SendGrid Example

  1. Create a webhook connection, for SendGrid with api.sendgrid.com as the host and enable HTTPS

  2. Configure a channel to use the connect you just created

  3. Set the method to Post

  4. Set the request path to the webhook URL from your Zapier account

  5. Set the Headers to

HTTP Headers

Authorization: Bearer [your-Sendgrid-API-Key]

Content-Type: application/json

  1. Set the payload to be

{
  "personalizations":[{
    "to":[{
      "email":"devops@mycompany.com",
      "name":"DevOps & SRE team | MyCompany"
    }],
    "subject":"PRODUCTION | Streaming Data Platform Alert"
  }],
  "content":[{
    "type":"text/html",
    "value":"<html><body><p>Priority Level:{{LEVEL}}</br></br>Category: {{CATEGORY}}</br><br>Description: {{SUMMARY}}</br><small>Alert ID: {{ID}}</small></p></body></html>"
  }],
  "from":{
    "email":"sender-email-address",
    "name":"sender name ie. PRODUCTION | Streaming Data"
  },
  "reply_to":{
    "email":"reply-to-email-address",
    "name":"reply to name"
  }
}

Change the above payload according to your requirements, and remember that the [sender-email-address] needs to be the same email address you registered during the Sender Authentication Sendgrid setup process.

Zapier Example

  1. Create a webhook connection, for SendGrid with hooks.zapier.com as the host and enable HTTPS

  2. Configure a channel to use the connect you just created

  3. Set the method to Post

  4. Set the request path tp /v3/mail/send

  5. Set the request path to the webhook URL from your Zapier account

  6. Set the Headers to:

X-Api-Token: {{CREDS[0]}
  1. Set the payload to be

<html>
  <body>
    <h2>Streaming data platform - alert</h2>
    <p>Environment: <a href="http://enjoy.lenses.io"><b>PRODUCTION</b></a></p>
    <p>Priority Level: <b>{{LEVEL}}</b></p>
    <p>Category: <b>{{CATEGORY}}</b></p>
    <p>Summary: {{SUMMARY}}</p>
    <p>Alert ID: {{ID}}</p>
    <p><small>Lenses.io</small></p>
  </body>
</html>

Webhook MS Teams

To create a webhook in your MS Teams workspace you can use this guide.

At the end of the process you get a url of the format: https://YOUR_URL.webhook.office.com/webhook2/<secret-token-by-ms>/IncomingWebhook/<secret-token-by-ms>

You’ll need the second part

/webhook2/<secret-token-by-ms>/IncomingWebhook/<secret-token-by-ms>

  1. Create a new Webhook Connection, set the host to outlook.office.com and enable HTTPS

  2. Configure an new channel, using this connection

  3. Set the Method to POST

  4. The Request Path to the second part of the URL you recieved from MS Teams

/webhook2/<secret-token-by-ms>/IncomingWebhook/<secret-token-by-ms>

  1. In the body set

{"text": "{{CATEGORY}} {{LEVEL}} {{ID}}"}

Webhook SMS

See Zapier and follow blog post SMS alerts with Zapier.

Last updated

Logo

2024 © Lenses.io Ltd. Apache, Apache Kafka, Kafka and associated open source project names are trademarks of the Apache Software Foundation.