
# KafkaLogContent
表1KafkaLogContent 
| 参数              | 是否必选 | 参数类型                                                                                           | 描述                        |
|:---|:---|:---|:---|
| broker_list     | 是    | Array of strings                                                                               | 目标的Kafka的Broker地址列表。      |
| topic           | 是    | String                                                                                         | 目标的Kafka上报日志的主题。          |
| key             | 否    | String                                                                                         | 用于消息的分区分配的key。            |
| max_retry_count | 否    | Integer                                                                                        | 消息发送失败后的重试次数，默认为0，范围0\~5。 |
| retry_backoff   | 否    | Integer                                                                                        | 每次失败后的间隔时间，单位为秒，范围1\~10。  |
| sasl_config     | 否    | [PluginKafkaLogSaslConfig] object | Kafka日志插件的SASL配置信息。       |
| meta_config     | 否    | [PluginKafkaLogMetaConfig] object | Kafka日志插件元数据配置信息。         |
   
 表2PluginKafkaLogSaslConfig 
| 参数                | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
|:---|:---|:---|:---|
| security_protocol | 否    | String | 安全协议。缺省为PLAINTEXT。支持的取值： - PLAINTEXT：默认接入点的用户认证协议  - SASL_PLAINTEXT：SASL用户认证协议  - SASL_SSL：SSL用户认证协议   |
| sasl_mechanisms   | 否    | String | 消息收发的机制，默认为PLAIN。                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| sasl_username     | 否    | String | SASL用户名。 当security_protocol为SASL_PLAINTEXT或SASL_SSL时必须填写； 当security_protocol为PLAINTEXT时忽略。                                                                                                                                                                                                                                                                                                                            |
| sasl_password     | 否    | String | SASL用户密码。 当security_protocol为SASL_PLAINTEXT或SASL_SSL时必须填写； 当security_protocol为PLAINTEXT时忽略。                                                                                                                                                                                                                                                                                                                             |
| ssl_ca_content    | 否    | String | CA证书内容。当security_protocol为SASL_SSL时必须填写。                                                                                                                                                                                                                                                                                                                                                                                                                           |
   
 表3PluginKafkaLogMetaConfig 
| 参数        | 是否必选 | 参数类型                                                                                               | 描述                 |
|:---|:---|:---|:---|
| system    | 否    | [PluginKafkaLogMetaSystem] object     | Kafka日志元数据系统配置。    |
| call_data | 否    | [PluginKafkaLogMetaCallData] object | Kafka日志插件的元数据调用数据。 |
   
 表4PluginKafkaLogMetaSystem 
