CloudWatch 如何找到相关的遥测?
CloudWatch 的探索相关窗格显示了相互关联的指标和日志,但这是如何运作的?
发送到 CloudWatch 的指标和日志可以包括与之相关的可选实体。通常,实体将代表遥测的内容。例如,有关 CPU 使用率的指标与 Amazon EC2 实例有关,它将使用该实例作为其实体。在探索相关窗格中查看该指标时,其中会显示同一实例的其他遥测。
探索相关窗格中的拓扑图(地图)显示当前选定的资源以及相关资源。对于 AWS 资源,CloudWatch 会自动显示其知道的其他相关资源。例如,假设要查看某个 Amazon EC2 实例,地图还将显示挂载到该实例的所有 Amazon EBS 卷。选择一个卷会显示该卷的遥测,并且地图会更新以显示与该卷相关的资源。它还会显示属于同一服务的资源。
与遥测相关的实体信息定义了遥测与之关联的资源,例如 Amazon EC2 实例。但这可能也包括有关资源的上下文数据。例如,如果您的网站应用程序包含 Amazon EC2 实例和数据库等资源,则实体信息可以将网站应用程序作为服务包括在内。在这种情况下,拓扑图将服务显示为相关实体,当您选择它时,它会显示实例和数据库。这可以简化为一项服务查找所有遥测的过程。
注意
CloudWatch 必须在过去三小时内收到包含实体信息的遥测,以便查找相关资源和遥测。
实体数据来自何处?
CloudWatch 可以通过不同的方式获取用于遥测的实体:
-
从 AWS 服务发送到 CloudWatch 的大部分遥测都会自动与资源关联。有关支持的资源的完整列表,请参阅支持相关遥测的 AWS 服务。
-
CloudWatch 代理会自动将实体信息添加到它发送到 CloudWatch 的遥测中。
注意
您可能需要将 CloudWatch 代理更新为最新版本以包含实体数据。有关更多信息,请参阅 使用 CloudWatch 代理收集指标、日志和跟踪信息 和 为相关实体配置 CloudWatch 代理服务和环境名称。
-
当您提交自己的遥测时,可以向数据中添加实体信息。有关更多信息,请参阅 如何向发送到 CloudWatch 的自定义遥测添加相关信息。
-
CloudWatch 会尽最大努力识别与其他遥测相关的实体信息(例如,您发送给 CloudWatch 但没有任何实体信息的自定义遥测)。
服务数据来自哪里?
除了识别资源(例如实例资源和附加卷资源)之间的自然连接外,CloudWatch 还可以按服务对资源进行分组。例如,服务可能是网站应用程序。带 Web 服务器的 Amazon EC2 实例和另一个带数据库的 Amazon EC2 实例可能都属于同一服务,并且基于该服务在拓扑图上进行连接。
CloudWatch 可以通过不同的方式获取遥测服务名称,包括:
-
Application Signals 或 otel 检测遥测使用受支持的 OpenTelemetry 分析库所用的
OTEL_SERVICE_NAME
环境变量来设置服务名称。 -
CloudWatch 代理配置允许配置服务名称。有关更多信息,请参阅 为相关实体配置 CloudWatch 代理服务和环境名称。
-
Kubernetes 工作负载使用集群中的相应名称作为服务名称,例如部署、ReplicaSet、容器组(pod)或容器。
-
对于 Amazon EC2 工作负载,服务可以来自标签(
service
、application
或app
标签)。注意
要使用标签生成服务名称,必须先为 Amazon EC2 实例设置实例元数据。
-
当您提交自己的遥测时,可以将服务信息添加到数据。有关更多信息,请参阅 如何向发送到 CloudWatch 的自定义遥测添加相关信息。
-
当无法使用上述内容时,CloudWatch 会使用发送指标的 IAM 角色名称作为服务名称。例如,这可以为 Amazon ECS 遥测提供服务名称。