Mamy kilka problemów (przeczytaj długi czas reakcji) z kilkoma projektami w produkcji i chciałem zobaczyć, co dokładnie dzieje się na serwerze. Następnie przystąpiłem do dodawania statystyk aplikacji do wszystkich naszych projektów, postępując zgodnie z this article. Problem polega na tym, że oba nasze projekty WebAPI nie wysyłają danych serwera do portalu Azure, podczas gdy wszystkie inne projekty (MVC 5) są.Jak włączyć telemetrię serwera Application Insights w projekcie WebApi, który używa OWIN?
to, co jest wyświetlane, kiedy dostęp do odpowiednich Insights aplikacji tarczy na Azure:
starałem się wyłączyć i ponownie włączyć zbieranie danych w aplikacji Insights Status Monitor w naszej Azure maszyn wirtualnych, ponownie uruchomił IIS kilka razy podczas wysyłania żądań do API, bezskutecznie. Po włączeniu go w projekcie MVC niemal natychmiast widzę dane w portalu Azure po otwarciu stron w witrynie.
Kiedy zobaczyłem, że dane nie były wysyłane z naszych maszyn wirtualnych Azure dla tych konkretnych projektów, próbowałem ustawić te same kolekcje w naszym środowisku deweloperskim, które jest hostowane we własnej infrastrukturze, i ta sama sytuacja powtórzyła się, wyklucza możliwość, że jest to związane z projektami hostowanymi na maszynach wirtualnych Azure.
Nie jestem do końca pewien, co uniemożliwia wysyłanie danych do Azure, ale patrząc na projekty robocze w stosunku do nie pracujących, myślę, że może to być w jakiś sposób związane z faktem, że nasze projekty WebAPI użyj nowego potoku OWIN, podczas gdy MVC są standardowymi projektami MVC. Sprawdziłem zarówno plik web.config, jak i folder bin dla obu typów projektów i wydają się być poprawnie modyfikowane przez Insights Monitor (widzę te same nowe biblioteki dll dodane do folderu bin i ten sam moduł http dodany do sieci. config).
Mając to na uwadze, w jaki sposób włączyć telemetrię po stronie serwera, korzystając z aplikacji Insight dla projektów WebAPI, które opierają się na potoku OWIN/Katana? Co mogę zrobić, aby dowiedzieć się, co dokładnie powoduje, że projekt nie wysyła danych do platformy Azure w tym przypadku?
W zasadzie mówisz, że nie można zintegrować sztucznej inteligencji w projekcie WebAPI wykorzystującym OWIN/Katana bez modyfikacji kodu? Naprawdę chciałbym tego uniknąć, ponieważ potrzebujemy teraz tylko tymczasowego profilowania, aby wykryć i naprawić spowolnienie, a następnie ponownie usunąć sztuczną inteligencję z projektów. Jeśli potrzebne są modyfikacje kodu, oznacza to, że będziemy musieli wdrożyć całkowicie nową wersję do produkcji, aby zdiagnozować problem, co jest obecnie dużym problemem. – julealgon
AI nie jest profilem. Jest to SDK dla oprzyrządowania kodu. Obsługa pól aplikacji asp.net, które używają zwykłego stosu IIS, jest niedostępna. Jeśli onBegin i onEnd nie są wywoływane, kod AI nie jest wywoływany. –
Rozumiem to, ale nasz obecny scenariusz znacznie skorzystałby z telemetrii Monitora aplikacji w rzeczywistym środowisku. Jeśli podejmiemy teraz podejście kodowe, oznacza to, że będziemy musieli opracować plan zarządzania kluczami w różnych środowiskach, sposobu ich ustawiania, gdzie w kodzie będzie to konieczne itd. Niestety, nie Teraz nie ma czasu na te zadania i musimy rozwiązać problem tak szybko, jak to możliwe, więc to bardzo smutne, że ten proces nie działa. Czy jesteś z zespołu programistów? Czy zastanawiałeś się już, czy nie wyjąć katany z pudełka? – julealgon