google-cloud-logging
属性
注意:schema 中还定义了 encrypt_fields = {"auth_config.private_key"}
,这意味着该字段将会被加密存储在 etcd 中。具体参考 。
该插件支持使用批处理器来聚合并批量处理条目(日志和数据)。这样可以避免该插件频繁地提交数据。默认情况下每 5
秒钟或队列中的数据达到 1000
条时,批处理器会自动提交数据,如需了解更多信息或自定义配置,请参考 Batch Processor。
名称 | 类型 | 必选项 | 默认值 | 有效值 | 描述 |
---|---|---|---|---|---|
log_format | object | 否 | {“host”: “$host”, “@timestamp”: “$time_iso8601”, “client_ip”: “$remote_addr”} | 以 JSON 格式的键值对来声明日志格式。对于值部分,仅支持字符串。如果是以 $ 开头。则表明获取 APISIX 变量 或 。 |
注意
该设置全局生效。如果指定了 ,则所有绑定 google-cloud-logging
的路由或服务都将使用该日志格式。
配置完成后,你将在日志系统中看到如下类似日志:
{"partialSuccess":false,"entries":[{"jsonPayload":{"client_ip":"127.0.0.1","host":"localhost","@timestamp":"2023-01-09T14:47:25+08:00","route_id":"1"},"resource":{"type":"global"},"insertId":"942e81f60b9157f0d46bc9f5a8f0cc40","logName":"projects/apisix/logs/apisix.apache.org%2Flogs","timestamp":"2023-01-09T14:47:25+08:00","labels":{"source":"apache-apisix-google-cloud-logging"}}]}
启用插件
以下示例展示了如何在指定路由上启用该插件:
完整配置
curl http://127.0.0.1:9180/apisix/admin/routes/1 \
{
"plugins": {
"google-cloud-logging": {
"auth_config":{
"project_id":"apisix",
"private_key":"-----BEGIN RSA PRIVATE KEY-----your private key-----END RSA PRIVATE KEY-----"
}
},
"type": "roundrobin",
"nodes": {
"127.0.0.1:1980": 1
}
},
"uri": "/hello"
}'
你可以通过以下命令向 APISIX 发出请求:
HTTP/1.1 200 OK
...
访问成功后,你可以登录 查看相关日志。
禁用插件
当你需要禁用该插件时,可以通过如下命令删除相应的 JSON 配置,APISIX 将会自动重新加载相关配置,无需重启服务: