Co to jest śledzenie rozproszone?

Pojawienie się nowoczesnych architektur chmur i mikrousług doprowadziło do prostych, niezależnie wdrożonych usług, które mogą pomóc zmniejszyć koszty przy jednoczesnym zwiększeniu dostępności i przepływności. Te ruchy ułatwiły zrozumienie poszczególnych usług. Ale oni również utrudnili ogólne systemy do rozumowania i debugowania.

W architekturach monolitycznych udało nam się debugować stosy wywołań. Stosy wywołań to genialne narzędzia do pokazywania przepływu wykonywania (metoda A o nazwie Metoda B, która nazywa się metoda C), wraz ze szczegółami i parametrami dotyczącymi każdego z tych wywołań. Ta technika jest doskonała w przypadku monolitów lub usług działających w jednym procesie. Jak jednak debugować, gdy wywołanie znajduje się w granicach procesu, a nie tylko odwołanie do stosu lokalnego?

W tym miejscu jest dostępne śledzenie rozproszone.

Śledzenie rozproszone jest odpowiednikiem stosów wywołań dla nowoczesnych architektur chmury i mikrousług z dodatkiem uproszczonego profilera wydajności. W usłudze Azure Monitor udostępniamy dwa środowiska korzystania z rozproszonych danych śledzenia. Pierwszy to nasz widok diagnostyki transakcji , który jest jak stos wywołań z dodanym wymiarem czasu. Widok diagnostyki transakcji zapewnia wgląd w jedną transakcję/żądanie. Warto znaleźć główną przyczynę problemów z niezawodnością i wąskimi gardłami wydajności dla poszczególnych żądań.

Usługa Azure Monitor oferuje również widok mapy aplikacji , który agreguje wiele transakcji w celu wyświetlenia topologicznego widoku interakcji systemów. Widok mapy pokazuje również, jakie są średnie wskaźniki wydajności i błędów.

Włączanie śledzenia rozproszonego

Włączenie śledzenia rozproszonego między usługami w aplikacji jest tak proste, jak dodanie odpowiedniego agenta, zestawu SDK lub biblioteki do każdej usługi w oparciu o język, w jakim została zaimplementowana usługa.

Włączanie za pośrednictwem usługi Application Insights za pomocą automatycznego instrumentacji lub zestawów SDK

Agenci usługi Application Insights i zestawy SDK dla platform .NET, .NET Core, Java, Node.js i JavaScript obsługują śledzenie rozproszone natywnie. Dostępne są instrukcje dotyczące instalowania i konfigurowania każdego zestawu SDK usługi Application Insights:

Po zainstalowaniu i skonfigurowaniu odpowiedniego zestawu SDK usługi Application Insights informacje dotyczące śledzenia są automatycznie zbierane dla popularnych struktur, bibliotek i technologii przez moduły zbierające zależności zestawu SDK. Pełna lista obsługiwanych technologii jest dostępna w dokumentacji automatycznego zbierania zależności.

Każda technologia może być również śledzona ręcznie za pomocą wywołania funkcji TrackDependency w obiekcie TelemetryClient.

Włączanie za pomocą funkcji OpenTelemetry

Usługa Application Insights obsługuje teraz śledzenie rozproszone za pośrednictwem biblioteki OpenTelemetry. Usługa OpenTelemetry zapewnia instrumentację neutralną od dostawcy w celu wysyłania śladów, metryk i dzienników do usługi Application Insights. Początkowo społeczność OpenTelemetry przyjęła śledzenie rozproszone. Metryki i dzienniki są nadal w toku.

Pełna historia obserwacji obejmuje wszystkie trzy filary, ale obecnie nasze oferty eksportera oparte na technologii OpenTelemetry usługi Azure Monitor dla platformy .NET, Python i JavaScript obejmują tylko śledzenie rozproszone. Nasza oferta usługi Azure Monitor oparta na technologii Java OpenTelemetry jest ogólnie dostępna i w pełni obsługiwana.

Poniższe strony składają się ze wskazówek dotyczących języka według języka, aby włączyć i skonfigurować oferty oparte na protokole OpenTelemetry firmy Microsoft. Co ważne, udostępniamy dostępne funkcje i ograniczenia każdej oferty, dzięki czemu można określić, czy usługa OpenTelemetry jest odpowiednia dla projektu.

Włączanie za pośrednictwem interfejsu OpenCensus

Oprócz zestawów SDK usługi Application Insights usługa Application Insights obsługuje również śledzenie rozproszone za pośrednictwem biblioteki OpenCensus. OpenCensus to niezależna od dostawcy, pojedyncza dystrybucja bibliotek typu open source w celu zapewnienia zbierania metryk i rozproszonego śledzenia usług. Umożliwia również społeczności open source włączenie śledzenia rozproszonego za pomocą popularnych technologii, takich jak Redis, Memcached lub MongoDB. Firma Microsoft współpracuje z firmą OpenCensus z kilkoma innymi partnerami monitorowania i chmury.

Aby uzyskać więcej informacji na temat biblioteki OpenCensus dla języka Python, zobacz Konfigurowanie usługi Azure Monitor dla aplikacji języka Python.

Witryna internetowa OpenCensus przechowuje dokumentację referencyjną interfejsu API dla języków Python, Go i różnych przewodników dotyczących korzystania z biblioteki OpenCensus.

Następne kroki