Udostępnij za pośrednictwem


TelemetrySession Klasa

Definicja

Reprezentuje jedną sesję telemetrii, która może publikować zdarzenia telemetryczne i właściwości sesji. Interfejs API dokłada wszelkich starań, aby dostarczać dane telemetryczne do serwera. Żądania są kolejkowane i wysyłane w partiach. Zdarzenia zostaną zapisane lokalnie, jeśli nie będą one wysyłane przed zakończeniem procesu. Wysyłanie zostanie wznowione, gdy następne wystąpienie aplikacji wywołuje interfejs API telemetrii. Dane telemetryczne mogą zostać utracone w przypadku braku odpowiedzi procesu lub awarii krytycznej lub braku połączenia internetowego przez 30 dni. Wszystkie metody są bezpieczne wątkowo i natychmiast zwracają.

public ref class TelemetrySession : Microsoft::VisualStudio::Telemetry::TelemetryDisposableObject
public class TelemetrySession : Microsoft.VisualStudio.Telemetry.TelemetryDisposableObject
type TelemetrySession = class
    inherit TelemetryDisposableObject
Public Class TelemetrySession
Inherits TelemetryDisposableObject
Dziedziczenie

Konstruktory

TelemetrySession(String)

Tworzy nową sesję telemetrii na podstawie serializacji ciągu wystąpienia TelemetrySessionSettings. Użyj metody SerializeSettings wystąpienia metody TelemetrySession, aby uzyskać taki ciąg. Umożliwia to proces publikowania zdarzeń w sesji telemetrii z innego procesu. Użyj polecenia VSTelemetryService.DefaultSession, aby uzyskać dostęp do sesji aplikacji.

Pola

DefaultContextName

Domyślna nazwa kontekstu.

ValueNotAvailable

Stała dla wartości, która jest niedostępna.

Właściwości

AppId

Pobiera lub ustawia identyfikator aplikacji dla SQM

BucketFiltersToAddDumpsToFaults

Pobiera lub ustawia wartość wskazującą, dla których zrzutów procesów zasobników należy dodać dla zdarzeń błędów.

BucketFiltersToEnableWatsonForFaults

Pobiera lub ustawia wartość wskazującą, dla których zasobników powinno być włączone raportowanie programu Watson dla zdarzeń błędów.

CalculatedSamplings

Pobiera/ustawia próbkowanie obliczeniowe z pliku manifestu

CancellationToken

Pobiera token anulowania sesji telemetrii

CanCollectPrivateInformation

Pobiera wartość wskazującą, czy bieżąca sesja może zbierać informacje osobowe na podstawie odpowiedzi z Menedżera informacji o użytkowniku

GlobalStorageUri

Pobiera identyfikator URI magazynu globalnego z programu VS Code

HostName

Pobiera lub ustawia nazwę hosta telemetrii, ma wpływ na lokalizację pliku manifestu

IsDisposed

Pobiera wartość wskazującą, czy sesja jest deposed — do wykrywania nadmiarowych wywołań

(Odziedziczone po TelemetryDisposableObject)
IsOptedIn

Pobiera lub ustawia wartość wskazującą, czy użytkownik jest zalogowany.

IsUserMicrosoftInternal

Pobiera wartość wskazującą, czy bieżąca sesja należy do użytkownika wewnętrznego, w związku z tym może zbierać informacje na podstawie odpowiedzi z Menedżera informacji o użytkowniku

MacAddressHash

Pobiera skrót adresu MAC. Jeśli skrót nie zostanie znaleziony w magazynie lokalnym, zostanie zwrócony skrót 0, a proces tworzenia skrótu zostanie wywołany

MachineId

Pobiera identyfikator komputera (identyfikator komputera SQM)

SessionId

Pobiera identyfikator sesji.

TimeSinceSessionStart

Pobiera wartość TimeSinceSessionStart na wypadek, gdyby klienci chcieli użyć go do obliczenia niestandardowych opóźnień na podstawie tego samego algorytmu telemetrii.

UserId

Pobiera identyfikator użytkownika (identyfikator użytkownika SQM)

Metody

AddCommonPropertyRange(IDictionary<String,Object>)

Dodaj właściwości, które mogą być wspólne dla wszystkich zdarzeń dla sesji, ale nie powinny mieć prefiksu Default.Context. Właściwości nie są utrwalane między sesjami. Aby dodać pojedynczą właściwość, zobacz TryAddCommonProperty(String, Object)

AddSessionChannel(ISessionChannel)

Dodaj nowy kanał sesji do listy aktywnych kanałów.

CreateContext(String)

Twórca kontekst o określonej nazwie.

Dispose()

Ten kod został dodany w celu poprawnego zaimplementowania wzorca jednorazowego.

(Odziedziczone po TelemetryDisposableObject)
DisposeManagedResources()

Chroniona implementacja wzorca Dispose.

DisposeToNetworkAsync(CancellationToken)

Asynchronicznie usuń i spróbuj wysłać wszystkie dane telemetryczne za pośrednictwem sieci.

GetCommonPropertyDictionary()

Pobiera element IDictionary zawierający kopię kluczy CommonProperty i wartości aktualnie w sesji.

GetContext(String)

Pobiera kontekst według podanej nazwy.

GetPersistedSharedProperty(String)

Pobierz utrwalone właściwości udostępnione według nazwy.

GetPropertyBag(String)

Pobiera worek właściwości o podanej nazwie.

GetSharedProperty(String)

Pobierz właściwość udostępnioną według nazwy.

GetSharedPropertyAsObject(String)

Pobierz wartość właściwości udostępnionej według nazwy jako obiektu.

PostEvent(String)

Kolejkuje zdarzenie telemetrii, które ma zostać opublikowane na serwerze. Wybierz tę metodę dla uproszczenia, jeśli nazwa jest jedyną właściwością zdarzenia. Należy rozważyć wybranie opcji PostUserTask, PostOperation, PostFault lub PostAsset. Umożliwi to bogatsze środowisko telemetrii z dodatkowymi szczegółowymi informacjami udostępnianymi przez model danych programu Visual Studio. Jeśli punkt danych nie jest zgodny z żadną jednostką modelu danych programu VS, nie wymuszaj żadnego skojarzenia i kontynuuj korzystanie z tej metody. Jeśli masz jakiekolwiek pytania dotyczące modelu danych programu VS, wyślij wiadomość e-mail do zespołu ds. modelu danych programu VS (vsdmcrew@microsoft.com).

PostEvent(TelemetryEvent)

Kolejkuje zdarzenie telemetrii, które ma zostać opublikowane na serwerze. Wybierz tę metodę, aby uzyskać elastyczność. Należy rozważyć wybranie opcji PostUserTask, PostOperation, PostFault lub PostAsset. Umożliwi to bogatsze środowisko telemetrii z dodatkowymi szczegółowymi informacjami udostępnianymi przez model danych programu Visual Studio. Jeśli punkt danych nie jest zgodny z żadną jednostką modelu danych programu VS, nie wymuszaj żadnego skojarzenia i kontynuuj korzystanie z tej metody. Jeśli masz jakiekolwiek pytania dotyczące modelu danych programu VS, wyślij wiadomość e-mail do zespołu ds. modelu danych programu VS (vsdmcrew@microsoft.com).

PostMetricEvent(TelemetryMetricEvent)

Przygotowuje zdarzenie metryki przez wypełnienie właściwości metryk, a następnie publikuje zdarzenie.

PostProperty(String, Object)

Kolejkuje aktualizację elementu dla właściwości dla całej sesji. Warto wziąć pod uwagę TelemetrySettingProperty lub TelemetryMetricProperty umożliwią one bogatsze środowisko telemetrii z dodatkowymi szczegółowymi informacjami udostępnianymi przez model danych programu Visual Studio. Jeśli masz jakiekolwiek pytania dotyczące modelu danych programu VS, wyślij wiadomość e-mail do zespołu ds. modelu danych programu VS (vsdmcrew@microsoft.com).

PostRecurringProperty(String, Object)

Dodaje właściwość do stałego cyklicznego zdarzenia VS/TelemetryApi/RecurringProperties. W przeciwieństwie do właściwości PostProperty lub TelemetryContext.PostProperty właściwość PostRecurringProperty nie dodaje danej właściwości do każdego zdarzenia. Właściwość PostRecurringProperty jest najbardziej przydatna w przypadku wartości, które są stałe przez okres istnienia telemetriiSession.

RegisterForReliabilityEvent()

Zapisuje informacje o procesie i sesji w rejestrze, który jest używany przez dowolne środowisko IDE programu VS hosta do śledzenia i zgłaszania końcowego stanu zamknięcia tego procesu.

RegisterPropertyBag(String, TelemetryPropertyBag)

Zarejestruj daną torbę właściwości.

RemovePersistedSharedProperty(String)

Usunięcie utrwalonej właściwości udostępnionej dla wszystkich sesji oznacza usunięcie właściwości udostępnionej z tego kontekstu domyślnego i wszystkich przyszłych sesji na maszynie.

RemoveSharedProperty(String)

Usuwanie właściwości udostępnionej sesji oznacza usunięcie właściwości udostępnionej z kontekstu domyślnego

RequiresNotDisposed()

Ta funkcja zgłasza wyjątek ObjectDisposedException, jeśli obiekt zostanie usunięty.

(Odziedziczone po TelemetryDisposableObject)
SerializeSettings()

Serializuje obiekt TelemetrySessionSettings.

SetPersistedSharedProperty(String, Double)

Ustaw utrwalone właściwości udostępnione dla sesji oznacza ustawienie właściwości udostępnionej dla domyślnego kontekstu dla tej sesji i wszystkich przyszłych sesji na maszynie.

SetPersistedSharedProperty(String, String)

Ustaw utrwalone właściwości udostępnione dla sesji oznacza ustawienie właściwości udostępnionej dla domyślnego kontekstu dla tej sesji i wszystkich przyszłych sesji na maszynie.

SetSharedProperty(String, Object)

Ustaw właściwość udostępnioną dla sesji oznacza ustawienie właściwości udostępnionej dla kontekstu domyślnego. Warto wziąć pod uwagę TelemetrySettingProperty lub TelemetryMetricProperty umożliwi to bogatsze środowisko telemetrii z dodatkowymi szczegółowymi informacjami udostępnianymi przez model danych programu Visual Studio. Jeśli masz jakiekolwiek pytania dotyczące modelu danych programu VS, wyślij wiadomość e-mail do zespołu ds. modelu danych programu VS (vsdmcrew@microsoft.com).

Start()

Sesja początkowa oznacza utworzenie domyślnego kontekstu dla sesji i dodanie właściwości informacji prywatnych, jeśli jest to dozwolone.

ToString()

ToString, aby ułatwić debugowanie: pokaż w oknie watch debugowania

TryAddCommonProperty(String, Object)

Próbuje dodać pojedynczy klucz właściwości i wartość, które mogą być wspólne dla wszystkich zdarzeń dla sesji, ale nie powinny mieć prefiksu kontekstu. Właściwości nie są utrwalane między sesjami. Aby dodać wiele właściwości, zobacz AddCommonPropertyRange(IDictionary<String,Object>)

TryGetCommonPropertyValue(String, Object)

Pobiera wartość skojarzona z określoną nazwą właściwości, która będzie wspólna dla wszystkich zdarzeń dla sesji, ale nie powinna mieć kontekstu ani zastrzeżonego prefiksu.

UnregisterPropertyBag(String)

Wyrejestrowywanie torby z właściwością o podanej nazwie.

UseVsIsOptedIn()

Odczytuje i ustawia stan optin programu VS. Oblicz stan IsOptedIn na podstawie stanu OptedIn ze wszystkich zainstalowanych wersji programu VS. Jeśli wszystkie znalezione stany OptedIn mają wartość true, zwracamy wartość true, w przeciwnym razie zwracamy wartość false.

UseVsIsOptedIn(String)

Odczytuje i ustawia stan optin programu VS.

Metody rozszerzania

PostCorrelatedFaultEvent(TelemetrySession, TelemetryScope<OperationEvent>, String, String, FaultSeverity, Exception, Func<IFaultUtility,Int32>)

Publikuje element FaultEvent skorelowany z elementem z elementem operationsession.

PostCorrelatedFaultEvent(TelemetrySession, TelemetryScope<OperationEvent>, String, String, Exception, Func<IFaultUtility,Int32>)

Publikuje element FaultEvent skorelowany z elementem z elementem operationsession.

PostCommandLineFlags(TelemetrySession, IEnumerable<String>, IDictionary<String,Object>)

