public void GeneratePartAEnvelope_Activity_WithParentSpanId() { using ActivitySource activitySource = new ActivitySource(ActivitySourceName); using var activity = activitySource.StartActivity( ActivityName, ActivityKind.Client, parentContext: new ActivityContext(ActivityTraceId.CreateRandom(), ActivitySpanId.CreateRandom(), ActivityTraceFlags.Recorded), startTime: DateTime.UtcNow); var resource = CreateTestResource(); var telemetryItem = TelemetryPartA.GetTelemetryItem(activity, resource, null); Assert.Equal("RemoteDependency", telemetryItem.Name); Assert.Equal(TelemetryPartA.FormatUtcTimestamp(activity.StartTimeUtc), telemetryItem.Time); Assert.StartsWith("unknown_service", telemetryItem.Tags[ContextTagKeys.AiCloudRole.ToString()]); Assert.Null(telemetryItem.Tags[ContextTagKeys.AiCloudRoleInstance.ToString()]); Assert.NotNull(telemetryItem.Tags[ContextTagKeys.AiOperationId.ToString()]); Assert.NotNull(telemetryItem.Tags[ContextTagKeys.AiInternalSdkVersion.ToString()]); Assert.Equal(activity.ParentSpanId.ToHexString(), telemetryItem.Tags[ContextTagKeys.AiOperationParentId.ToString()]); }
public void GeneratePartAEnvelope_Activity_WithResource() { using ActivitySource activitySource = new ActivitySource(ActivitySourceName); using var activity = activitySource.StartActivity( ActivityName, ActivityKind.Client, parentContext: default, startTime: DateTime.UtcNow); var resource = CreateTestResource(serviceName: "my-service", serviceInstance: "my-instance"); var telemetryItem = TelemetryPartA.GetTelemetryItem(activity, resource, null); Assert.Equal("RemoteDependency", telemetryItem.Name); Assert.Equal(TelemetryPartA.FormatUtcTimestamp(activity.StartTimeUtc), telemetryItem.Time); Assert.Equal("my-service", telemetryItem.Tags[ContextTagKeys.AiCloudRole.ToString()]); Assert.Equal("my-instance", telemetryItem.Tags[ContextTagKeys.AiCloudRoleInstance.ToString()]); Assert.Equal(activity.TraceId.ToHexString(), telemetryItem.Tags[ContextTagKeys.AiOperationId.ToString()]); Assert.Equal(SdkVersionUtils.SdkVersion, telemetryItem.Tags[ContextTagKeys.AiInternalSdkVersion.ToString()]); Assert.Throws <KeyNotFoundException>(() => telemetryItem.Tags[ContextTagKeys.AiOperationParentId.ToString()]); }
public void GeneratePartAEnvelope_DefaultActivity_DefaultResource() { using ActivitySource activitySource = new ActivitySource(ActivitySourceName); using var activity = activitySource.StartActivity( ActivityName, ActivityKind.Client, parentContext: default, startTime: DateTime.UtcNow); var resource = CreateTestResource(); var monitorTags = AzureMonitorConverter.EnumerateActivityTags(activity); var telemetryItem = TelemetryPartA.GetTelemetryItem(activity, ref monitorTags, resource, null); Assert.Equal("RemoteDependency", telemetryItem.Name); Assert.Equal(TelemetryPartA.FormatUtcTimestamp(activity.StartTimeUtc), telemetryItem.Time); Assert.StartsWith("unknown_service", telemetryItem.Tags[ContextTagKeys.AiCloudRole.ToString()]); Assert.Equal(Dns.GetHostName(), telemetryItem.Tags[ContextTagKeys.AiCloudRoleInstance.ToString()]); Assert.NotNull(telemetryItem.Tags[ContextTagKeys.AiOperationId.ToString()]); Assert.NotNull(telemetryItem.Tags[ContextTagKeys.AiInternalSdkVersion.ToString()]); Assert.Throws <KeyNotFoundException>(() => telemetryItem.Tags[ContextTagKeys.AiOperationParentId.ToString()]); }