Невозможно увидеть имя сервиса в 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
Опция для агента и сборщика (или все-в-одном, в вашем случае), чтобы увидеть, когда эти компоненты получают промежуток от клиента.