TelemetrySession 클래스

정의

원격 분석 이벤트 및 세션 속성을 게시할 수 있는 하나의 원격 분석 세션을 나타냅니다. API는 원격 분석 데이터를 서버에 제공하기 위해 최선을 다합니다. 요청은 큐에 대기되고 일괄 처리로 전송됩니다. 프로세스가 종료되기 전에 전송할 수 없는 경우 이벤트가 로컬로 저장됩니다. 다음 애플리케이션 instance 원격 분석 API를 호출하면 전송이 다시 시작됩니다. 30일 동안 프로세스에 응답하지 않거나 심각한 충돌이 발생하거나 인터넷 연결이 없는 경우 원격 분석이 손실될 수 있습니다. 모든 메서드는 스레드로부터 안전하며 즉시 반환됩니다.

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
상속

생성자

TelemetrySession(String)

TelemetrySessionSettings instance 직렬화된 문자열을 기반으로 새 원격 분석 세션을 만듭니다. TelemetrySession instance SerializeSettings 메서드를 사용하여 이러한 문자열을 가져옵니다. 이렇게 하면 프로세스가 다른 프로세스의 원격 분석 세션에 이벤트를 게시할 수 있습니다. VSTelemetryService.DefaultSession을 사용하여 애플리케이션 세션에 액세스합니다.

필드

DefaultContextName

기본 컨텍스트 이름입니다.

ValueNotAvailable

사용할 수 없는 값에 대한 상수입니다.

속성

AppId

SQM에 대한 애플리케이션 ID를 가져오거나 설정합니다.

BucketFiltersToAddDumpsToFaults

오류 이벤트에 대해 추가해야 하는 버킷 프로세스 덤프를 나타내는 값을 가져오거나 설정합니다.

BucketFiltersToEnableWatsonForFaults

오류 이벤트에 대해 Watson 보고를 사용하도록 설정해야 하는 버킷을 나타내는 값을 가져오거나 설정합니다.

CalculatedSamplings

매니페스트 파일에서 계산된 샘플링을 가져오/설정합니다.

CancellationToken

원격 분석 세션의 CancellationToken을 가져옵니다.

CanCollectPrivateInformation

현재 세션이 사용자 정보 관리자의 답변에 따라 PII 정보를 수집할 수 있는지 여부를 나타내는 값을 가져옵니다.

GlobalStorageUri

VS Code에서 전역 스토리지 URI를 가져옵니다.

HostName

원격 분석 호스트 이름을 가져오거나 설정하며 매니페스트 파일 위치에 영향을 줍니다.

IsDisposed

중복 호출을 검색하기 위해 세션이 삭제되는지 여부를 나타내는 값을 가져옵니다.

(다음에서 상속됨 TelemetryDisposableObject)
IsOptedIn

사용자가 옵트인되었는지 여부를 나타내는 값을 가져오거나 설정합니다.

IsUserMicrosoftInternal

현재 세션이 내부 사용자에 속하는지 여부를 나타내는 값을 가져오므로 사용자 정보 관리자의 답변에 따라 정보를 수집할 수 있습니다.

MacAddressHash

MAC 주소 해시를 가져옵니다. 로컬 스토리지에서 해시를 찾을 수 없는 경우 0 해시가 반환되고 해시 프로세스가 호출됩니다.

MachineId

컴퓨터 ID(SQM 컴퓨터 ID)를 가져옵니다.

SessionId

세션 ID를 가져옵니다.

TimeSinceSessionStart

고객이 원격 분석과 동일한 알고리즘을 기반으로 사용자 지정 지연을 계산하는 데 사용하려는 경우 TimeSinceSessionStart를 가져옵니다.

UserId

사용자 ID(SQM 사용자 ID)를 가져옵니다.

메서드

AddCommonPropertyRange(IDictionary<String,Object>)

세션의 모든 이벤트에 공통적일 수 있지만 Default.Context 접두사는 없어야 하는 속성을 추가합니다. 속성은 세션 간에 유지되지 않습니다. 단일 속성을 추가하려면 TryAddCommonProperty(String, Object)

AddSessionChannel(ISessionChannel)

활성 채널 목록에 새 세션 채널을 추가합니다.

CreateContext(String)

특정 이름을 사용하여 컨텍스트를 Create.

Dispose()

이 코드는 삭제 가능한 패턴을 올바르게 구현하기 위해 추가되었습니다.

(다음에서 상속됨 TelemetryDisposableObject)
DisposeManagedResources()

Dispose 패턴의 보호된 구현입니다.

DisposeToNetworkAsync(CancellationToken)

비동기적으로 삭제하고 네트워크를 통해 모든 원격 분석을 보내려고 시도합니다.

GetCommonPropertyDictionary()

현재 세션에 있는 CommonProperty 키 및 값의 복사본을 포함하는 IDictionary를 가져옵니다.

GetContext(String)

지정된 이름으로 컨텍스트를 가져옵니다.

GetPersistedSharedProperty(String)

이름으로 지속형 공유 속성을 가져옵니다.

GetPropertyBag(String)

지정된 이름으로 속성 모음을 가져옵니다.

GetSharedProperty(String)

이름으로 공유 속성을 가져옵니다.

GetSharedPropertyAsObject(String)

이름으로 공유 속성의 값을 개체로 가져옵니다.

PostEvent(String)

서버에 게시할 원격 분석 이벤트를 큐에 대기합니다. 이름이 유일한 이벤트 속성인 경우 간단히 하기 위해 이 메서드를 선택합니다. PostUserTask, PostOperation, PostFault 또는 PostAsset를 선택하는 것이 좋습니다. 이를 통해 Visual Studio 데이터 모델에서 제공하는 추가 인사이트를 통해 보다 풍부한 원격 분석 환경을 사용할 수 있습니다. 데이터 포인트가 VS Data Model 엔터티와 일치하지 않는 경우 연결을 강제 적용하지 말고 이 메서드를 계속 사용하세요. VS 데이터 모델에 대한 질문이 있는 경우 VS Data Model Crew(vsdmcrew@microsoft.com)로 이메일을 보내주세요.

PostEvent(TelemetryEvent)

서버에 게시할 원격 분석 이벤트를 큐에 대기합니다. 유연성을 위해 이 방법을 선택합니다. PostUserTask, PostOperation, PostFault 또는 PostAsset를 선택하는 것이 좋습니다. 이를 통해 Visual Studio 데이터 모델에서 제공하는 추가 인사이트를 통해 보다 풍부한 원격 분석 환경을 사용할 수 있습니다. 데이터 포인트가 VS Data Model 엔터티와 일치하지 않는 경우 연결을 강제 적용하지 말고 이 메서드를 계속 사용하세요. VS 데이터 모델에 대한 질문이 있는 경우 VS Data Model Crew(vsdmcrew@microsoft.com)로 이메일을 보내주세요.

PostMetricEvent(TelemetryMetricEvent)

메트릭 속성을 채웁니다. 그런 다음 이벤트를 게시하여 메트릭 이벤트를 준비합니다.

PostProperty(String, Object)

세션 전체 속성에 대한 업데이트를 에 큐에 추가합니다. 고려할 TelemetrySettingPropertyTelemetryMetricProperty 수도 있고 Visual Studio 데이터 모델에서 제공하는 추가 인사이트를 사용하여 보다 풍부한 원격 분석 환경을 사용하도록 설정할 수도 있습니다. VS 데이터 모델에 대한 질문이 있는 경우 VS Data Model Crew(vsdmcrew@microsoft.com)로 이메일을 보내주세요.

PostRecurringProperty(String, Object)

정기적으로 되풀이되는 VS/TelemetryApi/RecurringProperties 이벤트에 포함할 속성을 추가합니다. PostProperty 또는 TelemetryContext.PostProperty와 달리 PostRecurringProperty는 지정된 속성을 모든 이벤트에 추가하지 않습니다. PostRecurringProperty는 TelemetrySession의 수명 동안 일정한 값에 가장 유용합니다.

RegisterForReliabilityEvent()

모든 호스트 VS IDE에서 이 프로세스의 최종 종료 상태 추적하고 보고하는 데 사용되는 프로세스 및 세션 정보를 레지스트리에 씁니다.

RegisterPropertyBag(String, TelemetryPropertyBag)

지정된 속성 모음을 등록합니다.

RemovePersistedSharedProperty(String)

모든 세션에 대해 지속형 공유 속성을 제거한다는 것은 이 기본 컨텍스트에서 공유 속성을 제거하고 컴퓨터의 향후 세션에 대해 공유 속성을 제거한다는 것을 의미합니다.

RemoveSharedProperty(String)

세션에 대한 공유 속성 제거는 기본 컨텍스트에서 공유 속성을 제거한다는 의미입니다.

RequiresNotDisposed()

이 함수는 개체가 삭제된 경우 ObjectDisposedException을 throw합니다.

(다음에서 상속됨 TelemetryDisposableObject)
SerializeSettings()

TelemetrySessionSettings 개체를 직렬화합니다.

SetPersistedSharedProperty(String, Double)

세션에 대해 지속형 공유 속성을 설정한다는 것은 이 세션의 기본 컨텍스트 및 컴퓨터의 이후 세션에 대한 공유 속성을 설정하는 것을 의미합니다.

SetPersistedSharedProperty(String, String)

세션에 대해 지속형 공유 속성을 설정한다는 것은 이 세션의 기본 컨텍스트 및 컴퓨터의 이후 세션에 대한 공유 속성을 설정하는 것을 의미합니다.

SetSharedProperty(String, Object)

세션에 대한 공유 속성 설정은 기본 컨텍스트에 대한 공유 속성을 설정하는 것을 의미합니다TelemetryMetricProperty. 고려할 TelemetrySettingProperty 수도 있고 Visual Studio 데이터 모델에서 제공하는 추가 인사이트를 사용하여 보다 풍부한 원격 분석 환경을 사용하도록 설정합니다. VS 데이터 모델에 대한 질문이 있는 경우 VS Data Model Crew(vsdmcrew@microsoft.com)로 이메일을 보내주세요.

Start()

세션 시작은 세션에 대한 기본 컨텍스트를 만들고 허용되는 경우 개인 정보 속성을 추가하는 것을 의미합니다.

ToString()

디버깅을 더 쉽게 만들기 위한 ToString: 디버그 watch 창에 표시

TryAddCommonProperty(String, Object)

세션의 모든 이벤트에 공통적일 수 있지만 컨텍스트 접두사를 갖지 않아야 하는 단일 속성 키와 값을 추가하려고 시도합니다. 속성은 세션 간에 유지되지 않습니다. 여러 속성을 추가하려면 AddCommonPropertyRange(IDictionary<String,Object>)

TryGetCommonPropertyValue(String, Object)

세션의 모든 이벤트에 공통적이지만 컨텍스트 또는 예약된 접두사를 갖지 않아야 하는 지정된 속성 이름과 연결된 값을 가져옵니다.

UnregisterPropertyBag(String)

지정된 이름으로 속성 모음의 등록을 취소합니다.

UseVsIsOptedIn()

VS OptIn 상태 읽고 설정합니다. 설치된 모든 버전의 VS에서 OptedIn 상태 기반으로 IsOptedIn 상태 계산합니다. OptedIn 상태가 모두 true이면 true를 반환하고, 그렇지 않으면 false를 반환합니다.

UseVsIsOptedIn(String)

VS OptIn 상태 읽고 설정합니다.

