死信队列
OpenSearch Data Prepper 管道支持死信队列(DLQ),用于卸载失败的事件并使其可供分析。
截至 Data Prepper 2.3,只有 s3 源支持 DLQ。
配置 DLQ 写入器
要为 s3 源配置 DLQ 写入器,请将以下内容添加到您的 pipeline.yaml 文件中
sink:
opensearch:
dlq:
s3:
bucket: "my-dlq-bucket"
key_path_prefix: "dlq-files/"
region: "us-west-2"
sts_role_arn: "arn:aws:iam::123456789012:role/dlq-role"
生成的 DLQ 文件以 DLQ 对象的 JSON 数组形式输出。写入 S3 DLQ 的任何文件都包含以下命名模式
dlq-v${version}-${pipelineName}-${pluginId}-${timestampIso8601}-${uniqueId}
命名模式中的以下信息将被替换
version: Data Prepper 版本。pipelineName: pipeline.yaml 中指示的管道名称。pluginId: 与 DLQ 事件关联的插件 ID。
配置
DLQ 支持以下配置选项。
| 选项 | 必需 | 类型 | 描述 |
|---|---|---|---|
| bucket | 是 | 字符串 | DLQ 输出失败记录到的存储桶名称。 |
| key_path_prefix | 否 | 字符串 | S3 存储桶中使用的 key_prefix。默认为 ""。支持时间值模式变量,例如 /%{yyyy}/%{MM}/%{dd},包括 Java DateTimeFormatter 中列出的任何变量。例如,使用 /%{yyyy}/%{MM}/%{dd} 模式时,您可以将 key_prefix 设置为 /2023/01/24。 |
| region | 否 | 字符串 | S3 存储桶的 AWS 区域。默认为 us-east-1。 |
| sts_role_arn | 否 | 字符串 | DLQ 为写入 AWS S3 存储桶而承担的 STS 角色。默认值为 null,这将使用凭据的标准 SDK 行为。要使用此选项,S3 存储桶必须配置 S3:PutObject 权限。 |
将 DLQ 与 OpenSearch 接收器一起使用时,您可以配置 max_retries 选项,以便在接收器达到最大重试次数时将失败的数据发送到 DLQ。
指标
DLQ 支持以下指标。
计数器
dlqS3RecordsSuccess: 衡量发送到 S3 的成功记录数。dlqS3RecordsFailed: 衡量未能发送到 S3 的记录数。dlqS3RequestSuccess: 衡量成功的 S3 请求数。dlqS3RequestFailed: 衡量失败的 S3 请求数。
分布摘要
dlqS3RequestSizeBytes: 衡量 S3 请求有效负载大小(以字节为单位)的分布。
计时器
dlqS3RequestLatency: 衡量发送每个 S3 请求(包括重试)时的延迟。
DLQ 对象
DLQ 支持以下 DLQ 对象
pluginId: 发送至 DLQ 的事件的源插件 ID。pluginName: 插件名称。failedData: 包含失败对象及其选项的对象。此对象对于每个插件都是唯一的。pipelineName: 事件失败的 Data Prepper 管道名称。timestamp: 失败的时间戳,采用ISO8601格式。