Невозможно увидеть имя сервиса в jaeger ui - приложение Java Spring

Я пытаюсь интегрировать отслеживание Jaeger в моем приложении Java Spring. Я добавил следующий код в файл конфигурации:

@Bean public io.opentracing.Tracer jaegerTracer () {

    Sender sender = new HttpSender("http://localhost:14268/api/traces");
    com.uber.jaeger.Configuration.SenderConfiguration senderConfiguration = new com.uber.jaeger.Configuration
            .SenderConfiguration.Builder()
            .sender(sender)
            .build();

    return new com.uber.jaeger.Configuration("pilot-tracking",
            new com.uber.jaeger.Configuration.SamplerConfiguration(ProbabilisticSampler.TYPE, 1),
            new com.uber.jaeger.Configuration.ReporterConfiguration(sender)).getTracer();
}

и использовал следующую команду docker:

Docker run -d -p 5775:5775/udp -p 6831:6831/udp -p 6832:6832/udp -p 5778:5778 -p 16686:16686 -p 14268:14268 jaegertracing/all-in-one: последний

Тем не менее, я не могу найти свой сервис в jaeger-ui

После нажатия на этот URL: http://localhost:5778/?service=pilot-tracking Вывод: ошибка tcollector: ошибка tchannel ErrCodeBadRequest: нет обработчика для службы "jaeger-collector" и метода "SamplingManager::getSamplingStrategy"

Пожалуйста помоги!!

1 ответ

Это кажется немного старым, и трудно сказать, что не так. Моим первым предположением была бы стратегия выборки, так как Jaeger выбирает одну трассу из тысячи, но похоже, что вы ее установили.

JAEGER_SAMPLER_TYPE=const JAEGER_SAMPLER_PARAM=1

Я бы порекомендовал вам начать с использования простого Configuration.fromEnv().getTracer() чтобы получить ваш трассировщик. Затем управляйте им через env vars, возможно, установив JAEGER_REPORTER_LOG_SPANS в true, С этой опцией вы сможете видеть в журналах всякий раз, когда Jaeger испускает диапазон.

Вы также можете установить --log-level=debug Опция для агента и сборщика (или все-в-одном, в вашем случае), чтобы увидеть, когда эти компоненты получают промежуток от клиента.

Другие вопросы по тегам