확장 메서드

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

FaultEvent 와 상관 관계가 있는 을 operation 에 게시합니다session.

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

FaultEvent 와 상관 관계가 있는 을 operation 에 게시합니다session.

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

서버에 게시할 추가 속성을 사용하여 명령줄 플래그 정보를 사용하여 원격 분석 이벤트를 큐에 대기합니다. 지정된 접두사로 식별되는 명령줄 플래그만 포함됩니다.

PostCommandLineFlags(TelemetrySession, String[])

서버에 게시할 명령줄 플래그 정보를 사용하여 원격 분석 이벤트를 큐에 대기합니다. 지정된 접두사로 식별되는 명령줄 플래그만 포함됩니다.

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

자산 이벤트를 게시합니다. 자산은 사용자 작업 또는 작업(예: 솔루션, 프로젝트, 파일, 확장명, 라이선스, Designer)의 대상입니다.

PostFault(TelemetrySession, String, String)

Fault 이벤트를 게시합니다. 이벤트는 항상 AppInsights로 전송되지만 샘플링을 통과하면 Wason에도 게시됩니다. 또는 와 상관 관계가 UserTaskEventOperationEvent 있어 오류가 발생할 수 있는 경우에 더 유용합니다.

PostFault(TelemetrySession, String, String, FaultSeverity)

Fault 이벤트를 게시합니다. 이벤트는 항상 AppInsights로 전송되지만 샘플링을 통과하면 Wason에도 게시됩니다. 또는 와 상관 관계가 UserTaskEventOperationEvent 있어 오류가 발생할 수 있는 경우에 더 유용합니다.

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

관리되는 예외 개체를 사용하여 오류 이벤트를 게시합니다. 버킷 매개 변수는 예외 개체에서 만들어집니다. 또는 와 상관 관계가 UserTaskEventOperationEvent 있어 오류가 발생할 수 있는 경우에 더 유용합니다.

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

예외 개체 및 콜백을 사용하여 오류 이벤트를 게시합니다. 콜백은 JScript 호출 스택과 같이 Watson 백 엔드로 전송되는 비용이 많이 드는 데이터를 계산하는 데 사용할 수 있습니다. 이 콜백은 상관 관계가 UserTaskEvent 있거나 OperationEvent 오류가 발생할 수 있는 경우에 더 유용합니다.

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

예외 개체 및 콜백을 사용하여 오류 이벤트를 게시합니다. 콜백은 JScript 호출 스택과 같이 Watson 백 엔드로 전송되는 비용이 많이 드는 데이터를 계산하는 데 사용할 수 있습니다. 이 콜백은 상관 관계가 UserTaskEvent 있거나 OperationEvent 오류가 발생할 수 있는 경우에 더 유용합니다.

PostFault(TelemetrySession, String, String, Exception)

관리되는 예외 개체를 사용하여 오류 이벤트를 게시합니다. 버킷 매개 변수는 예외 개체에서 만들어집니다. 또는 와 상관 관계가 UserTaskEventOperationEvent 있어 오류가 발생할 수 있는 경우에 더 유용합니다.

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

예외 개체 및 콜백을 사용하여 오류 이벤트를 게시합니다. 콜백은 JScript 호출 스택과 같이 Watson 백 엔드로 전송되는 비용이 많이 드는 데이터를 계산하는 데 사용할 수 있습니다. 이 콜백은 상관 관계가 UserTaskEvent 있거나 OperationEvent 오류가 발생할 수 있는 경우에 더 유용합니다.

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

예외 개체 및 콜백을 사용하여 오류 이벤트를 게시합니다. 콜백은 JScript 호출 스택과 같이 Watson 백 엔드로 전송되는 비용이 많이 드는 데이터를 계산하는 데 사용할 수 있습니다. 이 콜백은 상관 관계가 UserTaskEvent 있거나 OperationEvent 오류가 발생할 수 있는 경우에 더 유용합니다.

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

