public void SendEventToValidateEndpoint() { string unicodeString = "русский\\#/\x0000\x0001\x0002\x0003\x0004\x0005\x0006\x0007\x0008\x009Farabicشلاؤيثبلاهتنمةىخحضقسفعشلاؤيصثبل c\n\r\t"; EventTelemetry telemetry1 = new EventTelemetry(unicodeString); MetricTelemetry telemetry2 = new MetricTelemetry("name", 100); DependencyTelemetry telemetry3 = new DependencyTelemetry("name", "commandName", DateTimeOffset.UtcNow, TimeSpan.FromHours(3), true); ExceptionTelemetry telemetry4 = new ExceptionTelemetry(new ArgumentException("Test")); MetricTelemetry telemetry5 = new MetricTelemetry("name", 100); PageViewTelemetry telemetry6 = new PageViewTelemetry("name"); #pragma warning disable 618 PerformanceCounterTelemetry telemetry7 = new PerformanceCounterTelemetry("category", "name", "instance", 100); #pragma warning restore 618 RequestTelemetry telemetry8 = new RequestTelemetry("name", DateTimeOffset.UtcNow, TimeSpan.FromHours(2), "200", true); #pragma warning disable 618 SessionStateTelemetry telemetry9 = new SessionStateTelemetry(SessionState.Start); #pragma warning restore 618 TraceTelemetry telemetry10 = new TraceTelemetry("text"); AvailabilityTelemetry telemetry11 = new AvailabilityTelemetry("name", DateTimeOffset.UtcNow, TimeSpan.FromHours(10), "location", true, "message"); var telemetryItems = new List <ITelemetry> { telemetry1, telemetry2, telemetry3, telemetry4, telemetry5, telemetry6, telemetry7, telemetry8, telemetry9, telemetry10, telemetry11 }; // ChuckNorrisTeamUnitTests resource in Prototypes5 var config = new TelemetryConfiguration { InstrumentationKey = "fafa4b10-03d3-4bb0-98f4-364f0bdf5df8" }; var telemetryClient = new TelemetryClient(config); telemetryClient.Context.Properties.Add(unicodeString, unicodeString); telemetryClient.Initialize(telemetry1); telemetryClient.Initialize(telemetry2); telemetryClient.Initialize(telemetry3); telemetryClient.Initialize(telemetry4); telemetryClient.Initialize(telemetry5); telemetryClient.Initialize(telemetry6); telemetryClient.Initialize(telemetry7); telemetryClient.Initialize(telemetry8); telemetryClient.Initialize(telemetry9); telemetryClient.Initialize(telemetry10); telemetryClient.Initialize(telemetry11); string json = JsonSerializer.SerializeAsString(telemetryItems); HttpClient client = new HttpClient(); var result = client.PostAsync( "https://dc.services.visualstudio.com/v2/validate", new ByteArrayContent(Encoding.UTF8.GetBytes(json))).GetAwaiter().GetResult(); if (result.StatusCode != HttpStatusCode.OK) { var response = result.Content.ReadAsStringAsync().GetAwaiter().GetResult(); Trace.WriteLine(response); } Assert.Equal(HttpStatusCode.OK, result.StatusCode); }
public async Task TestDependencyCollectionNoParentActivity() { ITelemetry sentTelemetry = null; var channel = new StubTelemetryChannel { OnSend = telemetry => { // The correlation id lookup service also makes http call, just make sure we skip that DependencyTelemetry depTelemetry = telemetry as DependencyTelemetry; if (depTelemetry != null && !depTelemetry.Data.StartsWith(FakeProfileApiEndpoint, StringComparison.OrdinalIgnoreCase)) { Assert.IsNull(sentTelemetry); sentTelemetry = telemetry; } }, EndpointAddress = FakeProfileApiEndpoint }; var config = new TelemetryConfiguration { InstrumentationKey = IKey, TelemetryChannel = channel }; config.TelemetryInitializers.Add(new OperationCorrelationTelemetryInitializer()); using (var module = new DependencyTrackingTelemetryModule()) { module.ProfileQueryEndpoint = FakeProfileApiEndpoint; module.Initialize(config); var url = new Uri("http://bing.com"); var request = new HttpRequestMessage(HttpMethod.Get, url); await new HttpClient().SendAsync(request); // on netcoreapp1.0 DiagnosticSource event is fired asycronously, let's wait for it Assert.IsTrue(SpinWait.SpinUntil(() => sentTelemetry != null, TimeSpan.FromSeconds(1))); var item = (DependencyTelemetry)sentTelemetry; Assert.AreEqual(url, item.Data); Assert.AreEqual(url.Host, item.Target); Assert.AreEqual("GET " + url.AbsolutePath, item.Name); Assert.IsTrue(item.Duration > TimeSpan.FromMilliseconds(0), "Duration has to be positive"); Assert.AreEqual(RemoteDependencyConstants.HTTP, item.Type, "HttpAny has to be dependency kind as it includes http and azure calls"); Assert.IsTrue( DateTime.UtcNow.Subtract(item.Timestamp.UtcDateTime).TotalMilliseconds < TimeSpan.FromMinutes(1).TotalMilliseconds, "timestamp < now"); Assert.IsTrue( item.Timestamp.Subtract(DateTime.UtcNow).TotalMilliseconds > -TimeSpan.FromMinutes(1).TotalMilliseconds, "now - 1 min < timestamp"); Assert.AreEqual("200", item.ResultCode); var requestId = item.Id; Assert.AreEqual(requestId, request.Headers.GetValues("Request-Id").Single()); Assert.AreEqual(requestId, request.Headers.GetValues("x-ms-request-id").Single()); Assert.IsTrue(requestId.StartsWith('|' + item.Context.Operation.Id + '.')); } }
public void DefaultChannelInConfigurationIsCreatedByConstructorWhenNotSpecified() { TelemetryConfiguration configuration = new TelemetryConfiguration(Guid.NewGuid().ToString()); Assert.IsNotNull(configuration.TelemetryChannel); }