Kolejkuje zdarzenie telemetrii z flagami wiersza polecenia z dodatkowymi właściwościami, które mają zostać opublikowane na serwerze. Zostaną dołączone tylko flagi wiersza polecenia (identyfikowane przez podane prefiksy).

PostCommandLineFlags(TelemetrySession, String[])

Kolejkuje zdarzenie telemetrii z informacjami o flagach wiersza polecenia, które mają zostać opublikowane na serwerze. Zostaną dołączone tylko flagi wiersza polecenia (identyfikowane przez podane prefiksy).

PostAsset(TelemetrySession, String, String, Int32, IDictionary<String,Object>, TelemetryEventCorrelation[])

Opublikuj zdarzenie elementu zawartości. Zasób jest celem zadania lub operacji użytkownika, np. rozwiązania, projektu, pliku, rozszerzenia, licencji, Designer.

PostFault(TelemetrySession, String, String)

Opublikuj zdarzenie błędu. Zdarzenie będzie zawsze wysyłane do usługi AppInsights, ale jeśli przejdzie próbkowanie, zostanie również wysłane do Aplikacji Wason. Staje się bardziej przydatna, gdy jest skorelowana z elementami UserTaskEvent lub OperationEvent które mogły doprowadzić do wystąpienia błędu.

PostFault(TelemetrySession, String, String, FaultSeverity)

Opublikuj zdarzenie błędu. Zdarzenie będzie zawsze wysyłane do usługi AppInsights, ale jeśli przejdzie próbkowanie, zostanie również wysłane do Aplikacji Wason. Staje się bardziej przydatna, gdy jest skorelowana z elementami UserTaskEvent lub OperationEvent które mogły doprowadzić do wystąpienia błędu.

PostFault(TelemetrySession, String, String, FaultSeverity, Exception)

Opublikuj zdarzenie błędów z zarządzanym obiektem Wyjątku. Parametry zasobnika są tworzone na podstawie obiektu wyjątku. Staje się bardziej przydatna, gdy jest skorelowana z elementami UserTaskEvent lub OperationEvent które mogły doprowadzić do wystąpienia błędu.

PostFault(TelemetrySession, String, String, FaultSeverity, Exception, Func<IFaultUtility,Int32>)

Opublikuj zdarzenie błędu z obiektem wyjątku i wywołaniem zwrotnym. Wywołanie zwrotne może służyć do obliczania kosztownych danych wysyłanych do zaplecza programu Watson, takich jak stosy wywołań JScript itp., staje się bardziej przydatne w przypadku korelacji z UserTaskEvent lub OperationEvent które mogły doprowadzić do wystąpienia błędu.

PostFault(TelemetrySession, String, String, FaultSeverity, Exception, Func<IFaultUtility,Int32>, TelemetryEventCorrelation[])

Opublikuj zdarzenie błędu z obiektem wyjątku i wywołaniem zwrotnym. Wywołanie zwrotne może służyć do obliczania kosztownych danych wysyłanych do zaplecza programu Watson, takich jak stosy wywołań JScript itp., staje się bardziej przydatne w przypadku korelacji z UserTaskEvent lub OperationEvent które mogły doprowadzić do wystąpienia błędu.

PostFault(TelemetrySession, String, String, Exception)

Opublikuj zdarzenie błędów z zarządzanym obiektem Wyjątku. Parametry zasobnika są tworzone na podstawie obiektu wyjątku. Staje się bardziej przydatna, gdy jest skorelowana z elementami UserTaskEvent lub OperationEvent które mogły doprowadzić do wystąpienia błędu.

PostFault(TelemetrySession, String, String, Exception, Func<IFaultUtility,Int32>)

Opublikuj zdarzenie błędu z obiektem wyjątku i wywołaniem zwrotnym. Wywołanie zwrotne może służyć do obliczania kosztownych danych wysyłanych do zaplecza programu Watson, takich jak stosy wywołań JScript itp., staje się bardziej przydatne w przypadku korelacji z UserTaskEvent lub OperationEvent które mogły doprowadzić do wystąpienia błędu.

PostFault(TelemetrySession, String, String, Exception, Func<IFaultUtility,Int32>, TelemetryEventCorrelation[])