Operation 이벤트를 게시합니다. 작업은 애플리케이션에서 일부 작업을 수행하고 결과(예: 성공, 실패)와 함께 제공됩니다. 사용자가 작업을 직접 호출하는 경우 또는 관련 메서드를 사용 UserTaskEvent 하세요. 작업의 몇 가지 예는 라이선스 검사, 패키지 로드, Windows 레이아웃 로드입니다.

이 메서드는 매우 빠르게 실행되거나 프로세스 기간을 분석할 값이 거의 없는 원자성 작업에 사용됩니다. 호출자는 작업이 완료되면 이 메서드를 호출합니다. 장기 실행 또는 비동기 작업의 경우 오류로 인해 부분적으로 완료된 경우 시간 또는 추적 중에 발생한 다른 작업을 이해하려면 시작 지점과 끝점을 모두 추적하는 메서드 StartOperation(TelemetrySession, String) 를 사용합니다.

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

사용자 작업에 대한 이벤트를 게시합니다. 사용자 작업은 사용자에 의해 직접 호출되고 결과(예: 성공, 실패)와 함께 제공되는 애플리케이션 작업입니다. 사용자 동작/의도 분석에 사용됩니다. 사용자는 작업을 알고 있으며 실행할 수 있습니다. 예를 들어 프로젝트 열기 및 도구 창 표시는 사용자 작업입니다. 대신 VS 패키지를 로드하고 디자인 타임 빌드는 작업입니다.

이 메서드는 매우 빠르게 실행되거나 프로세스 기간을 분석할 값이 거의 없는 원자성 사용자 작업에 사용됩니다. 호출자는 사용자 작업이 완료되면 이 메서드를 호출합니다. 장시간 실행 또는 비동기 사용자 작업의 경우 오류로 인해 부분적으로 완료된 경우 시간 또는 추적 중에 발생한 다른 작업을 이해하려면 시작 지점과 끝점을 모두 추적하는 메서드 StartUserTask(TelemetrySession, String) 를 사용합니다.

StartOperation(TelemetrySession, String)

작업 작업의 시작 부분에 를 OperationEvent 게시하여 추적 작업을 시작하고 개체를 반환합니다 TelemetryScope<T> . 사용자 작업이 완료되면 메서드를 호출하여 엔드포인트에 대해 다른 OperationEvent 메서드 End(TelemetryResult, String) 를 게시합니다. 시작 및 종료 이벤트 모두에서 동일한 이벤트 이름이 사용되므로 이벤트 이름에 시작 또는 종료를 사용하지 마세요.

StartOperation(TelemetrySession, String, TelemetryScopeSettings)

작업 시작 시 지정된 속성이 있는 을 OperationEvent 게시하여 추적 작업을 시작하고 개체를 TelemetryScope<T> 반환합니다. 사용자 작업이 완료되면 메서드를 호출하여 엔드포인트에 대해 다른 OperationEvent 메서드 End(TelemetryResult, String) 를 게시합니다. 시작 및 종료 이벤트 모두에서 동일한 이벤트 이름이 사용되므로 이벤트 이름에 시작 또는 종료를 사용하지 마세요.

StartOperation(TelemetrySession, String, TelemetrySeverity)

작업 작업의 시작 부분에 를 OperationEvent 게시하여 추적 작업을 시작하고 개체를 반환합니다 TelemetryScope<T> . 사용자 작업이 완료되면 메서드를 호출하여 엔드포인트에 대해 다른 OperationEvent 메서드 End(TelemetryResult, String) 를 게시합니다. 시작 및 종료 이벤트 모두에서 동일한 이벤트 이름이 사용되므로 이벤트 이름에 시작 또는 종료를 사용하지 마세요.

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

