Skip to end of metadata
Go to start of metadata

You are viewing an old version of this content. View the current version.

Compare with Current View Version History

« Previous Version 5 Next »

Amazon DevOps Guru is an operational tool that improves application availability using machine learning to analyse resource telemetry to identify potential operational issues and also recommend remediation actions.

What does the integration offer?

Compass acts as a dispatcher for the insights generated by DevOps Guru, determines the right people to notify based on on-call schedules– notifies them using email, text messages (SMS), phone calls and iPhone & Android push notifications, and escalates alerts until the alert is acknowledged or closed. DevOps Guru generates the insights and Compass ensures the right people are working on them.

How does the integration work?

  • When an insight is generated in DevOps Guru, an alert is created in Compass automatically through the integration, with a priority based on the type and severity of the insight.

  • When an insight is resolved in DevOps Guru, related alert is closed in Compass automatically through the integration.

  • When an anomaly is added to the insight by DevOps Guru, it is reflected on the Compass alert as a note.

Set up the integration

Amazon DevOps Guru is an API-based integration. Setting it up involves the following steps:

  • Add a DevOps Guru integration in Compass

  • Configure the integration in DevOps Guru

Add a DevOps Guru integration

Bidirectional integrations aren’t supported in the Standard plan. All the other integrations are supported at a team level in Standard.

If you're using the Standard plan in Compass, you can add this integration only from your team’s operations page. Adding an integration from your team’s operations page makes your team the owner of the integration. This means Compass only assigns the alerts received through this integration to your team.

To add a DevOps Guru integration in Compass, complete the following steps:

  1. Go to your team’s operations page.

  2. On the left navigation panel, select Integrations and then Add integration.

  3. Run a search and select “DevOps Guru”.

  4. On the next screen, enter a name for the integration.

  5. Optional: Select a team in Assignee team if you want a specific team to receive alerts from the integration.

  6. Select Continue.
    The integration is saved at this point.

  7. Expand the Steps to configure the integration section and copy the API URL.
    You will use this URL while configuring the integration in DevOps Guru later.

  8. Select Turn on integration.
    The rules you create for the integration will work only if you turn on the integration.

Configure Amazon SNS to send messages to Compass

To configure Amazon SNS to send SNS messages to Compass, complete the following steps:

  1. On the Amazon SNS console, select Topics.

  2. Select Create topic.

  3. For Type, select Standard.

  4. Enter a name for the topic. For example, operational-insights.

  5. Leave the default settings as they’re or configure them to suit your needs.

  6. Select Create Topic.

  7. Scroll down to the Subscriptions section and select Create subscription.

    1. For Protocol, select HTTPS.

    2. For Endpoint, use the subscription URL you copied previously from Compass.

  8. Leave the remaining options as they’re, or configure them to suit your needs.

  9. Select Create subscription.

Upon creating the subscription, Amazon SNS sends a confirmation message to your Compass integration, which Compass automatically acknowledges. You should receive a confirmation alert.

Set up Amazon DevOps Guru

The first time you browse to the DevOps Guru console, enable DevOps Guru to operate on your account.

  1. On the DevOps Guru console, select Get Started.

  2. If you have already enabled DevOps Guru, select Settings and add your SNS topic.

  3. Select the resources you want to monitor.

  4. Select Select an existing SNS topic.

  5. Select the topic you created earlier (operational-insights).

  6. Select Add SNS topic.

  7. Select Enable (or Save if you’ve already enabled the service).

Sample payload sent from DevOps Guru

Create Alert payload

JSON

