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

Вид: 24815|Ответ: 1

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

[Скопировать ссылку]
Опубликовано 2020-11-11 16:13:50 | | | |
Обзор:

ASP.NET Трассировка основных каналов (1) Установите учебник по Skywalking
https://www.itsvse.com/thread-9456-1-1.html

ASP.NET Трассировка основных каналов (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.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 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 Conflicts DbProviderFactories (.NET MySQL Connector Conflicts DbP...
Следующий:.NET Core отображает зарегистрированные сервисы и реализации, а также их жизненные циклы
Опубликовано 2023-6-2 14:24:31 |
Хорошая наклейка
Отказ:
Всё программное обеспечение, программные материалы или статьи, публикуемые Code Farmer Network, предназначены исключительно для учебных и исследовательских целей; Вышеуказанный контент не должен использоваться в коммерческих или незаконных целях, иначе пользователи несут все последствия. Информация на этом сайте взята из Интернета, и споры по авторским правам не имеют отношения к этому сайту. Вы должны полностью удалить вышеуказанный контент с компьютера в течение 24 часов после загрузки. Если вам нравится программа, пожалуйста, поддержите подлинное программное обеспечение, купите регистрацию и получите лучшие подлинные услуги. Если есть нарушение, пожалуйста, свяжитесь с нами по электронной почте.

Mail To:help@itsvse.com