Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 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 tracing (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, спочатку використавши таку команду:




Встановити плагіни, пов'язані з Consul, ASP.NET Core

У нашому проєкті sky-apm-demo використовуйте nuget для встановлення проміжного програмного забезпечення Consul як плагіна для читання центру конфігурації за допомогою наступної команди:

Модифікуйте метод 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.Manager: Вимкнення з'єднання [localhost:11800].
2020-11-11 15:32:45.875 +08:00 [My_Service] [Помилка] SkyApm.Transport.Grpc.ConnectionManager : Тайм-аут підключення сервера.
System.Threading.Tasks.TaskCanceledException: Reached deadline.
   на Grpc.Core.Channel.WaitForStateChangedAsync(ChannelState lastObservedState, Nullable'1 deadline)
   на 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 у нашу папку \bin\Debug\netcoreapp3.1 і замініть їх.Оновіть браузер

Переглянувши журнали APM, можна побачити, що інформація конфігурації в Consul була успішно прочитана і зв'язок із Skywalking успішно встановлено, як показано на рисунку нижче:




(Кінець)




Попередній:. .NET MySQL Connector конфлікти DbProviderFactories (.NET MySQL Connector Conflicts DbP...
Наступний:.NET Core відображає зареєстровані сервіси та реалізації та їхні життєві цикли
Опубліковано 2023-6-2 14:24:31 |
Гарна наклейка
Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com