死信队列
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
格式。