Wavefront

Steps to configure Wavefront integration for incident management, using Squadcast

Wavefront is a high-performance streaming analytics platform that supports observability for metrics, counters, histograms, and traces/spans.

Wavefront is unique because it scales to very high data ingestion rates and query loads. You can collect data from many services and sources across your entire application stack, and can look at details for earlier data that were ingested earlier.

You can use our Wavefront integration to route details events from Wavefront to the right users in Squadcast.

How to integrate Wavefront with Squadcast

In Squadcast: Using Wavefront as an Alert Source

  1. Navigate to Services -> Service Overview -> select or search for your Service. Expand the accordion -> In the Alert Sources section, click Add.

2. Select Wavefront. Copy the displayed Webhook URL to configure it within Wavefront. Finish by clicking Add Alert Source -> Done.

Important:

When an alert source turns Active, it’ll show up under Configured Alert Sources. You can either generate a test alert from the integration or wait for a real-time alert to be generated by the Alert Source.

An Alert Source is active if there is a recorded incident via that Alert Source for the Service.

In Wavefront: Create a Squadcast Webhook

1. From the Home Page, navigate to Browse and select Alert Targets from the dropdown

2. Click on Create Alert Target to add a Webhook for Squadcast

3. Here:

  • Give it a Name

  • Give it a Description

  • In Triggers, select Alert Firing and Alert Resolved

  • In Type, select Webhook

  • In Recipients, paste the previously copied Webhook from Squadcast in Default Recipient

  • For Content Type, select application/json

  • In Body Template, select Generic Webhook

  • Paste the below as is in the placeholder for the template

{{! https://docs.wavefront.com/webhooks_alert_notification.html#customizing-alert-target-templates }}
{{#setDefaultIterationLimit}}500{{/setDefaultIterationLimit}}
{{#setFailingLimit}}500{{/setFailingLimit}}
{{#setInMaintenanceLimit}}500{{/setInMaintenanceLimit}}
{{#setNewlyFailingLimit}}500{{/setNewlyFailingLimit}}
{{#setRecoveredLimit}}500{{/setRecoveredLimit}}
{
  "getIterationLimit": {
    "defaultIterationLimit": "{{{defaultIterationLimit}}}",
    "failingLimit": "{{{failingLimit}}}",
    "inMaintenanceLimit": "{{{inMaintenanceLimit}}}",
    "newlyFailingLimit": "{{{newlyFailingLimit}}}",
    "recoveredLimit": "{{{recoveredLimit}}}"
  },
  "iterationLimitExceed": {
    {{! These boolean values are used to check whether the iterationLimit is limiting the number of the result returned. }}
    "failingLimitExceed": "{{{failingLimitExceed}}}",
    "inMaintenanceLimitExceed": "{{{inMaintenanceLimitExceed}}}",
    "newlyFailingLimitExceed": "{{{newlyFailingLimitExceed}}}",
    "recoveredLimitExceed": "{{{recoveredLimitExceed}}}"
  },
  "alertId": "{{{alertId}}}",
  "alertTags": [
    {{#trimTrailingComma}}
      {{#alertTags}}
        "{{#jsonEscape}}{{{.}}}{{/jsonEscape}}",
      {{/alertTags}}
    {{/trimTrailingComma}}
  ],
  "tracingDashboardLinks": [
    {{#trimTrailingComma}}
      {{#tracingPageLinks}}
        "{{{.}}}",
      {{/tracingPageLinks}}
    {{/trimTrailingComma}}
  ],
  "imageLinks": [
    {{#trimTrailingComma}}
      {{#imageLinks}}
        "{{#jsonEscape}}{{{.}}}{{/jsonEscape}}",
      {{/imageLinks}}
    {{/trimTrailingComma}}
  ],
  "reason": "{{{reason}}}",
  "name": "{{#jsonEscape}}{{{name}}}{{/jsonEscape}}",
  "severity": "{{{severity}}}",
  "condition": "{{#jsonEscape}}{{{condition}}}{{/jsonEscape}}",
  "url": "{{{url}}}",
  "chartUrl": "{{{chartUrl}}}",
  "subject": "{{#jsonEscape}}{{{subject}}}{{/jsonEscape}}",
  "hostsFailingMessage": "{{#jsonEscape}}{{{hostsFailingMessage}}}{{/jsonEscape}}",
  "runbookLinks": [
  {{#trimTrailingComma}}
    {{#runbookLinks}}
      "{{{.}}}",
    {{/runbookLinks}}
  {{/trimTrailingComma}}
],
  "additionalInformation": "{{#jsonEscape}}{{{additionalInformation}}}{{/jsonEscape}}"
}
  • Click on Save

You will now be able to see this newly created Alert Target being listed under Alert Targets

4. Now from the navigation bar on the top, select Alerts. You can choose to edit an existing alert and create a new alert

5. In either case, for the alert, in Target List, choose the newly added Webhook for Squadcast in Alert Target and save the configuration

6. For the alert, now you can click on the More option to trigger a Test Alert to Squadcast. An incident for this test alert will be triggered indicating the integration is working as expected

That is it, you are good to go!

  • Every time an alert is created in Wavefront, an incident would be created in Squadcast.

  • When the Alert is resolved in Wavefront, the corresponding incident in Squadcast will be automatically resolved.

Have any questions? Ask the community.

Last updated