Sdílet prostřednictvím


TelemetrySession Třída

Definice

Představuje jednu relaci telemetrie, která může publikovat události telemetrie a vlastnosti relace. Rozhraní API se snaží doručovat telemetrická data na server. Požadavky se zasouvají do fronty a odesílají se v dávkách. Události budou uloženy místně, pokud je nelze odeslat před ukončením procesu. Odesílání se obnoví, když další instance aplikace zavolá rozhraní API pro telemetrii. Telemetrie může dojít ke ztrátě v případě, že proces přestane reagovat nebo dojde k závažnému chybovému ukončení nebo se po dobu 30 dnů nepřipojuje k internetu. Všechny metody jsou bezpečné pro přístup z více vláken a okamžitě se vrátí.

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
Dědičnost

Konstruktory

TelemetrySession(String)

Vytvoří novou relaci telemetrie na základě serializovaného řetězce instance TelemetrySessionSettings. K získání takového řetězce použijte metodu SerializeSettings instance TelemetrySession. To umožňuje procesu publikovat události do relace telemetrie z jiného procesu. Pro přístup k relaci aplikace použijte VSTelemetryService.DefaultSession.

Pole

DefaultContextName

Výchozí název kontextu.

ValueNotAvailable

Konstanta pro hodnotu, která není k dispozici.

Vlastnosti

AppId

Získá nebo nastaví ID aplikace pro SQM.

BucketFiltersToAddDumpsToFaults

Získá nebo nastaví hodnotu označující, pro které kontejnery by měly být přidány výpisy pro události selhání.

BucketFiltersToEnableWatsonForFaults

Získá nebo nastaví hodnotu označující, pro které kontejnery by mělo být protokolování Watson povoleno pro události selhání.

CalculatedSamplings

Získá nebo nastaví počítané vzorkování ze souboru manifestu.

CancellationToken

Získá token CancellationToken relace telemetrie.

CanCollectPrivateInformation

Získá hodnotu označující, zda aktuální relace může shromažďovat informace PII na základě odpovědi ze Správce informací o uživatelích.

GlobalStorageUri

Získá globální identifikátor URI úložiště z VS Code.

HostName

Získá nebo nastaví název hostitele telemetrie, který ovlivňuje umístění souboru manifestu.

IsDisposed

Získá hodnotu označující, jestli je relace deponována – k detekci redundantních volání.

(Zděděno od TelemetryDisposableObject)
IsOptedIn

Získá nebo nastaví hodnotu označující, zda je uživatel přihlášen.

IsUserMicrosoftInternal

Získá hodnotu určující, zda aktuální relace patří internímu uživateli, a proto může shromažďovat informace na základě odpovědi ze Správce informací o uživatelích.

MacAddressHash

Získá hodnotu hash adresy MAC. Pokud se hodnota hash v místním úložišti nenajde, vrátí se hodnota hash 0 a vyvolá se proces hashování.

MachineId

Získá ID počítače (ID počítače SQM).

SessionId

Získá ID relace.

TimeSinceSessionStart

Získá TimeSinceSessionStart v případě, že zákazníci ho chtějí použít k výpočtu vlastních zpoždění na základě stejného algoritmu jako telemetrie.

UserId

Získá ID uživatele (ID uživatele SQM)

Metody

AddCommonPropertyRange(IDictionary<String,Object>)

Přidejte vlastnosti, které můžou být společné pro všechny události relace, ale neměly by mít předponu Default.Context. Vlastnosti se mezi relacemi neuchovávají. Postup přidání jedné vlastnosti najdete v tématu TryAddCommonProperty(String, Object)

AddSessionChannel(ISessionChannel)

Přidejte nový kanál relace do seznamu aktivních kanálů.

CreateContext(String)

Create kontext s konkrétním názvem.

Dispose()

Tento kód byl přidán pro správnou implementaci uvolnitelného vzoru.

(Zděděno od TelemetryDisposableObject)
DisposeManagedResources()

Chráněná implementace vzoru Dispose.

DisposeToNetworkAsync(CancellationToken)