| 参数                         | 是否必选 | 参数类型    | 描述                                                        |
|:---|:---|:---|:---|
| start_time                 | 否    | Boolean | 是否上报Kafka请求开始时间，unix时间戳，缺省为true。                          |
| request_id                 | 否    | Boolean | 是否上报Kafka请求唯一ID，缺省为true。                                  |
| client_ip                  | 否    | Boolean | 是否上报Kafka请求客户端IP，缺省为true。                                 |
| api_id                     | 否    | Boolean | 是否上报KafkaAPI的编号。                                          |
| user_name                  | 否    | Boolean | 是否上报Kafka用户名。                                             |
| app_id                     | 否    | Boolean | 是否上报KafkaAPP客户端编号。                                        |
| request_time               | 否    | Boolean | 是否上报Kafka请求总时长，单位秒，缺省为true。                               |
| http_status                | 否    | Boolean | 是否上报Kafka请求响应码，缺省为true。                                   |
| server_protocol            | 否    | Boolean | 是否上报Kafka请求的协议版本，"HTTP/1.0"或"HTTP/1.1"。                   |
| scheme                     | 否    | Boolean | 是否上报Kafka请求的协议类型，HTTP或HTTPS，缺省为true。                      |
| request_method             | 否    | Boolean | 是否上报Kafka请求方法，缺省为true。                                    |
| host                       | 否    | Boolean | 是否上报Kafka请求的HOST，IP:PORT或者域名:PORT，缺省为true。                |
| api_uri_mode               | 否    | Boolean | 是否上报Kafka请求的匹配模式，NORMAL或SWA。                              |
| uri                        | 否    | Boolean | 是否上报Kafka请求的URI，缺省为true。                                  |
| request_size               | 否    | Boolean | 是否上报Kafka请求消息大小，单位为byte。                                  |
| response_size              | 否    | Boolean | 是否上报Kafka响应消息大小，单位为byte。                                  |
| upstream_uri               | 否    | Boolean | 是否上报Kafka请求后端的URI。                                        |
| upstream_addr              | 否    | Boolean | 是否上报Kafka后端的地址，缺省为true。                                   |
| upstream_status            | 否    | Boolean | 是否上报Kafka后端响应状态码，缺省为true。                                 |
| upstream_connect_time      | 否    | Boolean | 是否上报Kafka后端连接时间，单位秒。                                      |
| upstream_header_time       | 否    | Boolean | 是否上报Kafka后端响应头域返回时长，单位秒。                                  |
| upstream_response_time     | 否    | Boolean | 是否上报Kafka后端响应总时长，单位秒，缺省为true。                             |
| http_x_forwarded_for       | 否    | Boolean | 是否上报Kafka请求的x_forwarded_for内容，缺省为true。                    |
| http_user_agent            | 否    | Boolean | 是否上报Kafka请求的用户代理内容，缺省为true。                               |
| region_id                  | 否    | Boolean | 是否上报Kafka当前RegionID。                                      |
| all_upstream_response_time | 否    | Boolean | 是否上报Kafka请求从开始与后端建立连接到从后端获取到最后一个字节所用时间，发生重试时，为所用时间总和，单位秒。 |
| error_type                 | 否    | Boolean | 是否上报Kafka请求错误的类型，0：非流控错误，1：流控错误，缺省为true。                  |
| auth_type                  | 否    | Boolean | 是否上报Kafka请求的API认证类型。                                      |
| access_model1              | 否    | Boolean | 是否上报Kafka请求认证模式1。                                         |
| access_model2              | 否    | Boolean | 是否上报Kafka请求认证模式2，开启双重认证时，为自定义认证编号。                        |
| inner_time                 | 否    | Boolean | 是否上报Kafka网关内部处理时长，单位秒。                                    |
| proxy_protocol_vni         | 否    | Boolean | 是否上报Kafka请求时VPCEP中的虚拟网络标识。                                |
| proxy_protocol_vpce_id     | 否    | Boolean | 是否上报Kafka请求时VPCEP中编号。                                     |
| proxy_protocol_addr        | 否    | Boolean | 是否上报Kafka请求的pp2的地址。                                       |
| body_bytes_sent            | 否    | Boolean | 是否上报Kafka请求的body大小。                                       |
| api_name                   | 否    | Boolean | 是否上报Kafka请求的API名称。                                        |
| app_name                   | 否    | Boolean | 是否上报Kafka请求的调用APP名称。                                      |
| provider_app_id            | 否    | Boolean | 是否上报Kafka请求的API归属的APP编号。                                  |
| provider_app_name          | 否    | Boolean | 是否上报Kafka请求的API归属的APP名称。                                  |
| custom_data_log01          | 否    | Boolean | 是否上报Kafka客户自定义日志预留字段01。                                   |
| custom_data_log02          | 否    | Boolean | 是否上报Kafka客户自定义日志预留字段02。                                   |
| custom_data_log03          | 否    | Boolean | 是否上报Kafka客户自定义日志预留字段03。                                   |
| custom_data_log04          | 否    | Boolean | 是否上报Kafka客户自定义日志预留字段04。                                   |
| custom_data_log05          | 否    | Boolean | 是否上报Kafka客户自定义日志预留字段05。                                   |
| custom_data_log06          | 否    | Boolean | 是否上报Kafka客户自定义日志预留字段06。                                   |
| custom_data_log07          | 否    | Boolean | 是否上报Kafka客户自定义日志预留字段07。                                   |
| custom_data_log08          | 否    | Boolean | 是否上报Kafka客户自定义日志预留字段08。                                   |
| custom_data_log09          | 否    | Boolean | 是否上报Kafka客户自定义日志预留字段09。                                   |
| custom_data_log10          | 否    | Boolean | 是否上报Kafka客户自定义日志预留字段10。                                   |
| response_source            | 否    | Boolean | 是否上报Kafka请求响应来源，local：API网关；remote：后端服务。                  |
   
 表5PluginKafkaLogMetaCallData 
| 参数                          | 是否必选 | 参数类型                                                                                                   | 描述                                      |
|:---|:---|:---|:---|
| log_request_header          | 否    | Boolean                                                                                                | 日志是否包含请求头域信息，默认false不包含。                |
| request_header_filter       | 否    | String                                                                                                 | 日志可包含的请求头域字段，支持英文逗号分隔，或\*通配支持。          |
| log_request_query_string    | 否    | Boolean                                                                                                | 日志是否包含请求QueryString信息，默认false不包含。       |
| request_query_string_filter | 否    | String                                                                                                 | 日志可包含的请求QueryString字段，支持英文逗号分隔，或\*通配支持。 |
| log_request_body            | 否    | Boolean                                                                                                | 日志是否包含请求body体信息，默认false不包含。             |
| log_response_header         | 否    | Boolean                                                                                                | 日志是否包含响应头域信息，默认false不包含。                |
| response_header_filter      | 否    | String                                                                                                 | 日志可包含的响应头域字段，支持英文逗号分隔，或\*通配支持。          |
| log_response_body           | 否    | Boolean                                                                                                | 日志是否包含响应body体信息，默认false不包含。             |
| custom_authorizer           | 否    | [PluginKafkaLogMetaAuthorizer] object | Kafka日志元数据自定义认证配置。                      |
   
 表6PluginKafkaLogMetaAuthorizer 
| 参数       | 是否必选 | 参数类型             | 描述               |
|:---|:---|:---|:---|
| frontend | 否    | Array of strings | 前端自定义认证响应日志字段集合。 |
| backend  | 否    | Array of strings | 后端自定义认证响应日志字段集合。 |
   
