正确答案: 将Amazon CloudWatch代理作为Sidecar容器运行,配置它从端口9404抓取JVM指标,在JVM线程计数指标上创建CloudWatch警报,并在Fargate中添加由这些警报驱动的步进扩展策略。, 创建一个Amazon Managed Service for Prometheus工作区,并部署AWS Distro for OpenTelemetry作为Sidecar,将JVM指标从端口9404发布到该工作区。使用Fargate中的目标跟踪策略,选择Prometheus指标作为扩展目标。.
为什么这是答案
第一个正确选项通过在Sidecar中运行CloudWatch代理,直接从JVM暴露的端口抓取指标,然后利用CloudWatch警报和步进扩展策略进行扩展,操作开销最小,且是AWS原生的解决方案。第二个正确选项利用Amazon Managed Service for Prometheus (AMP) 和AWS Distro for OpenTelemetry (ADOT) 收集JVM指标。ADOT作为Sidecar将指标推送到AMP,然后Fargate的目标跟踪策略可以直接使用这些Prometheus指标进行自动扩展,这对于已经使用或计划使用Prometheus进行监控的场景非常高效。
第一个错误选项中,从代理日志中发出指标过滤器来获取JVM线程计数是间接且效率较低的方式,JVM指标通常直接通过HTTP端点暴露,而不是通过日志。第二个错误选项中,Prometheus规则通常用于告警或记录规则,而不是直接驱动Fargate的步进扩展策略,Fargate的扩展策略更倾向于直接引用指标。