Google Stackdriver - 如何在一个视图中显示多个容器的日志?

Google Stackdriver - How can I show the logs of multiple containers in one view?

我目前正在使用 Google Stackdriver(新布局!)调查我的日志记录。在我的例子中,有三个服务相互通信。我很乐意以最方便的方式以我的信息记录的形式看到他们之间的交流。

FooService > BarService > SnickerService

现状

目前我只能看到任一服务的日志。所以我开始打开三个浏览器选项卡并打开所有三个提到的服务日志。现在我弄清楚 timestamp/range 是 FooService 开始调用 BarService 的地方。 我将此时间范围应用于其他剩余的两项服务。 这样我就可以大致了解流程是如何在这些服务之间分配的。

这种方法每次设置起来都超级笨拙

这让我想到了一个问题,是否可以将三个容器的日志记录整合到一个 Stackdriver 视图中?

在日志查询中我看到这个字段(例如 FooService)

resource.labels.pod_name="fooservice-bd4c9bf4d-nv4k2"

问题

您可以使用 2 个运算符

  • :是包含运算符
  • () 是组运算符

使用 : 您可以搜索部分名称。使用此 resource.labels.pod_name: "fooservice" 匹配所有 fooservice pod 名称。

您可以使用 () 对值进行分组或比较,例如 ("foo" OR "bar")

如果你把它们放在一起

resource.labels.pod_name: ("fooservice" OR "barservice")

-> 此过滤器允许您过滤包含值“fooservice”或“barservice”的 pod_name