작업 시작 시 지정된 속성이 있는 을 OperationEvent 게시하여 추적 작업을 시작하고 개체를 TelemetryScope<T> 반환합니다. 사용자 작업이 완료되면 메서드를 호출하여 엔드포인트에 대해 다른 OperationEvent 메서드 End(TelemetryResult, String) 를 게시합니다. 시작 및 종료 이벤트 모두에서 동일한 이벤트 이름이 사용되므로 이벤트 이름에 시작 또는 종료를 사용하지 마세요.

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

작업 시작 시 지정된 속성이 있는 을 OperationEvent 게시하여 추적 작업을 시작하고 개체를 TelemetryScope<T> 반환합니다. 사용자 작업이 완료되면 메서드를 호출하여 엔드포인트에 대해 다른 OperationEvent 메서드 End(TelemetryResult, String) 를 게시합니다. 시작 및 종료 이벤트 모두에서 동일한 이벤트 이름이 사용되므로 이벤트 이름에 시작 또는 종료를 사용하지 마세요.

StartUserTask(TelemetrySession, String)

사용자 작업 작업의 시작 부분에 을 UserTaskEvent 게시하여 사용자 작업 추적을 시작한 다음 개체를 TelemetryScope<T> 반환합니다. 사용자 작업이 완료되면 메서드를 호출하여 엔드포인트에 대해 다른 UserTaskEvent 메서드 End(TelemetryResult, String) 를 게시합니다. 시작 및 종료 이벤트 모두에서 동일한 이벤트 이름이 사용되므로 이벤트 이름에 시작 또는 종료를 사용하지 마세요.

StartUserTask(TelemetrySession, String, TelemetryScopeSettings)

사용자 작업 작업의 시작 부분에 지정된 속성을 사용하여 을 UserTaskEvent 게시하여 사용자 작업 추적을 시작한 다음 개체를 TelemetryScope<T> 반환합니다. 사용자 작업이 완료되면 메서드를 호출하여 엔드포인트에 대해 다른 UserTaskEvent 메서드 End(TelemetryResult, String) 를 게시합니다. 시작 및 종료 이벤트 모두에서 동일한 이벤트 이름이 사용되므로 이벤트 이름에 시작 또는 종료를 사용하지 마세요.

StartUserTask(TelemetrySession, String, TelemetrySeverity)

사용자 작업 작업의 시작 부분에 을 UserTaskEvent 게시하여 사용자 작업 추적을 시작한 다음 개체를 TelemetryScope<T> 반환합니다. 사용자 작업이 완료되면 메서드를 호출하여 엔드포인트에 대해 다른 UserTaskEvent 메서드 End(TelemetryResult, String) 를 게시합니다. 시작 및 종료 이벤트 모두에서 동일한 이벤트 이름이 사용되므로 이벤트 이름에 시작 또는 종료를 사용하지 마세요.

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

사용자 작업 작업의 시작 부분에 지정된 속성을 사용하여 을 UserTaskEvent 게시하여 사용자 작업 추적을 시작한 다음 개체를 TelemetryScope<T> 반환합니다. 사용자 작업이 완료되면 메서드를 호출하여 엔드포인트에 대해 다른 UserTaskEvent 메서드 End(TelemetryResult, String) 를 게시합니다. 시작 및 종료 이벤트 모두에서 동일한 이벤트 이름이 사용되므로 이벤트 이름에 시작 또는 종료를 사용하지 마세요.

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

사용자 작업 작업의 시작 부분에 지정된 속성을 사용하여 을 UserTaskEvent 게시하여 사용자 작업 추적을 시작한 다음 개체를 TelemetryScope<T> 반환합니다. 사용자 작업이 완료되면 메서드를 호출하여 엔드포인트에 대해 다른 UserTaskEvent 메서드 End(TelemetryResult, String) 를 게시합니다. 시작 및 종료 이벤트 모두에서 동일한 이벤트 이름이 사용되므로 이벤트 이름에 시작 또는 종료를 사용하지 마세요.

적용 대상