Создал развертывание в Google Kubernetes с помощью jaegertracing / all- in-one общедоступный образ из Docker Hub
Затем представил развертывание с типом службы LoadBalancer.
Теперь запустил пользовательский интерфейс Jagger, и он работает, но не показывает никаких служб кроме jagger-query.
Я развернул свое приложение веб-API .net для тестирования на кубернетах.
В моем приложении есть только один веб-API, который успешно работает на движке Google Kubernetes и предоставляется через тип службы балансировки нагрузки. В API все данные жестко запрограммированы, и он не вызывает никаких других служб или баз данных.
В проекте использовались следующие пакеты nuget:
Jaeger -Версия 0.2.2
OpenTracing.Contrib.NetCore -Версия 0.5.0
Я добавил следующий код в файл Startup.cs моего API:
services.AddSingleton<ITracer>(serviceProvider =>
{
//string serviceName = Assembly.GetEntryAssembly().GetName().Name;
string serviceName = serviceProvider.GetRequiredService<IHostingEnvironment>().ApplicationName;
ILoggerFactory loggerFactory = serviceProvider.GetRequiredService<ILoggerFactory>();
ISampler sampler = new ConstSampler(sample: true);
string jaegerHost = Environment.GetEnvironmentVariable("jaeger_host");
var reporter = new RemoteReporter.Builder()
.WithLoggerFactory(loggerFactory)
.WithSender(new UdpSender(jaegerHost, 6831, 0)) // todo:
.Build();
ITracer tracer = new Tracer.Builder(serviceName)
.WithLoggerFactory(loggerFactory)
.WithSampler(sampler)
.WithReporter(reporter)
.Build();
GlobalTracer.Register(tracer);
return tracer;
});
services.AddOpenTracing();
Переменной среды jaegerHost назначается IP созданной службы jaeger.
Вопрос в том, как и где внести изменения, чтобы моя служба приложения стала доступной в пользовательском интерфейсе Jaeger, чтобы я мог видеть ее следы.
Я застрял здесь, может ли кто-нибудь помочь, как действовать дальше?
Service
в этом контексте? Не могли бы вы также рассказать немного о том, как вы развернули его на кубернетах? Это управляетсяDeployment
или, может быть,StatefulSet
? Я не уверен, что вам не нужно устанавливатьjaegerHost
черезjaeger_host
env var, а не на полное доменное имяPod
... Я предполагаю, что он должен иметь возможность привязки к адресу хоста. Может быть, даже localhost будет правильным значением? И еще одна деталь ... вы установили jaeger_host env var илиjaegerHost
, как написали в своем вопросе? - person mario   schedule 10.06.2020