过滤来自同一 GCP 项目中不同 gke 集群的 Google Cloud Traces 中的信息
Filtering information in Google Cloud Traces from different gke clusters in same GCP project
-
google-cloud-platform
-
google-cloud-trace
-
spring-cloud-sleuth
-
spring-cloud-gcp
-
spring-cloud-kubernetes
我有一个 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 并获得我需要的跟踪:
google-cloud-platform
google-cloud-trace
spring-cloud-sleuth
spring-cloud-gcp
spring-cloud-kubernetes
我有一个 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 并获得我需要的跟踪: