コード例 #1
0
ファイル: App.xaml.02.cs プロジェクト: castanc/UWPAppInsights
 public static void LogTelemetry(string text, SeverityLevel severity = SeverityLevel.Information, Dictionary <string, string> properties = null)
 {
     if (TelemetryEnabled)
     {
         telemetry.TrackTrace($"UWP::{text}", severity, properties);
     }
 }
コード例 #2
0
        public ActionResult Index()
        {
            var tc = new TelemetryClient();
            tc.TrackTrace("I made it to the home page", SeverityLevel.Error);

            return View();
        }
コード例 #3
0
        // GET api/values/5
        public string Get(int id)
        {
            var client = new TelemetryClient();
            client.TrackTrace("trace");

            return "value";
        }
コード例 #4
0
ファイル: HomeController.cs プロジェクト: SergeyKanzhelev/BO
        public ActionResult Index()
        {
            ViewBag.Title = "Home Page";

            var client = new TelemetryClient();
            client.TrackTrace("trace");

            return View();
        }
コード例 #5
0
        public override void WriteLine(string message)
        {
            //// Note: A single instance of telemetry client is sufficient to track multiple telemetry items.
            //var ai = new TelemetryClient();
            //ai.TrackException(filterContext.Exception);
            //var ai = new TelemetryClient();
            //var trace = new TraceTelemetry("test2 " + message);
            //trace.SeverityLevel = SeverityLevel.Critical;
            //ai.Track(trace);

            try
            {
                throw new Exception("error2" + message);
            }
            catch (Exception exc)
            {
                var telemetry = new Microsoft.ApplicationInsights.TelemetryClient();
                telemetry.TrackTrace("anders test", SeverityLevel.Error);

                telemetry.TrackTrace("Slow database response",
                                     SeverityLevel.Warning,
                                     new System.Collections.Generic.Dictionary <string, string> {
                    { "database", "1111" }
                });
                telemetry.TrackException(exc);
            }


            //var storageAccount = CloudStorageAccount.Parse(Startup.Configuration.GetConnectionString("AzureWebJobsStorage"));
            //var blobClient = storageAccount.CreateCloudBlobClient();
            //var logBlobContainer = blobClient.GetContainerReference("websitelog");
            //logBlobContainer.CreateIfNotExists();

            //var now = DateTime.Now;
            //var logBlob = logBlobContainer.GetBlockBlobReference($"{now.Year.ToString("D4")}/{now.Month.ToString("D2")}/{now.Day.ToString("D2")} {now.Hour.ToString("D2")}:{now.Minute.ToString("D2")}:{now.Second.ToString("D2")};{now.Millisecond} ERROR");
            //logBlob.UploadText(message);
        }
コード例 #6
0
        public void TrackDoesNotInitializeInstrumentationKeyFromConfigWhenItWasSetExplicitly()
        {
            var configuration = new TelemetryConfiguration
            {
                TelemetryChannel   = new StubTelemetryChannel(),
                InstrumentationKey = Guid.NewGuid().ToString()
            };
            var client = new TelemetryClient(configuration);

            var expectedKey = Guid.NewGuid().ToString();

            client.Context.InstrumentationKey = expectedKey;
            client.TrackTrace("Test Message");

            Assert.Equal(expectedKey, client.Context.InstrumentationKey);
        }
コード例 #7
0
ファイル: App.xaml.cs プロジェクト: castanc/UWPAppInsights
        public static void LogTelemetry(string text)
        {
            if (TelemetryEnabled)
            {
                //telemetry.TrackTrace($"UWP::{text}", 1,{ });

                //    var obj = {
                //    message: "Channel::" + message,
                //    severityLevel: 1,
                //    properties: logDetails
                //};

                Dictionary <string, string> dict = new Dictionary <string, string>();
                dict.Add("Parameter1", "value1");
                dict.Add("parameter2", "value2");
                telemetry.TrackTrace("", 1, dict);
            }
        }
コード例 #8
0
        public void GrandChildTelemetryIsReportedProperlyBetweenBeginEndRequestWhenActivityIsLost()
        {
            this.module = this.CreateModule();

            this.aspNetDiagnosticsSource.StartActivity();

            var activity = Activity.Current;

            Activity.Current.Stop();
            Assert.IsNull(Activity.Current);

            this.aspNetDiagnosticsSource.RestoreLostActivity(activity);
            var restoredActivity = Activity.Current;

            var trace  = new TraceTelemetry();
            var client = new TelemetryClient(this.configuration);

            client.TrackTrace(trace);

            this.aspNetDiagnosticsSource.ReportRestoredActivity(restoredActivity);
            Assert.AreEqual(1, this.sendItems.Count);

            restoredActivity.Stop();
            this.aspNetDiagnosticsSource.StopLostActivity(activity);

            Assert.AreEqual(3, this.sendItems.Count);
            var requestRestoredTelemetry = (RequestTelemetry)this.sendItems[1];

            Assert.IsNotNull(requestRestoredTelemetry);

            Assert.AreEqual(3, this.sendItems.Count);

            var requestTelemetry = (RequestTelemetry)this.sendItems[2];

            Assert.IsNotNull(requestTelemetry);

            Assert.AreEqual(requestTelemetry.Id, requestRestoredTelemetry.Context.Operation.ParentId);
            Assert.AreEqual(restoredActivity.Id, requestRestoredTelemetry.Id);
            Assert.AreEqual(requestTelemetry.Context.Operation.Id, requestRestoredTelemetry.Context.Operation.Id);

            Assert.AreEqual(restoredActivity.ParentId, requestTelemetry.Id);
            Assert.AreEqual(restoredActivity.Id, trace.Context.Operation.ParentId);
            Assert.AreEqual(requestTelemetry.Context.Operation.Id, trace.Context.Operation.Id);
        }
