跳到主要内容

参数​

请参阅插件通用配置,了解所有插件通用的配置选项。

  • nameserver_list

    array[string]

    必填


    RocketMQ 名称服务器列表。

  • topic

    string

    必填


    推送数据的目标主题。

  • key

    string


    消息的 Key。

  • tag

    string


    消息的 Tag。

  • log_format

    object


    使用 JSON 格式的键值对自定义日志格式。值可以引用内置变量。

    当 meta_format 为 default 时,如果 include_req_body 或 include_resp_body 为 true,请引用 $request_body 或 $resp_body,将已收集的请求体或响应体添加到自定义日志条目中。这些选项不会自动向自定义格式添加 Body 字段。

    从 APISIX 3.15.0 开始,日志格式支持最多 5 层深度的嵌套结构。在 API7 企业版中,仅支持扁平的键值对结构,暂不支持嵌套结构。

    当 meta_format 为 origin 时,此参数会被忽略。

    你也可以通过配置插件元数据来全局配置日志格式,这将对所有 rocketmq-logger 插件实例生效。如果单个插件实例配置的日志格式与插件元数据中配置的日志格式不同,则单个插件实例的配置优先级更高。有关更多详细信息,请参阅示例。

  • log_format_extra

    object


    用于向默认日志条目添加额外字段,使用 JSON 格式的键值对。值可引用内置变量。已配置的字段不会覆盖现有默认字段。插件实例优先于插件元数据;在实例上设置空对象会禁用元数据值。配置 log_format 或将 meta_format 配置为 origin 时,log_format_extra 会被忽略。

    自 API7 企业版 3.9.15、3.10.2 和 APISIX 3.18.0 起引入。

  • timeout

    integer

    默认值:3


    向 RocketMQ 发送数据的超时时间,单位为秒。

  • use_tls

    boolean

    默认值:false


    如果为 true,则使用 TLS 连接 RocketMQ。

  • access_key

    string


    ACL 的访问密钥。设置为空字符串将禁用 ACL。

  • secret_key

    string


    ACL 的密钥。该值在存储到 etcd 前会使用 AES 加密。

  • name

    string

    默认值:rocketmq logger


    批处理器的唯一标识符。如果你使用 Prometheus 监控 APISIX 指标,该名称将导出在 apisix_batch_process_entries 中。

  • meta_format

    string

    默认值:default

    有效值:

    default 或 origin


    收集请求信息所用的格式。设为 default 时使用结构化 JSON,设为 origin 时使用原始 HTTP 请求。有关更多详细信息,请参阅示例。

  • include_req_body

    boolean

    默认值:false


    如果为 true,则收集请求体。当 meta_format 为 default 时,将其添加到默认日志字段;当 meta_format 为 origin 时,将其追加到原始 HTTP 请求。无论请求体缓存在内存还是临时文件中,都可以记录;max_req_body_bytes 限制所记录请求体的大小。

  • include_req_body_expr

    array[array]


    一个或多个 APISIX 表达式形式的条件数组。当 include_req_body 为 true 时使用。仅当表达式求值为 true 时才记录请求体。

  • include_resp_body

    boolean

    默认值:false


    如果为 true,则收集响应体。使用默认日志字段时,它会添加到 response.body;使用自定义 log_format 时,请引用 $resp_body 将其添加到日志条目中。当 meta_format 为 origin 时,不会添加响应体。max_resp_body_bytes 参数限制所记录响应体的大小。

  • include_resp_body_expr

    array[array]


    一个或多个 APISIX 表达式形式的条件数组。当 include_resp_body 为 true 时使用。仅当表达式求值为 true 时才记录响应体。

  • max_req_body_bytes

    integer

    默认值:524288

    有效值:

    大于或等于 1


    日志中包含的请求体大小上限(字节)。如果请求体超过此值,将被截断。自 APISIX 3.16.0 起可用。

  • max_resp_body_bytes

    integer

    默认值:524288

    有效值:

    大于或等于 1


    日志中包含的响应体大小上限(字节)。如果响应体超过此值,将被截断。自 APISIX 3.16.0 起可用。

  • batch_max_size

    integer

    默认值:1000

    有效值:

    大于 0


    每一批次允许的最大日志条目数。一旦达到该数值,批次将被发送到日志服务。将此参数设置为 1 意味着立即处理。

  • inactive_timeout

    integer

    默认值:5

    有效值:

    大于 0


    在将批次发送到日志服务之前,等待新日志的最长时间(以秒为单位)。该值应小于 buffer_duration。

  • buffer_duration

    integer

    默认值:60

    有效值:

    大于 0


    批次中最旧条目在发送到日志服务之前允许保留的最长时间(以秒为单位)。

  • retry_delay

    integer

    默认值:1

    有效值:

    大于或等于 0


    如果批次发送失败,重试发送到日志服务的时间间隔(以秒为单位)。

  • max_retry_count

    integer

    默认值:0

    有效值:

    大于或等于 0


    在丢弃日志条目之前允许的最大失败重试次数。

插件元数据​

  • log_format

    object


    使用 JSON 格式的键值对自定义日志格式。值可以引用内置变量。

    从 APISIX 3.15.0 开始,日志格式支持最多 5 层深度的嵌套结构。在 API7 企业版中,仅支持扁平的键值对结构,暂不支持嵌套结构。

    对于 meta_format 为 origin 的插件实例,此配置会被忽略。

  • log_format_extra

    object


    用于向默认日志条目添加额外字段,使用 JSON 格式的键值对。值可引用内置变量。已配置的字段不会覆盖现有默认字段。插件实例优先于插件元数据;在实例上设置空对象会禁用元数据值。配置 log_format 或插件实例使用 meta_format: origin 时,log_format_extra 会被忽略。

    自 API7 企业版 3.9.15、3.10.2 和 APISIX 3.18.0 起引入。

  • max_pending_entries

    integer

    默认值:在 APISIX 3.18.0 与 API7 企业版 3.9.19、3.10.6 中为 `8192`;API7 企业版 3.9.18 与 3.10.5 中无默认值

    有效值:

    大于或等于 1


    批处理器中等待处理的最大条目数。当积压达到此限制时,新条目会被丢弃。

    此参数在 API7 企业版 3.8.17 和 APISIX 3.15.0 中引入。

    在 APISIX 3.18.0、API7 企业版 3.9.19 和 3.10.6 中,默认值变更为 8192。在 API7 企业版 3.9.18、3.10.5 及更早的 APISIX 版本中,省略该参数会使积压队列不设上限。

    有关容量规划和验证指南,请参见批处理器。