2016-06-07 25 views
5

na ten link: https://azure.microsoft.com/en-us/documentation/articles/app-insights-api-custom-events-metrics/Czy wątek TelemetryClient Application Insight jest bezpieczny?

To wyraźnie mówi:

TelemetryClient jest bezpieczny wątku.

Zalecamy użycie instancji TelemetryClient dla każdego modułu aplikacji.

jednak w dokumentacji MSDN (https://msdn.microsoft.com/en-us/library/azure/microsoft.applicationinsights.telemetryclient.aspx) mówi:

Wszystkie publiczne statyczny (Shared w języku Visual Basic) elementy członkowskie tego typu są bezpieczne dla wątków. Dowolni członkowie instancji nie mogą zagwarantować bezpieczeństwa w wątku.

Problem polega na tym, że większość funkcji, takich jak TrackEvent i TrackMetric, nie jest statyczna. Jeśli śledzę pierwszy artykuł, mając instancję singleton dla mojej usługi internetowej, czy napotkam problemy z wątkami?

+0

Nie napotkasz problemów z gwintowaniem. Jeśli będziesz mnie potrzebował, mogę przejść do dalszych szczegółów, ale w przypadku wszystkich intensywnych celów nie napotkasz problemów z nawiązywaniem wątków. – IdahoSixString

Odpowiedz

7

TelemetryClient jest bezpieczny w użyciu. Prawidłowym użyciem jest utworzenie singletonu i ponowne użycie go. Nie pojawią się problemy z ponownym użyciem instancji.

+0

możesz chcieć użyć nowych instancji TelemetryClient z różnych miejsc, aby można było ustawić identyfikator operacji lub inne pola, które mogą być używane do łączenia ze sobą telemetrii. na przykład zależność Żądanie + zależność lub Odsłona + używa identyfikatora operacji wspólnej, aby można było znaleźć połączenia zależności pochodzące z określonego żądania lub odsłon strony. jeśli użyjesz tylko jednego telemetryclienta w całej aplikacji, trochę trudniej to zrobić. –

+2

Każdy TelemtryClient utworzy własny kanał, własne kopie inicjatorów telemetrycznych, procesorów itp. Jest to marnowanie zasobów. Zarządzanie polami powinno odbywać się za pomocą inicjalizatora telemetrycznego i wspólnego kontenera takiego jak HttpContext lub OperationContext lub jakiegoś DI. –