コード例 #9
0
        public void TrackUsesInstrumentationKeyFromConfigurationWhenTheInstrumenationKeyIsEmpty()
        {
            ITelemetry sentTelemetry = null;
            var        channel       = new StubTelemetryChannel {
                OnSend = telemetry => sentTelemetry = telemetry
            };
            var configuration = new TelemetryConfiguration {
                TelemetryChannel = channel
            };
            var client  = new TelemetryClient(configuration);
            var observe = client.Context.InstrumentationKey;

            string expectedKey = Guid.NewGuid().ToString();

            configuration.InstrumentationKey = expectedKey;
            Assert.DoesNotThrow(() => client.TrackTrace("Test Message"));

            Assert.Equal(expectedKey, sentTelemetry.Context.InstrumentationKey);
        }
コード例 #10
0
        public void TrackUsesInstrumentationKeyFromConfigIfEnvironmentVariableIsEmpty()
        {
            ITelemetry sentTelemetry = null;
            var        channel       = new StubTelemetryChannel {
                OnSend = telemetry => sentTelemetry = telemetry
            };
            var configuration = new TelemetryConfiguration {
                TelemetryChannel = channel
            };
            var client = new TelemetryClient(configuration);

            string expectedKey = Guid.NewGuid().ToString();

            configuration.InstrumentationKey = expectedKey;                             // Set in config
            Environment.SetEnvironmentVariable("APPINSIGHTS_INSTRUMENTATIONKEY", null); // Not set via env. variable
            Assert.DoesNotThrow(() => client.TrackTrace("Test Message"));

            Assert.Equal(expectedKey, sentTelemetry.Context.InstrumentationKey);
        }
        public void AppInsightsUsesActivityWhenDiagnosticSourceIsAvailableW3C()
        {
            // Regular use case - System.DiagnosticSource is available. Regular unit test can cover this scenario.
            var config = new TelemetryConfiguration();

            config.TelemetryInitializers.Add(new OperationCorrelationTelemetryInitializer());
            var tc = new TelemetryClient(config);

            using (var requestOperation = tc.StartOperation <RequestTelemetry>("request", "guid"))
            {
                using (var dependencyOperation = tc.StartOperation <DependencyTelemetry>("dependency", "guid"))
                {
                    // "guid" is not w3c compatible. Ignored
                    Assert.IsFalse(dependencyOperation.Telemetry.Id.StartsWith("|guid."));
                    // but "guid" will be stored in custom properties
                    Assert.AreEqual("guid", dependencyOperation.Telemetry.Properties["ai_legacyRootId"]);
                    tc.TrackTrace("Hello World!");
                }
            }
        }
        public void ChildTelemetryIsReportedProperlyBetweenBeginEndRequest()
        {
            this.module = this.CreateModule();

            this.aspNetDiagnosticsSource.StartActivity();

            var trace  = new TraceTelemetry();
            var client = new TelemetryClient(this.configuration);

            client.TrackTrace(trace);

            this.aspNetDiagnosticsSource.StopActivity();
            Assert.AreEqual(2, this.sendItems.Count);

            var requestTelemetry = this.sendItems[0] as RequestTelemetry ?? this.sendItems[1] as RequestTelemetry;

            Assert.IsNotNull(requestTelemetry);

            Assert.AreEqual(requestTelemetry.Id, trace.Context.Operation.ParentId);
            Assert.AreEqual(requestTelemetry.Context.Operation.Id, trace.Context.Operation.Id);
        }