Asynchronně vyřaďte a pokuste se odeslat veškerou telemetrii přes síť.

GetCommonPropertyDictionary()

Získá IDictionary obsahující kopii klíče CommonProperty a hodnoty aktuálně v relaci.

GetContext(String)

Získá kontext podle daného názvu.

GetPersistedSharedProperty(String)

Získejte trvalou sdílenou vlastnost podle názvu.

GetPropertyBag(String)

Získá kontejner vlastností podle daného názvu.

GetSharedProperty(String)

Získá sdílenou vlastnost podle názvu.

GetSharedPropertyAsObject(String)

Získá hodnotu sdílené vlastnosti podle názvu jako objektu.

PostEvent(String)

Za fronty telemetrická událost, která se má publikovat na server. Tuto metodu zvolte pro zjednodušení, pokud je název jedinou vlastností události. Měli byste zvážit volbu PostUserTask, PostOperation, PostFault nebo PostAsset. Ty umožní bohatší telemetrické prostředí s dalšími přehledy, které poskytuje datový model sady Visual Studio. Pokud váš datový bod neodpovídá žádné entitě datového modelu VS, nevynucujte žádné přidružení a pokračujte v používání této metody. Pokud máte jakékoli dotazy týkající se datového modelu VS, pošlete e-mail týmu datového modelu VS (vsdmcrew@microsoft.com).

PostEvent(TelemetryEvent)

Za fronty telemetrická událost, která se má publikovat na server. Tuto metodu zvolte pro flexibilitu. Měli byste zvážit volbu PostUserTask, PostOperation, PostFault nebo PostAsset. Ty umožní bohatší telemetrické prostředí s dalšími přehledy, které poskytuje datový model sady Visual Studio. Pokud váš datový bod neodpovídá žádné entitě datového modelu VS, nevynucujte žádné přidružení a pokračujte v používání této metody. Pokud máte jakékoli dotazy týkající se datového modelu VS, pošlete e-mail týmu datového modelu VS (vsdmcrew@microsoft.com).

PostMetricEvent(TelemetryMetricEvent)

Připraví událost metriky vyplněním vlastností metriky a pak událost publikuje.

PostProperty(String, Object)

Zařadí aktualizaci do pro vlastnost v rámci celé relace. Možná budete chtít zvážit TelemetrySettingProperty , nebo TelemetryMetricProperty tyto možnosti umožní bohatší telemetrické prostředí s dalšími přehledy, které poskytuje datový model sady Visual Studio. Pokud máte jakékoli dotazy týkající se datového modelu VS, pošlete e-mail týmu datového modelu VS (vsdmcrew@microsoft.com).

PostRecurringProperty(String, Object)

Přidá vlastnost, která se má zahrnout do pravidelně se opakující události VS/ TelemetryApi/RecurringProperties. Na rozdíl od PostProperty nebo TelemetryContext.PostProperty, PostRecurringProperty nepřidává danou vlastnost do každé události. PostRecurringProperty je nejužitečnější pro hodnoty, které jsou konstantní po celou dobu životnosti TelemetrySession.

RegisterForReliabilityEvent()

Zapisuje informace o procesech a relacích do registru, který je používán všemi hostitelskými prostředími IDE VS ke sledování a hlášení konečného stavu vypnutí tohoto procesu.

RegisterPropertyBag(String, TelemetryPropertyBag)

Zaregistrujte danou sadu vlastností.

RemovePersistedSharedProperty(String)

Odebrání trvalé sdílené vlastnosti pro všechny relace znamená odebrat sdílenou vlastnost z tohoto výchozího kontextu a pro všechny budoucí relace na počítači.

RemoveSharedProperty(String)

Odebrání sdílené vlastnosti relace znamená odebrání sdílené vlastnosti z výchozího kontextu.

RequiresNotDisposed()

Tato funkce vyvolá Výjimku ObjectDisposedException, pokud je objekt odstraněn.

(Zděděno od TelemetryDisposableObject)
SerializeSettings()

Serializuje objekt TelemetrySessionSettings.

SetPersistedSharedProperty(String, Double)

