如何將相關資訊新增至傳送至 CloudWatch 的自訂遙測 - Amazon CloudWatch

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

如何將相關資訊新增至傳送至 CloudWatch 的自訂遙測

當您將自己的指標和日誌發佈至 CloudWatch 時,根據預設,相關遙測所需的實體資訊不存在。當您將指標傳送至 CloudWatch 或日誌傳送至 CloudWatch Logs (使用 PutMetricDataPutLogEvents 操作) 時,您可以將實體資訊新增至這些日誌或指標。實體資訊與遙測相關聯,並用於探索相關功能,以尋找與相同實體相關聯的相關遙測。

使用遙測傳送的實體代表與遙測相關聯的資源或服務。例如,有關 服務或來自 AWS 資源的指標。若要識別程式碼中相關聯的實體,您可以建立一組實體AttributesKeyAttributes和選用實體。

注意

CloudWatch 只能尋找過去三小時內已傳送遙測的實體的相關資源。如果您的資源只發出稀疏遙測 (少於每 3 小時一次),您可能想要傳送額外的活動訊號遙測,以在 CloudWatch 中保持實體作用中。

如需如何新增實體資訊的資訊,請參閱 EMF 格式的實體資訊

下列各節說明如何建立 KeyAttributes和 ,Attributes以便 CloudWatch 識別與遙測相關聯的資源和服務。

實體物件的KeyAttributes屬性 (在 CloudWatch 中或在 CloudWatch 日誌中) 可唯一識別 CloudWatch 的實體。這是索引鍵/值對的清單。具有相同實體的實體KeyAttributes會被視為相同實體。與相同實體相關聯的遙測被視為相關,可以在探索相關窗格中輕鬆找到。

注意

在 CloudWatch API 中, 屬性稱為 KeyAttributes。在 CloudWatch Logs API 中, 屬性稱為 keyAttributes。在這裡,它們會被視為相同的屬性。

有五種 Entity可能代表的物件類型。

  • AWS::Resource – 實體代表 AWS 資源,例如 DynamoDB 資料表或 Amazon EC2 執行個體。

  • AWS::Service – 實體代表 AWS 服務,例如 Amazon S3。例如,在呼叫 ListBuckets操作時,可能會使用此功能,這與特定的 Amazon S3 資源沒有關聯。

  • 服務 – 實體代表在您帳戶中執行的工作負載。例如,您管理的應用程式或服務。

  • 資源 – 實體代表不受作業系統資源管理的資源 AWS,例如程序或檔案磁碟區。

  • RemoteService – 實體代表遠端呼叫中的外部服務。例如,對資料庫、外部快取或外部端點的遠端呼叫。

根據您嘗試代表的上述類型,您必須為 提供正確的鍵值對KeyAttributes。以下說明每種類型。

AWS::Resource

若要指定 AWS 資源,您必須包含下列三個索引鍵值對:

  • "Type": "AWS::Resource" – 此鍵/值對會將實體識別為 AWS 資源。

  • "ResourceType": "<resource-type>" – 的字串值ResourceType是 AWS CloudFormation 資源類型字串。例如 AWS::DynamoDB::Table

  • "Identifier": "<resource-id>" – 資源的主要識別符。如需詳細資訊,請參閱CloudFormation 延伸開發使用者指南》中的 primaryIdentifier

AWS::Service

若要指定 AWS 服務,您必須包含下列兩個索引鍵值對:

  • "Type": "AWS::Service" – 此鍵/值對會將實體識別為 AWS 服務。

  • "Name": "<service-name>" – 的值Name是 AWS CloudFormation 服務名稱字串。例如 AWS::DynamoDB

Service

若要指定非 操作的服務 AWS,您必須包含下列三個索引鍵值對:

  • "Type": "Service" – 此鍵/值對會將實體識別為服務。

  • "Name": "<service-name>" – 這代表傳送指標的服務名稱。例如 my-service-frontendapi.myservice.com

  • "Environment": "<environment-name>" – 此屬性會指定服務託管的位置,或其所屬的環境。例如 us-west-2、 或 myservice.production

Resource

若要指定 未提供的資源 AWS,您必須包含下列三個索引鍵值對:

  • "Type": "Resource" – 此鍵/值對會將實體識別為資源。

  • "ResourceType": "<resource-type>" – 指定資源類型的字串。例如,K8s::Pod對於 Kubernetes Pod。

  • "Identifier": "<resource-id>" – 資源的字串識別符。可以包含多個名稱,以管道分隔。例如,Kubernetes Pod 可能以叢集名稱、命名空間和 Pod 名稱表示,例如 MyCluster|MyNamespace|MyPod