コード例 #13
0
        public async Task UpdateSettings(string trainArguments = null, float? initialExplorationEpsilon = null, bool? isExplorationEnabled = null)
        {
            var token = Request.Headers["Authorization"];
            if (token != ConfigurationManager.AppSettings[ApplicationMetadataStore.AKPassword])
                throw new UnauthorizedAccessException();

            var telemetry = new TelemetryClient();
            try
            {
                telemetry.TrackTrace($"UpdateSettings(trainArguments={trainArguments}, initialExplorationEpsilon={initialExplorationEpsilon}, isExplorationEnabled={isExplorationEnabled})");

                string azureStorageConnectionString = ConfigurationManager.AppSettings[ApplicationMetadataStore.AKConnectionString];
                var storageAccount = CloudStorageAccount.Parse(azureStorageConnectionString);
                var blobClient = storageAccount.CreateCloudBlobClient();
                var settingsBlobContainer = blobClient.GetContainerReference(ApplicationBlobConstants.SettingsContainerName);

                var blob = settingsBlobContainer.GetBlockBlobReference(ApplicationBlobConstants.LatestClientSettingsBlobName);
                ApplicationClientMetadata clientMeta;
                if (await blob.ExistsAsync())
                    clientMeta = JsonConvert.DeserializeObject<ApplicationClientMetadata>(await blob.DownloadTextAsync());
                else
                    clientMeta = new ApplicationClientMetadata();

                if (trainArguments != null)
                    clientMeta.TrainArguments = trainArguments;

                if (initialExplorationEpsilon != null)
                    clientMeta.InitialExplorationEpsilon = (float)initialExplorationEpsilon;

                if (isExplorationEnabled != null)
                    clientMeta.IsExplorationEnabled = (bool)isExplorationEnabled;

                await blob.UploadTextAsync(JsonConvert.SerializeObject(clientMeta));
            }
            catch (Exception e)
            {
                telemetry.TrackException(e);
            }
        }
コード例 #14
0
        static void Main(string[] args)
        {
            if (args.Length == 1)
            {
                TelemetryClient client = new TelemetryClient(TelemetryConfiguration.Active);
                client.TrackTrace("One trace is sent to make sure that SDK is initialized.");

                string param = args[0];

                switch (param)
                {
                    case "unhandled" :
                        GenerateUnhandledException();
                        break;
                    case "unobserved" :
                        GenerateUnobservedException(client);
                        break;
                }
            }
            else
                throw new ArgumentException("One parameter is required");
        }
 public void AppInsightsUsesActivityWhenDiagnosticSourceIsAvailableNonW3C()
 {
     try
     {
         // Regular use case - System.DiagnosticSource is available. Regular unit test can cover this scenario.
         var config = new TelemetryConfiguration();
         DisableW3CFormatInActivity();
         config.TelemetryInitializers.Add(new OperationCorrelationTelemetryInitializer());
         var tc = new TelemetryClient(config);
         using (var requestOperation = tc.StartOperation <RequestTelemetry>("request", "guid"))
         {
             using (var dependencyOperation = tc.StartOperation <DependencyTelemetry>("dependency", "guid"))
             {
                 Assert.IsTrue(dependencyOperation.Telemetry.Id.StartsWith("|guid."));
                 tc.TrackTrace("Hello World!");
             }
         }
     }
     finally
     {
         EnableW3CFormatInActivity();
     }
 }
コード例 #16
0
        public void TrackDoesNotInitializeInstrumentationKeyWhenItWasSetExplicitly()
        {
            var configuration = new TelemetryConfiguration { TelemetryChannel = new StubTelemetryChannel(), InstrumentationKey = Guid.NewGuid().ToString() };
            var client = new TelemetryClient(configuration);

            var expectedKey = Guid.NewGuid().ToString();
            client.Context.InstrumentationKey = expectedKey;
            client.TrackTrace("Test Message");

            Assert.Equal(expectedKey, client.Context.InstrumentationKey);
        }
コード例 #17
0
 /// <summary>
 /// Reports a log event to telemetry.
 /// </summary>
 /// <param name="eventName"></param>
 /// <param name="metric"></param>
 public void ReportLog(object component, string message, SeverityLevel level = SeverityLevel.Information)
 {
     TelemetryClient client = new TelemetryClient();
     client.TrackTrace($"[{component.GetType().Name}] {message}", level);
 }
コード例 #18
0
        public void TrackWhenChannelIsNullWillThrowInvalidOperationException()
        {
            var config = new TelemetryConfiguration();
            config.InstrumentationKey = "Foo";
            var client = new TelemetryClient(config);

            Assert.Throws<InvalidOperationException>(() => client.TrackTrace("test trace"));
        }
コード例 #19
0
        public void TrackUsesInstrumentationKeyFromConfigurationWhenTheInstrumenationKeyIsEmpty()
        {
            ITelemetry sentTelemetry = null;
            var channel = new StubTelemetryChannel { OnSend = telemetry => sentTelemetry = telemetry };
            var configuration = new TelemetryConfiguration { TelemetryChannel = channel };
            var client = new TelemetryClient(configuration);
            var observe = client.Context.InstrumentationKey;

            string expectedKey = Guid.NewGuid().ToString();
            configuration.InstrumentationKey = expectedKey;
            Assert.DoesNotThrow(() => client.TrackTrace("Test Message"));

            Assert.Equal(expectedKey, sentTelemetry.Context.InstrumentationKey);
        }