logging - 堆栈驱动程序查询抛出 400 GoogleJsonResponseException:400 错误请求“请求包含无效参数”
问题描述
我对堆栈驱动程序日志有以下查询
resource.labels.jsonPayload.kubernetes.pod_name=test-deployment-5c58c774b-tcdbq AND jsonPayload.env="dev" AND jsonPayload.kubernetes.namespace_name=filter-platform AND jsonPayload.kubernetes.labels."app.kubernetes.io/name"=gateway AND timestamp>="2020-01-21T17:58:00Z" AND timestamp<"2020-01-21T17:59:00Z"
这会抛出 400 并带有以下响应
GoogleJsonResponseException: 400 Bad Request { "code" : 400, "errors" : [ { "domain" : "global", "message" : "Request contains an invalid argument.", "reason" : "badRequest" } ], "message" : "Request contains an invalid argument.", "status" : "INVALID_ARGUMENT" }
当我像下面那样删除 pod_name 过滤器时,查询就起作用了。知道我尝试使用 pod_name 以及其他参数进行过滤的方式有什么问题吗?
jsonPayload.env="dev" AND jsonPayload.kubernetes.namespace_name=filter-platform AND jsonPayload.kubernetes.labels."app.kubernetes.io/name"=gateway AND timestamp>="2020-01-21T17:58:00Z" AND timestamp<"2020-01-21T17:59:00Z"
上面的查询工作正常。
解决方案
如果您已经在集群上设置了新的Stackdriver Kubernetes Engine Monitoring ,则归档pod 名称的方式应如下所示:
resource.labels.pod_name="POD_NAME"
这应该向您显示您正在尝试查看的 pod。
推荐阅读
- python - 我无法在我的 Django 模板中访问请求
- javascript - 在 express 项目中添加 create-react-app 作为前端
- node.js - 我可以使用 Express 和子域代理到内部 IP 吗?
- c# - SemaphoreSlim 类中的 WaitHandle.WaitOne() 方法无法正常工作
- ruby - 停止/终止/关闭/杀死/错误 Ruby 脚本中的批处理作业
- python - 如何使用python替换大型二维数组中存在的所有匹配数组?
- python-3.x - TypeError:“DataFrame”类型的对象不是 JSON 可序列化的
- matlab - Matlab类动态填充一个属性
- amazon-web-services - Elasticsearch 索引映射不起作用
- sql - 如何从其他两个表中插入表主键进行每个组合?