Opublikuj zdarzenie błędu z obiektem wyjątku i wywołaniem zwrotnym. Wywołanie zwrotne może służyć do obliczania kosztownych danych wysyłanych do zaplecza programu Watson, takich jak stosy wywołań JScript itp., staje się bardziej przydatne w przypadku korelacji z UserTaskEvent lub OperationEvent które mogły doprowadzić do wystąpienia błędu.

PostOperation(TelemetrySession, String, TelemetryResult, String, TelemetryEventCorrelation[])

Opublikuj zdarzenie operacji. Operacja wykonuje pewną pracę w aplikacji i jest dostarczana z wynikiem (np. Powodzenie, Niepowodzenie). Jeśli operacja jest wywoływana bezpośrednio przez użytkownika, użyj UserTaskEvent lub powiązanych metod. Oto kilka przykładów operacji, sprawdzanie licencji, ładowanie pakietów, ładowanie układu systemu Windows.

Ta metoda jest używana do operacji niepodzielnej, która działa bardzo szybko lub ma niewielką wartość do analizowania czasu trwania procesu. Obiekt wywołujący wywołuje tę metodę po zakończeniu operacji. W przypadku długotrwałej lub asynchronicznej operacji, aby zrozumieć, co się stało w czasie lub śledzić, czy częściowo zakończy się z powodu błędu, użyj metody StartOperation(TelemetrySession, String) , która śledzi zarówno punkty początkowe, jak i końcowe.

PostUserTask(TelemetrySession, String, TelemetryResult, String, TelemetryEventCorrelation[])

Opublikuj zdarzenie dla zadania użytkownika. Zadanie użytkownika to operacja aplikacji wywoływana bezpośrednio przez użytkownika i jest dostarczana z wynikiem (np. Powodzenie, Niepowodzenie). Jest on używany do analizy zachowania/intencji użytkownika. Użytkownik jest świadomy operacji i może wykonać operację. Np. Otwórz projekt i Pokaż okna narzędzi są zadaniami użytkownika; Zamiast tego ładowanie pakietu VS i kompilacja czasu projektowania to operacje.

Ta metoda jest używana w przypadku zadania użytkownika niepodzielnego, które działa bardzo szybko lub ma niewielką wartość do analizowania czasu trwania procesu. Obiekt wywołujący wywołuje tę metodę po zakończeniu zadania użytkownika. W przypadku długotrwałego lub asynchronicznego zadania użytkownika, aby zrozumieć, co wydarzyło się w czasie lub śledzić, czy częściowo zakończy się z powodu błędu, użyj metody StartUserTask(TelemetrySession, String) , która śledzi zarówno punkty początkowe, jak i końcowe.

StartOperation(TelemetrySession, String)

Rozpocznij operację śledzenia, publikując element OperationEvent na początku pracy operacji i zwracając TelemetryScope<T> obiekt. Po zakończeniu zadania użytkownika wywołaj metodę End(TelemetryResult, String) , aby opublikować inną OperationEvent dla punktu końcowego. Ponieważ ta sama nazwa zdarzenia jest używana zarówno przez zdarzenia początkowe, jak i końcowe, nie używaj nazwy zdarzenia Start lub End.

StartOperation(TelemetrySession, String, TelemetryScopeSettings)

Rozpocznij operację śledzenia, publikując OperationEvent element z określonymi właściwościami na początku pracy operacji i zwracając TelemetryScope<T> obiekt. Po zakończeniu zadania użytkownika wywołaj metodę End(TelemetryResult, String) , aby opublikować inną OperationEvent dla punktu końcowego. Ponieważ ta sama nazwa zdarzenia jest używana zarówno przez zdarzenia początkowe, jak i końcowe, nie używaj nazwy zdarzenia Start lub End.

StartOperation(TelemetrySession, String, TelemetrySeverity)

Rozpocznij operację śledzenia, publikując element OperationEvent na początku pracy operacji i zwracając TelemetryScope<T> obiekt. Po zakończeniu zadania użytkownika wywołaj metodę End(TelemetryResult, String) , aby opublikować inną OperationEvent dla punktu końcowego. Ponieważ ta sama nazwa zdarzenia jest używana zarówno przez zdarzenia początkowe, jak i końcowe, nie używaj nazwy zdarzenia Start lub End.

StartOperation(TelemetrySession, String, TelemetrySeverity, IDictionary<String,Object>)

