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"
问题
- 这里有
AND
操作的方法吗?
- 是否还有一种方法可以“搜索”pods?目前,我总是必须深入研究我的工作负载并挖掘 pod id(上面的示例:bd4c9bf4d-nv4k2),以便我可以在查询中使用它。通过这样做,我只需在 Google 云控制台中单击
View Logs
就会更快。所以恕我直言,这不是一个快速的方法。
您可以使用 2 个运算符
- :是包含运算符
- () 是组运算符
使用 : 您可以搜索部分名称。使用此 resource.labels.pod_name: "fooservice"
匹配所有 fooservice pod 名称。
您可以使用 () 对值进行分组或比较,例如 ("foo" OR "bar")
如果你把它们放在一起
resource.labels.pod_name: ("fooservice" OR "barservice")
-> 此过滤器允许您过滤包含值“fooservice”或“barservice”的 pod_name
我目前正在使用 Google Stackdriver(新布局!)调查我的日志记录。在我的例子中,有三个服务相互通信。我很乐意以最方便的方式以我的信息记录的形式看到他们之间的交流。
FooService > BarService > SnickerService
现状
目前我只能看到任一服务的日志。所以我开始打开三个浏览器选项卡并打开所有三个提到的服务日志。现在我弄清楚 timestamp/range 是 FooService
开始调用 BarService
的地方。
我将此时间范围应用于其他剩余的两项服务。
这样我就可以大致了解流程是如何在这些服务之间分配的。
这种方法每次设置起来都超级笨拙
这让我想到了一个问题,是否可以将三个容器的日志记录整合到一个 Stackdriver 视图中?
在日志查询中我看到这个字段(例如 FooService)
resource.labels.pod_name="fooservice-bd4c9bf4d-nv4k2"
问题
- 这里有
AND
操作的方法吗? - 是否还有一种方法可以“搜索”pods?目前,我总是必须深入研究我的工作负载并挖掘 pod id(上面的示例:bd4c9bf4d-nv4k2),以便我可以在查询中使用它。通过这样做,我只需在 Google 云控制台中单击
View Logs
就会更快。所以恕我直言,这不是一个快速的方法。
您可以使用 2 个运算符
- :是包含运算符
- () 是组运算符
使用 : 您可以搜索部分名称。使用此 resource.labels.pod_name: "fooservice"
匹配所有 fooservice pod 名称。
您可以使用 () 对值进行分组或比较,例如 ("foo" OR "bar")
如果你把它们放在一起
resource.labels.pod_name: ("fooservice" OR "barservice")
-> 此过滤器允许您过滤包含值“fooservice”或“barservice”的 pod_name