使用 Amazon OpenSearch Ingestion 采样 - 亚马逊 OpenSearch 服务
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 Amazon OpenSearch Ingestion 采样

Amazon OpenSearch Ingestion 提供以下采样功能。除以上示例之外,您也可以使用 Apache 日志采样蓝图。有关蓝图的更多信息,请参阅 使用蓝图创建管道

时间采样

您可以使用聚合处理器中的 rate_limiter 操作限制每秒可处理的事件数。您可以选择删除多余的事件或将其顺延到下一时间段。

在此示例中,每秒仅有 100 个状态码为 200 的事件从给定 IP 地址发送到接收器。将从配置的时段中删除所有多余的事件。

... processor: - aggregate: identification_keys: ["clientip"] action: rate_limiter: events_per_second: 100 when_exceeds: drop when: "/status == 200" ...

如果改为将 when_exceeds 选项设置为block,则处理器将在下一时段处理多余的事件。

采样百分比

使用聚合处理器中的 percent_sampler 操作限制发送到接收器的事件数量。所有多余的事件都将删除。

在此示例中,仅有 20% 状态码为 200 的事件从给定 IP 地址发送到接收器:

... processor: - aggregate: identification_keys: ["clientip"] duration : action: percent_sampler: percent: 20 when: "/status == 200" ...

尾采样

使用聚合处理器中的 tail_sampler 操作根据一组定义策略对事件进行采样。此操作根据配置的等待期,等待不同的聚合期完成聚合。聚合完成后,如果符合特定的错误条件,则发送到接收器。否则,仅会将配置百分比的事件发送到接收器。

以下示例管道将所有错误条件状态为 2 的 OpenTelemetry 跟踪发送到接收器。仅将 20% 不符合此错误条件的跟踪发送到接收器。

... processor: - aggregate: identification_keys: ["traceId"] action: tail_sampler: percent: 20 wait_period: "10s" condition: "/status == 2" ...

如果将错误条件设置为 false 或不纳入错误条件,则仅允许传输配置百分比的事件,具体取决于概率结果。

由于很难精准确定尾采样时间,因此您可以使用 wait_period 选项测量收到最后一个事件后的闲置时间。