Rozpocznij operację śledzenia, publikując OperationEvent element z określonymi właściwościami na początku pracy operacji i zwracając TelemetryScope<T> obiekt. Po zakończeniu zadania użytkownika wywołaj metodę End(TelemetryResult, String) , aby opublikować inną OperationEvent dla punktu końcowego. Ponieważ ta sama nazwa zdarzenia jest używana zarówno przez zdarzenia początkowe, jak i końcowe, nie używaj nazwy zdarzenia Start lub End.

StartOperation(TelemetrySession, String, TelemetrySeverity, IDictionary<String,Object>, TelemetryEventCorrelation[])

Rozpocznij operację śledzenia, publikując OperationEvent element z określonymi właściwościami na początku pracy operacji i zwracając TelemetryScope<T> obiekt. Po zakończeniu zadania użytkownika wywołaj metodę End(TelemetryResult, String) , aby opublikować inną OperationEvent dla punktu końcowego. Ponieważ ta sama nazwa zdarzenia jest używana zarówno przez zdarzenia początkowe, jak i końcowe, nie używaj nazwy zdarzenia Start lub End.

StartUserTask(TelemetrySession, String)

Rozpocznij śledzenie zadania użytkownika, publikując element UserTaskEvent na początku pracy zadania użytkownika, a następnie zwracają TelemetryScope<T> obiekt. Po zakończeniu zadania użytkownika wywołaj metodę End(TelemetryResult, String) , aby opublikować inną UserTaskEvent dla punktu końcowego. Ponieważ ta sama nazwa zdarzenia jest używana zarówno przez zdarzenia początkowe, jak i końcowe, nie używaj nazwy zdarzenia Start lub End.

StartUserTask(TelemetrySession, String, TelemetryScopeSettings)

Rozpocznij śledzenie zadania użytkownika, publikując UserTaskEvent element z określonymi właściwościami na początku pracy zadania użytkownika, a następnie zwracają TelemetryScope<T> obiekt. Po zakończeniu zadania użytkownika wywołaj metodę End(TelemetryResult, String) , aby opublikować inną UserTaskEvent dla punktu końcowego. Ponieważ ta sama nazwa zdarzenia jest używana zarówno przez zdarzenia początkowe, jak i końcowe, nie używaj nazwy zdarzenia Start lub End.

StartUserTask(TelemetrySession, String, TelemetrySeverity)

Rozpocznij śledzenie zadania użytkownika, publikując element UserTaskEvent na początku pracy zadania użytkownika, a następnie zwracają TelemetryScope<T> obiekt. Po zakończeniu zadania użytkownika wywołaj metodę End(TelemetryResult, String) , aby opublikować inną UserTaskEvent dla punktu końcowego. Ponieważ ta sama nazwa zdarzenia jest używana zarówno przez zdarzenia początkowe, jak i końcowe, nie używaj nazwy zdarzenia Start lub End.

StartUserTask(TelemetrySession, String, TelemetrySeverity, IDictionary<String,Object>)

Rozpocznij śledzenie zadania użytkownika, publikując UserTaskEvent element z określonymi właściwościami na początku pracy zadania użytkownika, a następnie zwracają TelemetryScope<T> obiekt. Po zakończeniu zadania użytkownika wywołaj metodę End(TelemetryResult, String) , aby opublikować inną UserTaskEvent dla punktu końcowego. Ponieważ ta sama nazwa zdarzenia jest używana zarówno przez zdarzenia początkowe, jak i końcowe, nie używaj nazwy zdarzenia Start lub End.

StartUserTask(TelemetrySession, String, TelemetrySeverity, IDictionary<String,Object>, TelemetryEventCorrelation[])

Rozpocznij śledzenie zadania użytkownika, publikując UserTaskEvent element z określonymi właściwościami na początku pracy zadania użytkownika, a następnie zwracają TelemetryScope<T> obiekt. Po zakończeniu zadania użytkownika wywołaj metodę End(TelemetryResult, String) , aby opublikować inną UserTaskEvent dla punktu końcowego. Ponieważ ta sama nazwa zdarzenia jest używana zarówno przez zdarzenia początkowe, jak i końcowe, nie używaj nazwy zdarzenia Start lub End.

Dotyczy