AWS CLI 查询 Application Signals SLO 详解:get-service-level-objective 命令与返回结构解析

发布时间:2026/9/14 8:23:16
AWS CLI 查询 Application Signals SLO 详解:get-service-level-objective 命令与返回结构解析 AWS CLI 查询 Application Signals SLO 详解get-service-level-objective 命令与返回结构解析【免费下载链接】aws-cliUniversal Command Line Interface for Amazon Web Services项目地址: https://gitcode.com/GitHub_Trending/aw/aws-cli本篇围绕 AWS CLI 中 Application Signals 服务的get-service-level-objective子命令展开讲解如何用一条命令按 SLO 的 ARN 或名称拉取单个服务等级目标SLO的完整定义并结合 服务模型定义 逐项拆解返回的Slo结构含 SLI 指标、评估类型、Goal 目标区间。读完后你可以复制命令真实查询账户内的 SLO并能读懂返回 JSON 中Sli、EvaluationType、Goal等字段的确切含义与默认值。场景与命令Application Signals 是 Amazon CloudWatch 的应用监控能力用于为服务定义并跟踪可靠性目标。get-service-level-objective用于“返回账户中创建的某一个 SLO 的信息”。对应示例见 get-service-level-objective.rstaws application-signals get-service-level-objective \ --id arn:aws:application-signals:us-east-1:123456789101:slo/SLOName关键点--id是唯一且必填的参数接受 SLO 的ARN或名称。从 输入结构定义 可见GetServiceLevelObjectiveInput的required为[Id]且Id的location为uri说明它会被拼进请求路径而非请求体。该操作在 operations 定义 中被标记为readonly: trueHTTP 方法为GETrequestUri为/slo/{Id}因此这是一次只读的元数据读取不产生任何写副作用。可能返回的错误类型包括ValidationException、ResourceNotFoundException与ThrottlingException。当--id指向不存在的 SLO 时你会得到ResourceNotFoundException这也是排查“ARN 写错/区域不对/已删除”的直接信号。适用前提你需要已安装并配置好 AWS CLI含有效凭证与具备 Application Signals 读权限的 IAM 身份且目标 SLO 存在于--id所指向的区域与账户。如何拿到 SLO 的 ARN--id需要 SLO 的 ARN 或名称而 ARN 通常需要先“列出来”才能确定。从 输入结构 的文档说明可知可以借助ListServiceLevelObjectives操作找到 SLO 的 ARN。仓库中亦有对应示例 list-service-level-objectives.rst。一个典型的定位流程是先用list-service-level-objectives列出账户内所有 SLO 及其 ARN再挑选目标 ARN 交给本命令查询详情。创建侧的完整字段示例可参考 create-service-level-objective.rst它能帮助你理解查询结果里各字段的来源。返回结构总览Slo从 输出结构定义 可见GetServiceLevelObjectiveOutput仅含一个必填成员Slo其形状为ServiceLevelObjective。也就是说命令输出的顶层是一个Slo对象其余都是它的子字段。对照 ServiceLevelObjective 结构其必填字段为Arn、Name、CreatedTime、LastUpdatedTime、Goal可选字段还包括Description、Sli、RequestBasedSli、EvaluationType、BurnRateConfigurations、MetricSourceType、AutoInvestigationEnabled等。原文档示例返回如下节选核心结构{ Slo: { Arn: arn:aws:application-signals:us-east-1:123456789101:slo/SLOName, Name: SLOName, Description: Description of your SLO, CreatedTime: 2024-12-24T22:19:18.62400005:30, LastUpdatedTime: 2024-12-24T22:19:55.28000005:30, Sli: { SliMetric: { MetricDataQueries: [{ Id: m1, MetricStat: { Metric: { Namespace: AWS/EC2, MetricName: CPUUtilization, Dimensions: [{ Name: InstanceId, Value: i-0e0987654321522 }] }, Period: 60, Stat: Average }, ReturnData: true }] }, MetricThreshold: 200.0, ComparisonOperator: LessThanOrEqualTo }, EvaluationType: PeriodBased, Goal: { Interval: { RollingInterval: { DurationUnit: DAY, Duration: 7 } }, AttainmentGoal: 99.0, WarningThreshold: 50.0 } } }逐字段解析基础标识字段ArnSLO 的资源 ARN。从 ARN 正则约束 可看出其形如arn:(aws|aws-us-gov):application-signals:[region]:[account]:slo/name长度上限 2048。这也是--id所接受的标准取值形式。Name/DescriptionSLO 的名称与创建时填写的描述。CreatedTime/LastUpdatedTime创建与最近更新时间戳格式为yyyy-MM-ddTHH:mm:ss原始 HTTP 查询 API 形式。示例中带时区偏移如05:30。SliService Level Indicator服务等级指标Sli是“period-based基于时间段的SLO”所监控的性能指标结构。示例中它由三部分构成SliMetric.MetricDataQueries一组指标数据查询。示例里的m1指向 CloudWatch 指标AWS/EC2命名空间下的CPUUtilization维度InstanceId i-0e0987654321522Period为 60 秒、Stat为AverageReturnData为true。这说明该 SLO 的 SLI 直接绑定了一个具体的 CloudWatch 指标统计。MetricThreshold阈值示例为200.0。ComparisonOperator比较运算符示例为LessThanOrEqualTo与阈值组合构成“指标 ≤ 200”这一健康判据。需要说明当EvaluationType为基于请求request-based的 SLO 时结构会改用RequestBasedSli见 ServiceLevelObjective 的 Sli 与 RequestBasedSli 两个可选成员示例中因为是PeriodBased所以只有Sli。EvaluationType标识该 SLO 属于PeriodBased基于时间段还是基于请求。示例为PeriodBased。这一字段决定了上面走Sli还是RequestBasedSli也影响Goal中AttainmentGoal的语义时间段内达到健康状态的比例或成功请求占比。Goal目标与评估区间从 Goal 结构 的说明可见各字段含义与默认值Interval评估 SLO 所用的时间区间可以是日历区间CalendarInterval或滚动区间RollingInterval在 Interval 结构 中被声明为union二者取其一。示例为RollingIntervalDurationUnit: DAY、Duration: 7即“滚动 7 天”。AttainmentGoal判断目标是否达成的阈值。对 period-based SLO它是“达到健康状态的时间段占比”的目标示例为99.099%。WarningThreshold预算告警阈值示例为50.0。默认值提示Interval缺省时按“滚动 7 天”处理AttainmentGoal缺省时按 99% 处理。因此在解读返回结果时若某字段缺失需结合这些默认值理解。与预算报告的联动get-service-level-objective返回的是 SLO 的“定义”而判断它当前是否处于OK/WARNING/BREACHED状态则需要预算报告。仓库中的 batch-get-service-level-objective-budget-report.rst 提供了批量获取 SLO 预算报告的示例。从 预算报告结构 看BudgetStatus有四种取值OK剩余预算高于告警阈值、WARNING低于告警阈值、BREACHED预算耗尽、INSUFFICIENT_DATA时间早于创建时间或缺少达成数据。实践上常见组合是先get-service-level-objective拿到 SLO 定义确认Interval、AttainmentGoal、WarningThreshold再用预算报告判断当前预算消耗与状态形成“定义 状态”的完整视图。小结aws application-signals get-service-level-objective --id ARN或名称是一次只读的单 SLO 查询--id必填且进入请求路径GET /slo/{Id}。返回的顶层对象是必填的Slo其中Sli描述 period-based 场景下的监控指标指标 阈值 比较运算符Goal描述评估区间与达成/告警阈值。字段默认值如滚动 7 天、99% 达成目标与Interval的 union 结构、EvaluationType对Sli/RequestBasedSli的切换都是正确解读返回 JSON 的关键。需要定位当前预算状态时可配合预算报告操作形成“定义 状态”的闭环。相关官方文档Application Signals隶属Amazon CloudWatch User Guide可在 CloudWatch 文档中查阅本仓库中的示例与模型文件路径已在上文标注便于进一步核对字段与默认值。【免费下载链接】aws-cliUniversal Command Line Interface for Amazon Web Services项目地址: https://gitcode.com/GitHub_Trending/aw/aws-cli创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考