Фильтрация информации в Google Cloud Traces из разных кластеров gke в одном проекте GCP

У меня есть один проект GCP, в котором есть два кластера GKE: один для рабочих нагрузок разработки и подготовки производства, а другой - для производства.

Я использую Google Cloud Trace для сопоставления информации о различных вызовах микросервиса Spring Boot.

Проблема в том, что в представлении списка трассировки отображаются все вызовы из двух кластеров одновременно, поэтому сложно отличить производственные вызовы от других:

введите описание изображения здесь

Есть ли способ отфильтровать звонки из разных кластеров?

В противном случае одним из решений было бы изолировать производственный кластер GKE в его собственном проекте GCP. Это хорошая практика?


comment
У вас нет Add trace filter... текстового поля над этим графиком?   -  person erk    schedule 30.01.2021
comment
Да, но ни одна из доступных опций не позволяет фильтровать что-то вроде k8s-namespace, кластера чего угодно ...   -  person codependent    schedule 30.01.2021


Ответы (1)


Чтобы решить эту проблему, мне пришлось настроить информацию о диапазоне в приложениях 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)
    }
}

Затем в разделе «Добавить фильтр» я мог бы добавить пространство имен: mynamespace-dev и получить только нужные мне следы:

введите описание изображения здесь

person codependent    schedule 31.01.2021