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

xet*_*a11 3 google-cloud-platform google-cloud-stackdriver

我目前正在使用 Google Stackdriver(新布局!)来调查我的日志记录。就我而言,有三个服务相互通信。我很乐意看到他们以最方便的方式以我的信息记录的形式彼此之间进行通信。

FooService > BarService > SnickerService

现状

目前我只能看到其中一项服务的日志。因此,我开始打开三个浏览器选项卡并打开所有三个提到的服务日志。现在我找出FooService开始调用的时间戳/范围BarService。这个时间范围我适用于其他剩余的两项服务。这样我就可以了解流程如何在这些服务之间分配。

然而这种方法每次设置都非常尴尬

这让我想到一个问题:我是否可以将三个容器的日志记录放入一个 Stackdriver 视图中?

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

resource.labels.pod_name="fooservice-bd4c9bf4d-nv4k2"
Run Code Online (Sandbox Code Playgroud)

问题

  • AND这里有办法做手术吗?
  • 还有一种方法可以“搜索”pod吗?目前,我总是必须深入研究我的工作负载并挖掘 pod id(上面的示例:bd4c9bf4d-nv4k2),以便我可以在查询中使用它。通过这样做,我只需点击View LogsGoogle Cloud Console 就会更快。所以恕我直言,这并不是一个快速的方法。

gui*_*ere 6

您可以使用 2 个运算符

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

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

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

如果你把所有的放在一起

resource.labels.pod_name: ("fooservice" OR "barservice")
Run Code Online (Sandbox Code Playgroud)

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