Nastavit trvalou sdílenou vlastnost pro relaci znamená nastavit sdílenou vlastnost pro výchozí kontext pro tuto relaci a všechny budoucí relace na počítači.

SetPersistedSharedProperty(String, String)

Nastavit trvalou sdílenou vlastnost pro relaci znamená nastavit sdílenou vlastnost pro výchozí kontext pro tuto relaci a všechny budoucí relace na počítači.

SetSharedProperty(String, Object)

Nastavit sdílenou vlastnost pro relaci znamená nastavit sdílenou vlastnost pro výchozí kontext. Můžete zvážit TelemetrySettingProperty nebo TelemetryMetricProperty Tyto možnosti umožní bohatší telemetrické prostředí s dalšími přehledy, které poskytuje datový model sady Visual Studio. Pokud máte jakékoli dotazy týkající se datového modelu VS, pošlete e-mail týmu datového modelu VS (vsdmcrew@microsoft.com).

Start()

Spustit relaci znamená vytvoření výchozího kontextu pro relaci a přidání vlastností soukromých informací, pokud je to povoleno.

ToString()

ToString pro usnadnění ladění: zobrazení v okně watch ladění

TryAddCommonProperty(String, Object)

Pokusí se přidat jeden klíč vlastnosti a hodnotu, která může být společná pro všechny události relace, ale neměla by mít předponu Context. Vlastnosti se mezi relacemi neuchovávají. Pokud chcete přidat více vlastností, přečtěte si téma AddCommonPropertyRange(IDictionary<String,Object>)

TryGetCommonPropertyValue(String, Object)

Získá hodnotu přidruženou k zadanému názvu vlastnosti, která bude společná pro všechny události relace, ale neměla by mít kontext nebo vyhrazenou předponu.

UnregisterPropertyBag(String)

Zrušte registraci kontejneru vlastností se zadaným názvem.

UseVsIsOptedIn()

Přečte a nastaví stav VS OptIn. Vypočítejte stav IsOptedIn na základě stavu OptedIn ze všech nainstalovaných verzí VS. Pokud jsou všechny nalezené stavy OptedIn pravdivé, vrátíme hodnotu true, jinak vrátíme hodnotu false.

UseVsIsOptedIn(String)

Přečte a nastaví stav VS OptIn.

Metody rozšíření

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

Publikuje do příspěvku FaultEvent , který je v korelaci s operationsession.

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

Publikuje do příspěvku FaultEvent , který je v korelaci s operationsession.

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

Za frontu telemetrická událost s informacemi o příznakech příkazového řádku s dalšími vlastnostmi, které se mají publikovat na server. Budou zahrnuty pouze příznaky příkazového řádku (určené danými předponami).

PostCommandLineFlags(TelemetrySession, String[])

Za frontu telemetrická událost s informacemi o příznakech příkazového řádku, které se mají publikovat na server. Budou zahrnuty pouze příznaky příkazového řádku (určené danými předponami).

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

Publikuje událost assetu. Prostředek je cíl úkolu nebo operace uživatele, např. řešení, projekt, soubor, rozšíření, licence Designer.

PostFault(TelemetrySession, String, String)

Zaúčtováte událost Fault. Událost se vždy odešle do AppInsights, ale pokud projde vzorkováním, odešle se také do Wasonu. Stává se užitečnější, pokud koreluje s UserTaskEvent nebo OperationEvent které mohly vést k výskytu chyby.

PostFault(TelemetrySession, String, String, FaultSeverity)

Zaúčtováte událost Fault. Událost se vždy odešle do AppInsights, ale pokud projde vzorkováním, odešle se také do Wasonu. Stává se užitečnější, pokud koreluje s UserTaskEvent nebo OperationEvent které mohly vést k výskytu chyby.

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

Publikování události selhání se spravovaným objektem výjimky Parametry kontejneru se vytvoří z objektu výjimky. Stává se užitečnější, pokud koreluje s UserTaskEvent nebo OperationEvent které mohly vést k výskytu chyby.

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

