• 故障注入
    • 配置
    • 运行时设置
    • 统计
  • 返回

    故障注入

    故障注入过滤器可用于测试微服务对不同形式故障的恢复能力。该过滤器可用于注入延迟和中止请求,并带有用户指定的错误代码,从而能够处理不同的故障情况,如服务故障,服务过载,高网络延迟,网络分区等。故障注入可限制在基于请求的(目的地)上游集群,以及特定的一组预定义的请求报头组。

    故障注入的范围仅限于通过网络进行通信的应用程序,以及可观察到的范围。无法模拟本地主机上的CPU和磁盘故障。

    目前,故障注入过滤器有以下限制:

    • 中止请求的错误代码仅限于HTTP状态码
    • 延迟被限制在一定的时间内

    未来的版本将包括支持限制故障到特定的路由,注入gRPC和HTTP/2特定的错误代码和基于分布的持续时延。

    配置

    注意:故障注入过滤器必须在任何其他过滤器(包括路由器过滤器)之前插入。

    • v1 API参考
    • v2 API参考

    运行时设置

    HTTP故障注入过滤器支持以下全局运行时设置:

    • fault.http.abort.abort_percent

      如果头部匹配,将被中止请求的百分比。在配置中默认使用abort_percent值。如果配置不包含abort项,则abort_percent默认为0。

    • fault.http.abort.http_status

      将被用作请求的HTTP状态码,如果头部匹配,则请求将被中止。默认为配置中指定的http_status。如果配置不包含abort项,则http_status默认为0。

    • fault.http.delay.fixed_delay_percent

      如果头部匹配,请求将被延迟的百分比。默认为配置中指定的delay_percent,否则为0。

    • fault.http.delay.fixed_duration_ms

      延迟时间以毫秒为单位。如果未指定,则将使用配置中指定的fixed_duration_ms。如果在运行时和配置中缺少这个字段,则不会注入延迟。

    请注意,在特定下游群集中,如果存在以下运行时配置值,则故障过滤器默认值会被覆盖。以下是下游指定的运行时配置值:

    • fault.http.<downstream-cluster>.abort.abort_percent
    • fault.http.<downstream-cluster>.abort.http_status
    • fault.http.<downstream-cluster>.delay.fixed_delay_percent
    • fault.http.<downstream-cluster>.delay.fixed_duration_ms

    下游集群名称取自HTTP x-envoy-downstream-service-cluster头部。如果在运行系统中找不到,则默认使用全局运行时设置为缺省配置。

    统计

    故障过滤器输出统计信息命名空间为http.<stat_prefix>.fault.stat_prefix来自所拥有的HTTP连接管理器。

    名称 类型 描述
    delays_injected Counter 延迟请求总数
    aborts_injected Counter 已中止的请求总数
    <downstream-cluster>.delays_injected Counter 指定下游群集的延迟请求总数
    <downstream-cluster>.aborts_injected Counter 指定下游群集的中止请求总数

    返回

    • 上一级
    • 首页目录