Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 24815|Отговор: 1

[ASP.NET] ASP.NET Core Link Tracing (3) SkyAPM е базиран на динамична конфигурация Consul

[Копирай линк]
Публикувано на 2020-11-11 16:13:50 | | | |
Преглед:

ASP.NET Core Link Tracing (1) Инсталирайте урока за Skywalking
https://www.itsvse.com/thread-9456-1-1.html

ASP.NET Core link trace (2) използва интеграция със SkyAPM
https://www.itsvse.com/thread-9458-1-1.html



проект, можеш да го използвашКонсулилиАполонЗа да направите конфигурационния център, един урок за Consul като ASP.NET център за конфигурация на Core:

Архитектура: ASP.NET Core динамично конфигурира горещи актуализации въз основа на Consul
https://www.itsvse.com/thread-9421-1-1.html
Изисквания: Съхраняваме конфигурационната информация на APM в междинния софтуер на Consul, така че не се налага да влизаме в сървъра, за да променяме ръчно конфигурационната информация във файла appsettings.json.

Стартирай консул

Стартирайте consul middleware, като първо използвате следната команда:




Инсталирайте плъгини, свързани с Consul, ASP.NET Core

В нашия проект sky-apm-demo използвайте nuget, за да инсталирате Consul middleware като плъгин за четене на конфигурационния център със следната команда:

Модифицирайте метода CreateHostBuilder в обекта Program, за да добавите четенето на отдалечената конфигурационна информация на Consul, кодът е следният:

Междувременно, във файла appsettings.json, трябва да конфигурирате consul_url адреса, както следва:



Добавете нашата конфигурационна информация към Consul, за да отворите платформата за управление на уеб услугите:Входът към хиперлинк е видим.За създаване на sky-APM-demo/Appsettings. Development.json ключ стойността е следната:



Създайте нов test3 контролер метод, който да прочете информацията за конфигурацията на нашата консулска услуга за лесно тестване, както следва:

ДостъпВходът към хиперлинк е видим.Можете да получите конфигурацията, която задаваме нормално, както следва:



Като погледнете логовете skyapm-20201111.log, ще откриете, че адресът, където SkyApm има достъп до Skywalking, не е този, който сме конфигурирали, ноПо подразбиране: localhost:11800, както е показано на фигурата по-долу:



2020-11-11 15:32:35.869 +08:00 [My_Service] [Информация] SkyApm.Transport.Grpc.ConnectionManager : Изключване на връзката [localhost:11800].
2020-11-11 15:32:45.875 +08:00 [My_Service] [Грешка] SkyApm.Transport.Grpc.ConnectionManager : Тайм-аут на сървъра за свързване.
System.Threading.Tasks.TaskCanceledException: Reached deadline.
   at Grpc.Core.Channel.WaitForStateChangedAsync(ChannelState lastObservedState, Nullable'1 краен срок)
   в Grpc.Core.Channel.ConnectAsync(краен срок за Nullable'1)
   в SkyApm.Transport.Grpc.ConnectionManager.ConnectAsync()
Проверяваме изходния код на SkyAPM.Agent.AspNetCore в GitHub и установяваме, че ако нашата програма първо зададе настройките по подразбиране, а след това прочете конфигурационния файл appsettings.json skywalking.json skyapm.json, за да запише предишните стойности по подразбиране, както е показано на фигурата по-долу:



Относно конфигурацията, процесът на зареждане е следният:



Кога SkyAPM установи връзка със Skywalking?



Изходният код на SkyAPM има фонова задача InstrumentationHostedService при регистрация на IHostedService,.NET Core извиква методите StartAsync() и StopAsync() от тип IHostedService, съответно, при стартиране и спиране на приложението

Можете да се обърнете към:

Услуга, базирана на .NET Core в Linux
https://www.itsvse.com/thread-9447-1-1.html
Проблемът сега е, че конфигурационната информация, зададена от нашия консул, се презаписва с стандартната стойност на SkyAPM, и за да решим този проблем, трябва да модифицираме изходния код – изтеглим изходния код на SkyAPM от GitHub.

Променете файла ConfigurationFactory по следния начин:

Модифицирайте файла ConfigurationBuilderExtensions по следния начин:

За модифицирания изходен код можете да се обърнете към моя клон:Входът към хиперлинк е видим.

Добавена логическа преценка, когато конфигурацията на SkyAPM вече съществува, не използва стандартната стойност,Регенерацияsky-apm-demo и SkyApm.Agent.AspNetCore проекти, копирайте всички файлове от модифицираната библиотека \src\SkyApm.Agent.AspNetCore\bin\Debug\netcoreapp3.1 в нашата папка Project \bin\Debug\netcoreapp3.1 и ги замените.Обновете браузъра си

Като разгледате логовете на APM, можете да установите, че информацията за конфигурацията в Consul е успешно прочетена и комуникацията със Skywalking е успешно установена, както е показано на фигурата по-долу:




(Край)




Предишен:. .NET MySQL Connector Conflicts DbProviderFactories (.NET MySQL Connector Conflicts DbP...
Следващ:.NET Core показва регистрирани услуги и реализации и техните жизнени цикли
Публикувано на 2023-6-2 14:24:31 |
Добър стикер
Отричане:
Целият софтуер, програмни материали или статии, публикувани от Code Farmer Network, са само за учебни и изследователски цели; Горното съдържание не трябва да се използва за търговски или незаконни цели, в противен случай потребителите ще понесат всички последствия. Информацията на този сайт идва от интернет, а споровете за авторски права нямат нищо общо с този сайт. Трябва напълно да изтриете горното съдържание от компютъра си в рамките на 24 часа след изтеглянето. Ако ви харесва програмата, моля, подкрепете оригинален софтуер, купете регистрация и получете по-добри услуги. Ако има нарушение, моля, свържете се с нас по имейл.

Mail To:help@itsvse.com