RemoteService

若要指定遠端服務,您必須包含下列兩個索引鍵值對:

  • "Type": "RemoteService" – 此鍵/值對會將實體識別為遠端服務。

  • "Name": "<remote-service-name>" – 指定應用程式如何參考遠端呼叫中的外部服務。例如 api.test.myservice.com

您可以提供有關Entity隨遙測提供的 的其他詳細資訊。這可以包含平台、資源、應用程式或遙測供應商的詳細資訊。下表說明您可以用於每種資料類型的關鍵字。

注意

在 CloudWatch API 中, 屬性稱為 Attributes。在 CloudWatch Logs API 中, 屬性稱為 attributes。在這裡,它們被視為相同的屬性。

平台詳細資料

關鍵字 用量 值的網域 範例

PlatformType

定義託管平台。

AWS::EKS、AWS::ECS、AWS::EC2、AWS::Lambda、K8s、一般

AWS::EC2

EKS.Cluster

Amazon EKS 叢集的名稱。

具有基本分隔符號的英數字串。

FlyingSquad

K8s.Cluster

自我託管 Kubernetes 叢集的名稱。

具有基本分隔符號的英數字串。

minicube

K8s.Namespace

Amazon EKS 或 K8s 叢集中 Kubernetes 命名空間的名稱。

具有基本分隔符號的英數字串。

default, pet-clinic

K8s.Workload

Amazon EKS 和 K8s 叢集中的 Kubernetes 工作負載名稱。

具有基本分隔符號的英數字串。

frontend

K8s.Node

Amazon EKS 和 K8s 叢集中 Kubernetes 節點的身分。

K8s 節點名稱 (例如,Amazon EC2 執行個體 DNS 名稱)。

ip-11-22-33-44.ec2.internal

K8s.Pod

Amazon EKS 和 K8s 叢集中 Kubernetes Pod 的身分。

K8s Pod 識別符。

frontend-1234abcd56-ef7890

EC2.AutoScalingGroup

Amazon EC2 AutoScaling 群組的名稱。

具有基本分隔符號的英數字串。

my-asg-name-1

EC2.InstanceId

Amazon EC2 執行個體的身分。

Amazon EC2 執行個體識別符。

i-1234abcd5678ef90

ECS.Cluster

Amazon ECS 叢集的身分。

Amazon ECS 叢集名稱。

MyCluster

ECS.Service

Amazon ECS 服務的身分。

Amazon ECS 服務名稱。

MyService

ECS.Task

Amazon ECS 任務的身分。

Amazon ECS 任務 ID。

task-123abc

Lambda.Function

Lambda 函數的身分。

Lambda 函數名稱。

MyFunction

Host

所有平台類型的主機名稱。

子網域格式。

ip-111-22-33-44.example.com

資源詳細資訊

關鍵字 用量 值的網域 範例

AWS.Resource.ARN

AWS 資源的 ARN。

具有基本分隔符號的英數字串。

arn:aws:dynamodb:us-east-1:123456789012:table/myDynamoDBTable

應用程式詳細資訊

關鍵字 用量 值的網域 範例

AWS.Application

AppRegistry 中的應用程式名稱。

具有基本分隔符號的英數字串。

PetClinicApp

AWS.Application.ARN

AppRegistry 中應用程式的 ARN。

具有基本分隔符號的英數字串。

arn:aws:servicecatalog:us-east-1:1234567890:/applications/...

遙測供應商詳細資訊

關鍵字 用量 值的網域 範例

Telemetry.SDK

檢測服務的 OTEL SDK 版本的指紋。

具有基本分隔符號的英數字串。

opentelemetry,1.32.0-aws-SNAPSHOT,java,Auto

Telemetry.Agent

用於收集和傳送遙測資料的 代理程式指紋。

具有基本分隔符號的英數字串。

CWAgent/1.300026.3, ADOTCollector/1.x

Telemetry.Source

指定收集遙測或用於遙測資料來源的應用程式點。

ServerSpan、ClientSpan、ProducerSpan、ConsumerSpan、LocalRoot Span、JMX、OS。

ClientSpan, JMX