{
    "Type": "Notification",
    "MessageId": "1cf7a0eb-4179-4181-b15b-ea22c5aa0280",
    "TopicArn": "arn:aws:sns:us-east-1:089311581210:test-sns",
    "Message":"{\"AccountId\":\"123456789012\",\"InsightId\":\"abc123a7-17a3-46d9-b895-1ae38317ced2\",\"InsightDescription\":\"Lambda Errors Anomalous\",\"InsightUrl\":\"https://console.aws.amazon.com/codeguru/devopsguru?#/insight/reactive/ABCDabcdAAAAAAAAAcXzDoJsi_kvAhzmKKUGk6CSixyzABC\",\"Region\":\"us-east-1\",\"InsightSeverity\":\"low\",\"MessageType\":\"NEW_INSIGHT\",\"InsightType\":\"REACTIVE\",\"StartTime\":\"Jan 24th 2010 4:55:123\",\"EndTime\":\"Jan 24th 2010 4:55:123\",\"Anomalies\":[{\"Id\":\"123abcd1-62cb-4161-986c-0be917d42706\",\"StartTime\":\"Jan 24th 2010 2:55:123\",\"EndTime\":\"Jan 24th 2010 3:55:123\",\"DataIdentifiers\":{\"Namespace\":\"AWS/DynamoDB\",\"Metric\":\"ConsumedReadCapacityUnits\",\"stats\":\"Sum\",\"Resources\":[{\"ResourceType\":\"Table\",\"ResourceId\":\"arn:..../tablename\"}]}}],\"Recommendations\":[{\"Title\":\"Configure provisioned concurrency for Lambda\",\"Description\":\"Your Lambda function is having trouble scaling. See this link to learn how to enable provisioned...\",\"Reason\":\"The Duration metric in Lambda breached a high threshold.\",\"Url\":\"https://docs.aws.amazon.com/lambda/latest/dg/configuration-concurrency.html#configuration-concurrency-provisioned\",\"RelatedMetrics\":[],\"RelatedEvents\":[]}]}",
    "Timestamp": "2012-08-05T22:31:30.673Z",
    "SignatureVersion": "1",
    "Signature": "XrsO2wtE0b+ofOl1Z85tqLqQn1fMuv07uRttlimTUg+rV4U9RmNSSBEdlmyWvtGgpjebsmNv1wkjUsBQOJZjZnpZp5FBn6quAn3twNdRMmMLf15lv6ESbYF8mpFHwmMhgWVkgq60vmjj/ZLwiH9Pr/cxVYOR0aPQBPDwTYn8w6g=",
    "SigningCertURL": "https://sns.us-east-1.amazonaws.com/SimpleNotificationService-f3ecfb7224c7233fe7bb5f59f96de52f.pem",
    "UnsubscribeURL": "https://sns.us-east-1.amazonaws.com/?Action=Unsubscribe&SubscriptionArn=arn:aws:sns:us-east-1:089311581210:CloudWatchHTTPAlarms:1841c5ca-ddda-450e-bbfb-bf0cf15813db"
}

Compass parses the payload as follows:

JSON

{
  "TopicArn": "arn:aws:sns:us-east-1:089311581210:test-sns",
  "AccountId": "123456789012",
  "InsightId": "abc123a7-17a3-46d9-b895-1ae38317ced2",
  "InsightDescription": "Lambda Errors Anomalous",
  "InsightUrl": "https://console.aws.amazon.com/codeguru/devopsguru?#/insight/reactive/ABCDabcdAAAAAAAAAcXzDoJsi_kvAhzmKKUGk6CSixyzABC",
  "Region": "us-east-1",
  "InsightSeverity": "low",
  "MessageType": "NEW_INSIGHT",
  "InsightType": "REACTIVE",
  "StartTime": "Jan 24th 2010 4:55:123",
  "EndTime": "Jan 24th 2010 4:55:123",
  "AnomalyDetails": [
    {
      "Id": "AP8fPq2F7cSqdkgAWTkeU2YAAAF1_GN9YIxzoKM_WkDOJim_ozMyiajN5VGZ5zqg",
      "StartTime": 1606257180000,
      "EndTime": 1606260300000,
      "SourceDetails": [
        {
          "DataSource": "CW_METRICS",
          "DataIdentifiers": {
            "name": "Duration",
            "namespace": "AWS/Lambda",
            "period": "60",
            "stat": "Average",
            "unit": "None",
            "dimensions": "{\"FunctionName\": \"awscodestar-random-lambda-GetHelloWorld\"}"
          }
        }
      ]
    }
  ],
  "Recommendations": [
    {
      "Title": "Configure provisioned concurrency for Lambda",
      "Description": "Your Lambda function is having trouble scaling. See this link to learn how to enable provisioned...",
      "Reason": "The Duration metric in Lambda breached a high threshold.",
      "Url": "https://docs.aws.amazon.com/lambda/latest/dg/configuration-concurrency.html#configuration-concurrency-provisioned",
      "RelatedMetrics": [ ],
      "RelatedEvents": [ ]
    }
  ]
}

 

  • No labels