ServiceLens 问题排查
如果您在使用 CloudWatch ServiceLens 时遇到问题,以下部分可为您提供帮助。
我未看到我的所有日志
如何将日志配置为根据服务显示在 ServiceLens 中。
-
如果已在 API Gateway 中启用了日志记录,则会显示 API Gateway 日志。
-
如果您使用的是最新版本的 X-Ray 开发工具包和 CloudWatch 代理,则会显示 Amazon ECS 和 Amazon EKS 日志。有关更多信息,请参阅 部署 ServiceLens。
-
如果请求 ID 位于日志条目中,则会显示 Lambda 日志。对于下表中列出的情况,此操作会自动发生。对于其他情况,如果运行时未自动包含跟踪 ID,您可以手动包含跟踪 ID。
运行时 | 方法 | 请求 ID 是否会自动显示在日志条目中? |
---|---|---|
Java |
context.getLogger.log aws-lambda-java-log4j2 |
是 |
Java |
System.out.println |
否 |
Python |
context.log logging.info/error/log/etc... |
是 |
Python |
|
否 |
Node.js |
context.log console.log/info/error/etc... |
是 |
dotnet |
context.Logger.log Console.WriteLine() |
否 |
Go(转到) |
fmt.Printf log.Print |
否 |
Ruby |
puts |
否 |
我未在服务地图上看到我的所有告警
如果与节点关联的任何告警都处于 ALARM 状态,则 ServiceLens 仅显示该节点的提示图标。
ServiceLens 使用以下逻辑将告警与节点关联:
-
如果节点代表 Amazon 服务,则包含与该服务关联的命名空间的所有告警都与该节点关联。例如,
AWS::Kinesis
类型的节点与基于 CloudWatch 命名空间AWS/Kinesis
中指标的所有告警关联。 -
如果节点代表一个 Amazon 资源,则将链接该特定资源上的告警。例如,名为“MyTable”的
AWS::DynamoDB::Table
类型的节点将链接到所有基于具有命名空间AWS/DynamoDB
的指标且TableName
维度设置为MyTable
的告警。 -
如果节点的类型未知(由名称周围的虚线边框标识),则任何告警均不会与该节点关联。
我未看到服务地图上的某些 Amazon 资源
对于服务地图上要跟踪的 Amazon 资源,必须使用 X-Ray 开发工具包捕获 Amazon 开发工具包。有关 X-Ray 的更多信息,请参阅什么是 Amazon X-Ray。
并非每个 Amazon 资源都由一个专用节点表示。对于对服务的所有请求,某些 Amazon 服务由单个节点表示。将显示以下资源类型,并且每个资源对应一个节点:
-
AWS::DynamoDB::Table
-
AWS::Lambda::Function
Lambda 函数由两个节点表示:一个表示 Lambda 容器,另一个表示函数。这有助于识别 Lambda 函数的冷启动问题。Lambda 容器节点与告警和控制面板的关联方式与 Lambda 函数节点与告警和控制面板的关联方式相同。
-
AWS::ApiGateway::Stage
-
AWS::SQS::Queue
-
AWS::SNS::Topic
我的服务地图包含太多节点
使用 X-Ray 组将您的地图分成多个地图。有关更多信息,请参阅对组使用筛选表达式。