View a markdown version of this page

從與 EventBridge 直接整合的 APM 擷取警示 - AWS 事件偵測與回應使用者指南

從與 EventBridge 直接整合的 APM 擷取警示

以下主題顯示從與 Amazon EventBridge 直接整合的應用程式效能監控 (APM) 工具傳送警示至 AWS 事件偵測與回應的程序。如需與 Amazon EventBridge 直接整合的完整 APM 清單,請參閱 Amazon EventBridge 整合

您可以部署提供的 CloudFormation 範本,或手動設定此整合。設定整合之前,請確認您的帳戶中已建立 AWS 服務連結角色 (SLR) AWSServiceRoleForHealth_EventProcessor

選項 1:使用 CloudFormation

CloudFormation 範本可用來簡化建立整合基礎結構的程序,須有此基礎結構才能從與 Amazon EventBridge 整合的 APM 將警示擷取至 AWS 事件偵測與回應。

注意
  • 透過此 CloudFormation 範本部署的資源會產生其他成本 (例如 Lambda 和 EventBridge)。如需這些服務定價的詳細資訊,請參閱 AWS 定價

  • 在 AWS 事件偵測與回應需要擷取警示的每個 AWS 帳戶和區域中部署此 CloudFormation 範本。事件和支援案例會在發出 APM 警示的 AWS 帳戶上開啟。

  • 本文件使用 New Relic 作為範例,但 CloudFormation 範本可用於具有與 Amazon EventBridge 的 SaaS 整合的任何 APM。

  • 整合測試完成後,從 TransformLambdaFunction 移除 logger.info() 陳述式,以防止承載出現在 Amazon CloudWatch Logs 中。

部署此 CloudFormation 範本的先決條件:

  • 您必須在 Amazon EventBridge 中設定合作夥伴事件來源。如需將 APM 設定為事件來源的指示,請參閱《Amazon EventBridge 使用者指南》中的透過 Amazon EventBridge 從 SaaS 合作夥伴接收事件

  • 範本中的 TransformLambdaFunction (Lambda 函式) 必須經過修改,才能根據 APM 承載中警示名稱的 JSON 路徑將 ["detail"]["incident-detection-response-identifier"] 設定為所需的值。

先決條件步驟:

  1. 開啟 EventBridge 主控台。在整合功能表下,選取合作夥伴事件來源

    • 在 Amazon EventBridge 合作夥伴方塊中搜尋您的 APM。

    • 選擇設定,然後依照提供的指示進行。

      • 注意:最後一個步驟是在主控台中,針對合作夥伴事件來源選擇與事件匯流排建立關聯。選取此選項會自動建立與合作夥伴事件匯流排,且其名稱與合作夥伴事件來源相同 (兩者的名稱必須相符)。

    • 複製合作夥伴事件匯流排或來源的名稱。部署 CloudFormation 範本時,會使用事件匯流排或來源作為參數,名為 PartnerEventBusNameParameter

      • New Relic 的範例aws.partner/newrelic.com/1234567/source_name

    • 部署 CloudFormation 範本時,複製合作夥伴事件匯流排或來源的第一個部分,以輸入 PartnerEventBusPrefixParameter 中。

      • New Relic 的範例為 aws.partner/newrelic.com

  2. 下載並編輯 CloudFormation 範本

    • 在範本中尋找 TransformLambdaFunction

    • def lambda_handler(event, context) 下,將 event["detail"]["incident-detection-response-identifier"] 設定為 json 路徑,其中警示名稱會出現在 APM 警示的 JSON 承載中。每個 APM 都會有不同的路徑。以下提供一些範例,但您的特定承載可能會有所不同。

      • New Relic 範例:event["detail"]["incident-detection-response-identifier"] = event["detail"]["workflowName"]

      • Datadog 範例:event["detail"]["incident-detection-response-identifier"] = event["detail"]["meta"]["monitor"]["name"]

      • Splunk 範例:event["detail"]["incident-detection-response-identifier"] = event["detail"]["ruleName"]

    • 儲存 CloudFormation 範本。

