服务级别目标小部件(传统)
Instana 允许用户为其服务级别目标(SLO)创建自定义仪表板小部件,以便显示和分析服务随时间推移的性能表现。 该 widget 可显示 基于时间或 基于事件的 SLI 配置。
SLO 小工具(遗留)
下图展示了一个名为 “ Robot Shop SLO”的 SLO 小部件示例, 该小部件采用基于时间的 SLI 配置,并设置了 95% 的 SLO 目标值。 该示例中的 SLI 基于延迟指标的第 90 百分位数和 2 秒的阈值。 误差预算是 1 减去乘以时间窗口的 SLO 目标值。 对于小工具上显示的 7 天时间窗口,它被转换为 504 分钟的误差预算:
504 minutes = (1 - 95%) * 10080 minutes
该示例 SLO 未在选定的时间框架内完成,因为花费的错误预算为 565 分钟,超出了该限值。

配置
添加 SLO 小工具(旧版)
您可以为任何应用程序视角或网站设置 SLO 小工具。 要添加 SLO 遗留小组件,请转到其中一个自定义仪表板,打开 添加小组件的对话框。 接下来,请按照以下步骤操作:
- 在对话框侧边栏中,单击 SLO 传统 > 下一步。 对话框将打开配置部分以设置 SLO 小工具。
- 请选择要监控应用程序视图还是网站。
- 应用程序视角的 SLO 不包括您无法控制的因素,如用户网络连接不畅,因此可能无法准确反映用户体验。
- 网站的 SLO 能最准确地反映用户体验,不排除用户网络连接不畅等无法控制的因素。
- 从列表中选择 SLO 对应的应用程序视图或网站。
- 从列表中选择特定 SLO 类型的服务级别指标。 如果先前选择的 SLO 类型没有 SLI,则按照 SLI 配置中的说明创建 SLI。
- 输入所需的 SLO 目标值,例如
99.9%。 - 选择 时间窗口类型,它定义了 widget 的上下文和显示时间范围:
- 动态时间窗口:在全局时间选择器中选择的时间窗口计算 SLO。
- 滚动时间窗口:具有固定窗口大小的时间窗口,其结束时间由全局时间选择器的结束日期和时间选择确定。 例如,通过滚动时间窗口,可以始终看到上周的时间,而无需调整全局时间选择器。
- 固定时间间隔:定义了开始时间和持续时间的时间窗口。 例如,您可以配置一个固定的一个月窗口,从
2020-01-01开始。 当月结束后,时间窗口将自动重置为下一个月(2020-02-01)。
- 输入窗口小部件的标题。
- 在预览中验证您的小部件。 如果未显示预览,请单击 高亮显示缺失的配置,立即查看缺失的配置。
- 要创建 SLO widget 配置,请单击 创建。
- 要在自定义仪表板上保存 SLO widget 配置,请单击 保存更改。
SLI 配置
SLI 类型
与 SLO 类型无关,您可以为您的配置选择两种 SLI 类型之一:
- 基于事件 SLI 使用定义的好事件和坏事件组来衡量服务的可靠性。 由于每次呼叫的权重相同,因此能更准确地反映用户的实际体验。 因此,处理错误预算更加困难,因为它取决于事件的数量。
- 基于时间的 SLI 衡量按分钟汇总的服务可靠性。 虽然错误预算总是一个恒定的坏分钟数,使人们更容易管理,但它不如基于事件的 SLI 准确,因为坏事件在流量较少的分钟中更为严重。
通过用户界面管理 SLI
要创建 SLI 配置或克隆现有 SLI 配置,请点击 SLO 小部件上的 “管理 SLI ”,进入“SLI 管理”对话框。