Odeslání události chyby s objektem výjimky a zpětným voláním Zpětné volání lze použít k výpočtu nákladných dat, která se mají odeslat do back-endu Watsonu, jako jsou například volání V jazyce JScript atd. Je užitečnější, pokud korelují s UserTaskEvent nebo OperationEvent které mohly vést k výskytu chyby.

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

Odeslání události chyby s objektem výjimky a zpětným voláním Zpětné volání lze použít k výpočtu nákladných dat, která se mají odeslat do back-endu Watsonu, jako jsou například volání V jazyce JScript atd. Je užitečnější, pokud korelují s UserTaskEvent nebo OperationEvent které mohly vést k výskytu chyby.

PostFault(TelemetrySession, String, String, Exception)

Publikování události selhání se spravovaným objektem výjimky Parametry kontejneru se vytvoří z objektu výjimky. Stává se užitečnější, pokud koreluje s UserTaskEvent nebo OperationEvent které mohly vést k výskytu chyby.

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

Odeslání události chyby s objektem výjimky a zpětným voláním Zpětné volání lze použít k výpočtu nákladných dat, která se mají odeslat do back-endu Watsonu, jako jsou například volání V jazyce JScript atd. Je užitečnější, pokud korelují s UserTaskEvent nebo OperationEvent které mohly vést k výskytu chyby.

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

Odeslání události chyby s objektem výjimky a zpětným voláním Zpětné volání lze použít k výpočtu nákladných dat, která se mají odeslat do back-endu Watsonu, jako jsou například volání V jazyce JScript atd. Je užitečnější, pokud korelují s UserTaskEvent nebo OperationEvent které mohly vést k výskytu chyby.

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

Zaúčtováte událost operace. Operace provádí určitou práci v aplikaci a přichází s výsledkem (např. Úspěch, Selhání). Pokud operaci vyvolá přímo uživatel, použijte UserTaskEvent metody nebo související metody. Několik příkladů operací je kontrola licencí, načtení balíčku nebo načítání rozložení windows.

Tato metoda se používá pro atomické operace, které běží velmi rychle nebo mají malou hodnotu pro analýzu doby trvání procesu. Volající volá tuto metodu po dokončení operace. Pro dlouhotrvající běžící nebo asynchronní operaci, abyste pochopili, co se ještě stalo během doby, nebo sledovat, jestli se částečně dokončí kvůli chybě, použijte metodu StartOperation(TelemetrySession, String) , která sleduje počáteční i koncový bod.

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

Publikování události pro úkol uživatele Úloha uživatele je operace aplikace, která je vyvolána uživatelem přímo a má výsledek (např. Úspěch, Selhání). Používá se k analýze chování uživatele nebo záměru. Uživatel o operaci ví a může ji provést. Např. Otevřít projekt a Zobrazit okna nástrojů jsou uživatelské úkoly; místo toho jsou operace načtení balíčku VS a sestavení v době návrhu.

Tato metoda se používá pro úlohy atomických uživatelů, které běží velmi rychle nebo mají malou hodnotu pro analýzu doby trvání procesu. Volající volá tuto metodu po dokončení úlohy uživatele. V případě dlouhotrvajících nebo asynchronních uživatelských úloh, abyste pochopili, co dalšího se během doby stalo, nebo sledovat, jestli se částečně dokončí kvůli chybě, použijte metodu StartUserTask(TelemetrySession, String) , která sleduje počáteční i koncový bod.

StartOperation(TelemetrySession, String)

Spusťte sledování operace tak, že OperationEvent na začátku operace publikujte a vrátíte TelemetryScope<T> objekt. Po dokončení úlohy uživatele zavolejte metodu End(TelemetryResult, String) pro odeslání dalšího koncového OperationEvent bodu. Vzhledem k tomu, že počáteční i koncové události používají stejný název události, nepoužívejte v názvu události Start ani End.

StartOperation(TelemetrySession, String, TelemetryScopeSettings)

