过滤来自同一 GCP 项目中不同 gke 集群的 Google Cloud Traces 中的信息

Filtering information in Google Cloud Traces from different gke clusters in same GCP project

我有一个 GCP 项目,其中有两个 GKE 集群,一个用于开发和预生产工作负载,另一个用于生产。

我正在使用 Google Cloud Trace 关联不同 Spring 引导微服务调用的信息。

问题是跟踪列表视图同时显示来自两个集群的所有调用,因此很难区分生产调用和其他调用:

有没有办法过滤来自不同集群的调用?

如果没有,一种解决方案是将 GKE 生产集群隔离在其自己的 GCP 项目中。这是一个好习惯吗?

为了解决这个问题,我必须在 Spring 引导应用程序中自定义跨度信息,添加命名空间:

@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)
    }
}

然后在“添加过滤器”部分我可以添加 namespace:mynamespace-dev 并获得我需要的跟踪: