问题描述
我目前正在使用Google Stackdriver(新版式!)来调查我的日志记录。在我的情况下,相互之间有三种服务进行通信。我希望以最方便的方式以INFO日志的形式查看它们之间的通信。
FooService > BarService > SnickerService
状态现状
当前,我只能看到其中一项服务的日志。因此,我开始打开三个浏览器选项卡,并打开所有提到的三个服务日志。现在,我找出FooService
开始调用BarService
的时间戳/范围。
我将这个时间范围应用于其他两个服务。
这样一来,我就可以大致了解流程如何在这些服务之间分配。
这种方法每次都很难设置
这使我想到一个问题,是否可以将三个容器的日志记录带入一个Stackdriver视图?
在日志查询中,我看到此字段(例如FooService)
resource.labels.pod_name="fooservice-bd4c9bf4d-nv4k2"
问题
- 这里是否可以进行
AND
操作? - 是否还有一种“搜索”豆荚的方法?此刻,我始终必须深入研究工作负载并挖掘pod的ID(上面的示例:bd4c9bf4d-nv4k2),以便可以在查询中使用它。这样,我只需在Google Cloud Console中单击
View Logs
就能更快。因此,恕我直言,这不是快速的方法。
解决方法
您可以使用2个运算符
- :是包含运算符
- ()是组操作员
使用:您可以搜索部分名称。使用此resource.labels.pod_name: "fooservice"
与所有 fooservice 吊舱名称匹配。
使用(),您可以将值或比较进行分组,例如(“ foo”或“ bar”)
如果全部放在一起
resource.labels.pod_name: ("fooservice" OR "barservice")
->此过滤器使您可以过滤包含值“ fooservice”或“ barservice”的pod_name