Spusťte sledování operace odesláním OperationEvent se zadanými vlastnostmi na začátku operace a vraťte TelemetryScope<T> objekt. Po dokončení úlohy uživatele zavolejte metodu End(TelemetryResult, String) pro odeslání dalšího koncového OperationEvent bodu. Vzhledem k tomu, že počáteční i koncové události používají stejný název události, nepoužívejte v názvu události Start ani End.

StartOperation(TelemetrySession, String, TelemetrySeverity)

Spusťte sledování operace tak, že OperationEvent na začátku operace publikujte a vrátíte TelemetryScope<T> objekt. Po dokončení úlohy uživatele zavolejte metodu End(TelemetryResult, String) pro odeslání dalšího koncového OperationEvent bodu. Vzhledem k tomu, že počáteční i koncové události používají stejný název události, nepoužívejte v názvu události Start ani End.

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

Spusťte sledování operace odesláním OperationEvent se zadanými vlastnostmi na začátku operace a vraťte TelemetryScope<T> objekt. Po dokončení úlohy uživatele zavolejte metodu End(TelemetryResult, String) pro odeslání dalšího koncového OperationEvent bodu. Vzhledem k tomu, že počáteční i koncové události používají stejný název události, nepoužívejte v názvu události Start ani End.

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

Spusťte sledování operace odesláním OperationEvent se zadanými vlastnostmi na začátku operace a vraťte TelemetryScope<T> objekt. Po dokončení úlohy uživatele zavolejte metodu End(TelemetryResult, String) pro odeslání dalšího koncového OperationEvent bodu. Vzhledem k tomu, že počáteční i koncové události používají stejný název události, nepoužívejte v názvu události Start ani End.

StartUserTask(TelemetrySession, String)

Začněte sledovat úlohu uživatele tak, že na začátku uživatelského úkolu publikujte UserTaskEvent úkol a pak vrátíte TelemetryScope<T> objekt. Po dokončení úlohy uživatele zavolejte metodu End(TelemetryResult, String) pro odeslání dalšího koncového UserTaskEvent bodu. Vzhledem k tomu, že počáteční i koncové události používají stejný název události, nepoužívejte v názvu události Start ani End.

StartUserTask(TelemetrySession, String, TelemetryScopeSettings)

Začněte sledovat úlohu uživatele tak, že na začátku práce s uživatelským úkolem publikujte UserTaskEvent objekt se zadanými vlastnostmi a pak vrátíte TelemetryScope<T> objekt. Po dokončení úlohy uživatele zavolejte metodu End(TelemetryResult, String) pro odeslání dalšího koncového UserTaskEvent bodu. Vzhledem k tomu, že počáteční i koncové události používají stejný název události, nepoužívejte v názvu události Start ani End.

StartUserTask(TelemetrySession, String, TelemetrySeverity)

Začněte sledovat úlohu uživatele tak, že na začátku uživatelského úkolu publikujte UserTaskEvent úkol a pak vrátíte TelemetryScope<T> objekt. Po dokončení úlohy uživatele zavolejte metodu End(TelemetryResult, String) pro odeslání dalšího koncového UserTaskEvent bodu. Vzhledem k tomu, že počáteční i koncové události používají stejný název události, nepoužívejte v názvu události Start ani End.

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

Začněte sledovat úlohu uživatele tak, že na začátku práce s uživatelským úkolem publikujte UserTaskEvent objekt se zadanými vlastnostmi a pak vrátíte TelemetryScope<T> objekt. Po dokončení úlohy uživatele zavolejte metodu End(TelemetryResult, String) pro odeslání dalšího koncového UserTaskEvent bodu. Vzhledem k tomu, že počáteční i koncové události používají stejný název události, nepoužívejte v názvu události Start ani End.

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

Začněte sledovat úlohu uživatele tak, že na začátku práce s uživatelským úkolem publikujte UserTaskEvent objekt se zadanými vlastnostmi a pak vrátíte TelemetryScope<T> objekt. Po dokončení úlohy uživatele zavolejte metodu End(TelemetryResult, String) pro odeslání dalšího koncového UserTaskEvent bodu. Vzhledem k tomu, že počáteční i koncové události používají stejný název události, nepoužívejte v názvu události Start ani End.

Platí pro