google-cloud-platform - 从同一 GCP 项目中的不同 gke 集群中过滤 Google Cloud Traces 中的信息
问题描述
我有一个 GCP 项目,其中有两个 GKE 集群,一个用于开发和预生产工作负载,另一个用于生产。
我正在使用 Google Cloud Trace 来关联不同 Spring Boot 微服务调用的信息。
问题是 Trace 列表视图同时显示了来自两个集群的所有调用,因此很难将生产调用与其他集群区分开来:
有没有办法过滤来自不同集群的调用?
如果没有,一种解决方案是将 GKE 生产集群隔离在其自己的 GCP 项目中。这是一个好习惯吗?
解决方案
为了解决这个问题,我必须在 Spring Boot 应用程序中自定义跨度信息,添加命名空间:
@Component
class SpanCustomizerFilter(private val spanCustomizer: SpanCustomizer) : WebFilter {
override fun filter(exchange: ServerWebExchange, chain: WebFilterChain): Mono<Void> {
spanCustomizer.tag("namespace", System.getenv("POD_NAMESPACE"))
return chain.filter(exchange)
}
}
然后在 Add filter 部分,我可以添加 namespace:mynamespace-dev 并获得我需要的跟踪:
推荐阅读
- python - 如何在硒中使用 CTRL + Z?
- javascript - JavaScript 中的过时闭包问题
- python - 我需要为列表返回什么,我是否需要边缘案例重复的代码?
- python - ElasticSearch+Pyspark 读取性能慢
- function - 在 Visual Studio 的下拉列表中不按字母顺序列出成员函数
- flutter - setState 来自外部的 showDialog()
- php - Laravel 迁移回滚
- android - 如何使用 SQLite 内容提供程序和 itemOnClickListener 删除 ListView 中的单个项目
- google-chrome - 谷歌浏览器:避免关闭固定标签
- jquery - django.jQuery 不是函数