部署 CloudFormation 範本:

  1. 在您的目標帳戶和區域中開啟 CloudFormation 主控台。

  2. 選擇「建立堆疊」、「使用新資源 (標準)」

    • 選取選擇現有範本上傳範本檔案選擇檔案,然後上傳您儲存在本機上的 CloudFormation 範本。

  3. 指定堆疊詳細資訊:

    • 輸入堆疊名稱 (範例:NewRelicIntegrationForIDR)。

    • 指定先決條件完成期間取得的參數值

      • APMNameParameter (範例NewRelic)

      • PartnerEventBusNameParameter (範例aws.partner/newrelic.com/1234567/source_name)

      • PartnerEventBusPrefixParameter (範例aws.partner/newrelic.com)

    • 選擇下一步

  4. 設定堆疊選項:

    • 捲動至頁面底部並勾選方塊,以允許 CloudFormation 使用自訂名稱建立 IAM 資源。

  5. 檢閱和建立:

    • 驗證參數值的設定正確無誤,然後選擇提交

  6. CloudFormation 堆疊會部署必要的資源,以將 APM 事件整合到 AWS 事件偵測與回應。等待堆疊狀態顯示為 CREATE_COMPLETE

  7. CloudFormation 堆疊會建立下列資源,假設範例值已輸入 New Relic 的參數中,且在 US-EAST-1 區域中執行。

    • CustomEventBus: NewRelic-AWSIncidentDetectionResponse-EventBus

    • EventBridgeRule: aws.partner/newrelic.com/1234567/source_name|NewRelic-AWSIncidentDetectionResponse-EventBridgeRule

    • TransformLambdaExecutionRole: IDR-TransformLambdaExecutionRole-us-east-1

    • TransformLambdaFunction: NewRelic-AWSIncidentDetectionResponse-Lambda-Transform

    • TransformLambdaPermission: NewRelicIntegrationForIDR-TransformLambdaPermission-[random_string]

整合測試

部署堆疊之後,從您的 APM 傳送測試承載來測試整合:

  1. 瀏覽至 Lambda 主控台,然後選取 APMNameParameter-AWSIncidentDetectionResponse-Lambda-Transform 函式。選擇監控索引標籤。

  2. 在指標圖中尋找成功的調用。

  3. 選擇檢視 Amazon CloudWatch Logs,以查看測試承載的日誌串流或任何錯誤。

將您的事件匯流排 ARN 與 AWS 事件偵測與回應共用

  1. 開啟 Amazon EventBridge 主控台。選取事件匯流排

  2. 複製隨 CloudFormation 堆疊一起建立的自訂事件匯流排的 ARN (範例:arn:aws:events:us-east-1:123456789123:event-bus/NewRelic-AWSIncidentDetectionResponse-EventBus)。

    • 將此 ARN 新增至 警示擷取問卷 - 概觀 的「第三方 APM 警示」區段中的「EventBridge 事件匯流排 ARN」欄位。

  3. 在上線過程中,AWS 事件偵測與回應會在此自訂事件匯流排上建立受管 EventBridge 規則,以擷取您的 APM 警示。

選項 2:手動整合

圖中顯示使用合作夥伴事件匯流排或其他 AWS 事件匯流排來源的整合範例。

針對 AWS 事件偵測與回應需要從中擷取警示的每個 AWS 帳戶和 AWS 區域,完成下列步驟。AWS 事件偵測與回應會建議您在應用程式資源所在的相同 AWS 帳戶和區域中設定警示,以便更快識別和調查受影響的資源。事件和支援案例會在發出 APM 警示的 AWS 帳戶上開啟。

  1. 將您的 APM 設定為 Amazon EventBridge 合作夥伴事件來源 (例如 aws.partner/apm_name/integrationName),以建立 EventBridge 合作夥伴事件匯流排。如需將 APM 設定為事件來源的指引,請參閱透過 Amazon EventBridge 從 SaaS 合作夥伴接收事件

  2. 執行下列其中一項:

    • (建議方法) 建立 EventBridge 自訂事件匯流排,名為 $YourApmName-AWSIncidentDetectionResponse-EventBus

    • (替代方法) 使用預設 EventBridge 事件匯流排,而不使用自訂事件匯流排。

    AWS 事件偵測與回應會透過 AWSServiceRoleForHealth_EventProcessor SLR,在自訂或預設事件匯流排上安裝受管規則 (AWSHealthEventProcessorEventSource-DO-NOT-DELETE)。規則來源將是自訂或預設事件匯流排,規則目的地將是 AWS 事件偵測與回應,且規則將符合擷取第三方 APM 事件的模式。

  3. 建立名為 $YourApmName-AWSIncidentDetectionResponse-LambdaFunctionLambda 函式來轉換您的合作夥伴事件匯流排事件。轉換後的事件將符合受管規則 AWSHealthEventProcessorEventSource-DO-NOT-DELETE

    • 轉換後的事件包含唯一的 AWS 事件偵測與回應識別碼,並且會將事件的來源和詳細資訊類型設定為所需的值。這可讓轉換後的 JSON 承載結構符合受管規則模式。

    • 將 Lambda 函式的目標設定為步驟 2 中建立的自訂事件匯流排 (建議方法),或設定為預設事件匯流排。

  4. 建立 EventBridge 規則,並定義比對您要推送至 AWS 事件偵測與回應之事件清單的事件模式。規則的來源是您在步驟 1 中建立的合作夥伴事件匯流排 (aws.partner/apm_name/integrationName)。規則的目標是您在步驟 3 中建立的 Lambda 函式 ([apm_name]-AWSIncidentDetectionResponse-LambdaFunction)。如需定義 EventBridge 規則的指引,請參閱 Amazon EventBridge 規則

如需如何手動設定合作夥伴事件匯流排與 AWS 事件偵測與回應之整合的逐步範例,請參閱整合來自 Datadog 和 Splunk 的通知