首页 > 解决方案 > 堆栈驱动程序查询抛出 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"

上面的查询工作正常。

标签: logginggoogle-apistackdrivergoogle-cloud-stackdriver

解决方案


如果您已经在集群上设置了新的Stackdriver Kubernetes Engine Monitoring ,则归档pod 名称的方式应如下所示:

resource.labels.pod_name="POD_NAME"

这应该向您显示您正在尝试查看的 pod。


推荐阅读