Azure настроил проверку доступности внутреннего URL

#c# #.net #azure #azure-web-app-service #azure-application-insights

#c# #.net #azure #azure-web-app-service #azure-application-insights

Вопрос:

У меня есть общедоступное веб-приложение, в котором я могу настроить проверку доступности из Azure. У меня также есть частное веб-приложение, в котором проверка доступности завершается неудачей.

Я хочу отслеживать доступность моего внутреннего веб-приложения. В C # я до сих пор не нашел:

 TelemetryConfiguration.Active.InstrumentationKey = "application insights key";
var telemetryClient = new TelemetryClient();
var avail = new Microsoft.ApplicationInsights.DataContracts.AvailabilityTelemetry();
telemetryClient.TrackAvailability(avail);
  

Однако этот код не завершен. Я не уверен, как бы я указал свой внутренний URL и где я увидел бы результаты.

Комментарии:

1. Для мониторинга внутреннего URL-адреса вам следует сначала прочитать это, могу ли я контролировать веб-сервер интрасети .

2. @IvanYang На всякий случай, включает ли эта статья также веб-приложение, которое находится в Azure, но имеет частный URL-адрес (на котором не выполняется базовый тест доступности)?

3. Насколько я знаю, нет. Но вы можете поднять проблему по этому поводу в этой статье -> раздел отзывов.

4. @IvanYang Тогда извините, что не совсем ясно выразился, мое частное веб-приложение находится в Azure, и именно там я хочу провести тест доступности.

5. можете ли вы просто использовать код, который у вас есть в частном веб-приложении, а затем проверить телеметрию на портале?

Ответ №1:

Для внутренней сети, прежде всего, вы должны убедиться, что «разрешить трафик для наших служб с помощью исключений брандмауэра или перенаправлений прокси»., подробности здесь.

Затем простой строкой кода просто определите некоторые конкретные свойства или имя для вашего внутреннего URL-адреса в AvailabilityTelemetry.

             var client = new TelemetryClient();
            TelemetryConfiguration.Active.InstrumentationKey = "xxxxx";
            AvailabilityTelemetry a = new AvailabilityTelemetry();
            a.Name = "this is your_web_site_name or other unique value";

            //or some properties like below
            //a.Properties.Add("p1", "my internal web");

            client.TrackAvailability(a);
  

Затем после выполнения вы можете проверить, есть ли телеметрия доступности на портале azure -> ваша служба анализа приложений:

введите описание изображения здесь

Комментарии:

1. Извините, к сожалению, в конце концов, это не работает с указанием URL веб-сайта для a.Name . a.Name это просто название теста… Если я помещу a.Name = «Test» через 5 минут в application insights появится надпись «Test». Должен был увидеть это раньше.

2. Всегда есть некоторая задержка для сообщений, отображаемых в application insights. Данные телеметрии сначала будут пакетно обрабатываться, а затем отправляться в application insights.

3. Нет, но я имею в виду, что на самом деле он не отслеживает URL веб-сайта, он просто будет отображаться на портале независимо от значения, которое вы даете для a.Name в вашем коде. Если вы дадите a.Name = «dgaagd», тогда он покажет 100% доступность на «dgaagd», чтобы привести пример.

4. Еще одна проблема, которую я обнаружил здесь, заключается в том, что если функциональное приложение отключено / остановлено, этот «тест доступности» не будет работать.