接下来,按照以下步骤从头开始创建配置或克隆现有配置。
为应用程序视图创建 SLI 配置
- 在“SLI 管理”对话框中,单击 “创建 SLI ”。
- 提供 SLI 配置详细信息:
- 输入 SLI 配置的名称以唯一地标识该配置。
- 选择SLI 配置类型,可以是基于时间或基于事件
- 单击创建以保存新的 SLI 配置。
面向应用程序的基于时间的 SLI
完成基于时间的 SLI 的以下配置:
- 选择边界作用域(入站调用或所有调用)。
- 呼入呼叫:仅包括从应用程序外部发起的呼叫,且目标服务是所选应用程序视角的一部分。
- 所有呼叫:包括来自应用程序外部的呼入呼叫和在应用程序视角内发生的呼叫。
- 您可以选择应用程序中的特定服务,或保留
All Services的默认选择,以应用于整个应用程序视角。 - 如果想进一步缩小端点范围,可以从列表中选择一个端点。 与服务选择类似,您可以选择保留
All Endpoints的默认值,以适用于整个服务。 - 从支持的指标列表中选择必须对 SLI 配置进行评估的指标。
- 支持以下度量:
- 等待时间
- 调用计数
- 错误率
- 错误调用数
- 支持以下度量:
- 选择所选指标的聚集。
- 输入选定指标的阈值。
选择指标和阈值后, SLI 将按如下所示进行计算:
SLI = (1 - #minutes_where_threshold_is_violated / #minutes_in_time_window) * 100%
下图显示了如何为应用程序配置基于时间的 SLI k8s-demo。 应用程序的 边界范围仅限于 Endpoint DELETE /cart/:id 的 Inbound Calls 和称为 cart 的 Service 上。 要评估的 Metrics 设置为 Latency ,建议 Aggregation 为 90th percentile ,Threshold 为 25 ms 。

基于事件的SLI
基于事件的 SLI 配置充分利用了 Unbounded Analytics 查询构建器的灵活性,可筛选出“良好事件”和“不良事件”的子集。
- 良好事件:表明特定服务成功标准的呼叫集。 例如,某个 HTTP 服务中所有状态码为
2XX. 的 HTTP 请求。 - 不良事件:显示特定服务故障标准的呼叫集。 例如,某个 HTTP 服务中所有状态码为
5XX. 的 HTTP 请求。
完成基于事件的 SLI 的以下配置:
- 选择边界作用域(入站调用或所有调用)。
- 呼入呼叫:仅包括从应用程序外部发起的呼叫,且目标服务是所选应用程序视角的一部分。
- 所有呼叫:包括来自应用程序外部的呼入呼叫和在应用程序视角内发生的呼叫。
- 可选项:可包括内部通话或合成通话。 默认情况下,这两个呼叫都被排除在外。
定义了坏事件和好事件后,SLI 的计算方法如下:
SLI = #good_events / (#good_events + #bad_events) * 100%
图片显示了如何为应用程序配置基于事件的 SLI,其边界范围限制为 Inbound Calls。 good events 被定义为状态代码为 200 的调用,bad events 被定义为状态代码为 500 的调用。

该配置产生的 widget 显示的是通话误差预算,而不是分钟数。
为网站创建 SLI 配置
- 在“SLI 管理”对话框中,单击 “创建 SLI ”。
- 提供 SLI 配置详细信息:
- 输入 SLI 配置的名称以唯一地标识该配置。
- 选择SLI 配置类型,可以是基于时间或基于事件
- 单击创建以保存新的 SLI 配置。
基于时间的网站多路输入(SLI)
完成基于时间的 SLI 的以下配置:
- 选择信标范围,例如 HTTP 请求。 通过应用信标过滤器,您可以进一步将配置范围扩大到网站流量的子集,如按地理位置、浏览器或用户。
- 从支持的指标列表中选择必须对 SLI 配置进行评估的指标。 支持以下度量:
- 信标错误率
- 信标持续时间
- 选择所选指标的聚集。
- 输入选定指标的阈值。
选择指标和阈值后, SLI 将按如下所示进行计算:
SLI = (1 - #minutes_where_threshold_is_violated / #minutes_in_time_window) * 100%
以下示例展示了 Robot Shop 网站基于时间的SLI配置,该配置针对路径 /products 上的GET请求,将“信标错误率”指标的平均值限制为 HTTP 次请求,阈值设为25毫秒。

基于事件的网站 SLI
基于事件的 SLI 配置充分利用了 Unbounded Analytics 查询构建器的灵活性,可筛选出“良好事件”和“不良事件”的子集。
- 良好事件:表明特定服务成功标准的呼叫集。 例如,某个 HTTP 服务中所有状态码为
2XX. 的 HTTP 请求。 - 不良事件:显示特定服务故障标准的呼叫集。 例如,某个 HTTP 服务中所有状态码为
5XX. 的 HTTP 请求。
完成基于事件的 SLI 的以下配置:
- 选择信标范围 ,例如 HTTP 请求。 通过应用信标过滤器,您可以进一步将配置范围扩大到网站流量的子集,例如,按地理位置、浏览器或用户。
- 呼入电话或 所有电话。
- 呼入呼叫:仅包括从应用程序外部发起的呼叫,且目标服务是所选应用程序视角的一部分。
- 所有呼叫:包括来自应用程序外部的呼入呼叫和在应用程序视角内发生的呼叫。
定义了坏事件和好事件后,SLI 的计算方法如下:
SLI = #good_events / (#good_events + #bad_events) * 100%
图片显示了如何为一个网站配置基于事件的 SLI,该网站的信标范围设置为 HTTP Requests,其中 good events 为状态代码为 200 的 GET 请求,而 _bad events+ 为状态代码为 500 的 GET 请求。

该配置产生的 widget 显示的是通话误差预算,而不是分钟数。
克隆现有的 SLI 配置
不能修改 SLI 的参数,以防止计算的预算支出失效。 这就是为什么在更改任何参数时都需要克隆 SLI 配置的原因。
- 在 SLI 管理对话框中,单击要克隆的所选 SLI 配置上的 View/Clone SLI 配置图标。
- 编辑 SLI 配置详细信息:
- 更改 SLI 配置的名称,以标识该配置是从现有配置中克隆出来的。
- 根据需要编辑 SLI 配置。
- 单击克隆,以创建 SLI 配置的克隆。