Esempio n. 1
0
        private void SetEventProperties(List <Dictionary <string, string> > events)
        {
            Guid scenarioId = Guid.NewGuid();

            _logger.Log(string.Format(CultureInfo.InvariantCulture,
                                      "{0} event(s) received for scenarioId {1}",
                                      events.Count,
                                      scenarioId));

            foreach (var msalEvent in events)
            {
                _logger.Log(string.Format(CultureInfo.InvariantCulture,
                                          "Event: {0}",
                                          msalEvent[_msalEventNameKey]));

                EventProperties eventData = new EventProperties
                {
                    Name = msalEvent[_msalEventNameKey]
                };

                eventData.SetProperty(TelemetryHandlerConstants.MsalSessionIdKey, _sessionId);
                eventData.SetProperty(TelemetryHandlerConstants.MsalScenarioIdKey, scenarioId);
                foreach (var entry in msalEvent)
                {
                    eventData.SetProperty(entry.Key, entry.Value);

                    _logger.Log(string.Format(CultureInfo.InvariantCulture,
                                              "  {0}: {1}",
                                              entry.Key,
                                              entry.Value));
                }
                _ariaEventLogger.LogEvent(eventData);
            }
        }
Esempio n. 2
0
        /// <summary>
        /// Sets a property on a concrete Aria event
        /// </summary>
        /// <param name="name">The name property</param>
        /// <param name="value">The value property</param>
        public void SetProperty(string name, string value)
        {
#if !FEATURE_CORECLR
            m_eventProperties.SetProperty(name, value);
#else
    #if PLATFORM_OSX
            AriaMacOS.SetStringProperty(m_eventProperties, name, value);
    #endif
#endif
        }
Esempio n. 3
0
        public static EventProperties AsTelemetryEvent(this KernelPerformanceArgs info)
        {
            var evt = new EventProperties()
            {
                Name = "KernelPerformance".WithTelemetryNamespace()
            };

            evt.SetProperty("ManagedRamUsed".WithTelemetryNamespace(), info.ManagedRamUsed);
            evt.SetProperty("TotalRamUsed".WithTelemetryNamespace(), info.TotalRamUsed);

            return(evt);
        }
Esempio n. 4
0
        public static EventProperties AsTelemetryEvent(this SnippetCompiledEventArgs info)
        {
            var evt = new EventProperties()
            {
                Name = "Compile".WithTelemetryNamespace()
            };

            evt.SetProperty("Status".WithTelemetryNamespace(), info.Status);
            evt.SetProperty("Errors".WithTelemetryNamespace(), string.Join(",", info.Errors?.OrderBy(e => e) ?? Enumerable.Empty <string>()));
            evt.SetProperty("Duration".WithTelemetryNamespace(), info.Duration.ToString());

            return(evt);
        }
Esempio n. 5
0
        public static EventProperties AsTelemetryEvent(this PackageLoadedEventArgs info)
        {
            var evt = new EventProperties()
            {
                Name = "PackageLoad".WithTelemetryNamespace()
            };

            evt.SetProperty("PackageId".WithTelemetryNamespace(), info.PackageId);
            evt.SetProperty("PackageVersion".WithTelemetryNamespace(), info.PackageVersion);
            evt.SetProperty("Duration".WithTelemetryNamespace(), info.Duration.ToString());

            return(evt);
        }
Esempio n. 6
0
        public static EventProperties AsTelemetryEvent(this SimulatorPerformanceArgs info)
        {
            var evt = new EventProperties()
            {
                Name = "SimulatorPerformance".WithTelemetryNamespace()
            };

            evt.SetProperty("SimulatorName".WithTelemetryNamespace(), info.SimulatorName);
            evt.SetProperty("NQubits".WithTelemetryNamespace(), info.NQubits);
            evt.SetProperty("Duration".WithTelemetryNamespace(), info.Duration.ToString("G"));

            return(evt);
        }
Esempio n. 7
0
        public static EventProperties AsTelemetryEvent(this PackageLoadedEventArgs info)
        {
            var evt = new EventProperties()
            {
                Name = "PackageLoad".WithTelemetryNamespace()
            };

            evt.SetProperty("PackageId".WithTelemetryNamespace(),
                            info.PackageId.StartsWith("Microsoft.Quantum.") ? info.PackageId : "other package");
            evt.SetProperty("PackageVersion".WithTelemetryNamespace(), info.PackageVersion);
            evt.SetProperty("Duration".WithTelemetryNamespace(), info.Duration.ToString());

            return(evt);
        }
Esempio n. 8
0
        public static EventProperties AsTelemetryEvent(this ExecutedEventArgs info)
        {
            var evt = new EventProperties()
            {
                Name = "Action".WithTelemetryNamespace()
            };

            evt.SetProperty("Command".WithTelemetryNamespace(), info.Symbol?.Name);
            evt.SetProperty("Kind".WithTelemetryNamespace(), info.Symbol?.Kind.ToString());
            evt.SetProperty("Status".WithTelemetryNamespace(), info.Result.Status.ToString());
            evt.SetProperty("Duration".WithTelemetryNamespace(), info.Duration.ToString());

            return(evt);
        }
Esempio n. 9
0
        public static EventProperties AsTelemetryEvent(this ReloadedEventArgs info)
        {
            var evt = new EventProperties()
            {
                Name = "WorkspaceReload".WithTelemetryNamespace()
            };

            evt.SetProperty("Workspace".WithTelemetryNamespace(), Path.GetFileName(info.Workspace), PiiKind.GenericData);
            evt.SetProperty("Status".WithTelemetryNamespace(), info.Status);
            evt.SetProperty("FileCount".WithTelemetryNamespace(), info.FileCount);
            evt.SetProperty("Errors".WithTelemetryNamespace(), string.Join(",", info.Errors?.OrderBy(e => e) ?? Enumerable.Empty <string>()));
            evt.SetProperty("Duration".WithTelemetryNamespace(), info.Duration.ToString());

            return(evt);
        }
Esempio n. 10
0
        public static EventProperties AsTelemetryEvent(this SnippetCompiledEventArgs info)
        {
            var evt = new EventProperties()
            {
                Name = "Compile".WithTelemetryNamespace()
            };

            evt.SetProperty("Status".WithTelemetryNamespace(), info.Status);
            evt.SetProperty("Errors".WithTelemetryNamespace(), string.Join(",", info.Errors?.OrderBy(e => e) ?? Enumerable.Empty <string>()));
            evt.SetProperty("Namespaces".WithTelemetryNamespace(),
                            string.Join(",", info.Namespaces?.Where(n => n.StartsWith("Microsoft.Quantum.")).OrderBy(n => n) ?? Enumerable.Empty <string>()));
            evt.SetProperty("Duration".WithTelemetryNamespace(), info.Duration.ToString("G"));
            evt.SetCommonProperties();

            return(evt);
        }
Esempio n. 11
0
        public static EventProperties SetCommonProperties(this EventProperties evt)
        {
            evt.SetProperty("KernelInstanceId".WithTelemetryNamespace(), KernelInstanceId);
            evt.SetProperty("ExecutionCount".WithTelemetryNamespace(), TelemetryService.baseEngine?.ExecutionCount?.ToString());
            evt.SetProperty("CurrentTarget".WithTelemetryNamespace(), TelemetryService.client?.ActiveTargetId);
            evt.SetProperty("CurrentSubscription".WithTelemetryNamespace(), (TelemetryService.client as AzureClient.AzureClient)?.ActiveWorkspace?.SubscriptionId, PiiKind.GenericData);
            evt.SetProperty(
                "TimeSinceStart".WithTelemetryNamespace(),
                // The "c" format converts using the "constant" format, which
                // is stable across .NET cultures and versions.
                (
                    DateTime.UtcNow - System.Diagnostics.Process.GetCurrentProcess().StartTime.ToUniversalTime()
                ).ToString("c")
                );

            return(evt);
        }
Esempio n. 12
0
 public static EventProperties WithTimeSinceStart(this EventProperties evt)
 {
     evt.SetProperty(
         "TimeSinceStart".WithTelemetryNamespace(),
         // The "c" format converts using the "constant" format, which
         // is stable across .NET cultures and versions.
         (
             DateTime.UtcNow - System.Diagnostics.Process.GetCurrentProcess().StartTime.ToUniversalTime()
         ).ToString("c")
         );
     return(evt);
 }
        /// <summary>
        /// Log an event to the Aria cloud.
        /// </summary>
        /// <param name="name">The Aria event name.</param>
        /// <param name="dialogID">The dialog ID.</param>
        /// <param name="dialogDescription">the dialog description.</param>
        public static void Log(string name, string dialogID, string dialogDescription)
        {
            if (logger == null)
            {
                return;
            }

            EventProperties props = new EventProperties
            {
                // Note: for some reason Aria Explorer shows "Type" as lower case value of "Name", and ignores the following line:
                Type = EventTypeVoiceAssistantTest,
                Name = name,
            };

            props.SetProperty("DialogID", dialogID);
            props.SetProperty("DialogDescription", dialogDescription);

            EVTStatus status = logger.LogEvent(props);

            if (status != EVTStatus.OK)
            {
                Trace.TraceError($"Aria LogEvent failed with EVTStatus = {status}");
            }
        }
Esempio n. 14
0
        public static EventProperties AsTelemetryEvent(this ProjectLoadedEventArgs info)
        {
            var evt = new EventProperties()
            {
                Name = "ProjectLoad".WithTelemetryNamespace()
            };

            evt.SetProperty("ProjectUri".WithTelemetryNamespace(), info.ProjectUri?.ToString(), PiiKind.Uri);
            evt.SetProperty("SourceFileCount".WithTelemetryNamespace(), info.SourceFileCount);
            evt.SetProperty("ProjectReferenceCount".WithTelemetryNamespace(), info.ProjectReferenceCount);
            evt.SetProperty("PackageReferenceCount".WithTelemetryNamespace(), info.PackageReferenceCount);
            evt.SetProperty("UserAdded".WithTelemetryNamespace(), info.UserAdded);
            evt.SetProperty("Duration".WithTelemetryNamespace(), info.Duration.ToString());

            return(evt);
        }
Esempio n. 15
0
        public static EventProperties AsTelemetryEvent(this ConnectToWorkspaceEventArgs info)
        {
            var evt = new EventProperties()
            {
                Name = "ConnectToWorkspace".WithTelemetryNamespace()
            };

            evt.SetProperty("Status".WithTelemetryNamespace(), info.Status.ToString());
            evt.SetProperty("Error".WithTelemetryNamespace(), info.Error?.ToString());
            evt.SetProperty("Location".WithTelemetryNamespace(), info.Location);
            evt.SetProperty("UseCustomStorage".WithTelemetryNamespace(), info.UseCustomStorage);
            evt.SetProperty("CredentialType".WithTelemetryNamespace(), info.CredentialType.ToString());
            evt.SetProperty("Duration".WithTelemetryNamespace(), info.Duration.ToString("G"));
            evt.SetCommonProperties();

            return(evt);
        }
Esempio n. 16
0
        static void Main(string[] args)
        {
            bool runOffline = false;

            // Windows SDK Test - Prod: Default Ingestion Token.
            // Specify this API token in the SDK initialization call to send data for this application.
            // Please keep this token secure if it is for production services.
            // https://aria.microsoft.com/developer/start-now/using-aria/send-events
            String tenantToken = "6d084bbf6a9644ef83f40a77c9e34580-c2d379e0-4408-4325-9b4d-2a7d78131e14-7322";

            Console.WriteLine("Initializing logger...");

            LogManager.SetTransmitProfile(TransmitProfile.NearRealTime);
            ILogger logger = LogManager.Initialize(tenantToken, new LogConfiguration()
            {
                AutoLogAppResume          = false,
                AutoLogAppSuspend         = false,
                AutoLogUnhandledException = false,
                OfflineStorage            = "offline.storage",
                // CollectorURL = "https://pipe.int.trafficmanager.net/Collector/3.0/",	// INT collector example
                MinTraceLevel              = ACTTraceLevel.ACTTraceLevel_Trace,
                TraceLevelMask             = 0xFFFFFFFF, // API calls + Global mask for general messages
                MaxTeardownUploadTimeInSec = 5
            });

            // ILogger logger = LogManager.Initialize(tenantToken, config);
            // logger = LogManager.Initialize(tenantToken, config);

            // Verify that the customer may override the build version
            var sysinfo = GetOSVersionAndCaption();

            LogManager.SetContext("DeviceInfo.OsVersion", sysinfo["Version"]);
            LogManager.SetContext("DeviceInfo.OsBuild", sysinfo["BuildNumber"]);
            LogManager.SetContext("DeviceInfo.Caption", sysinfo["Caption"]);

            EventProperties props = new EventProperties("props");

            props.SetProperty("key", "value");
            logger.LogSession(SessionState.Session_Started, props);

            if (runOffline)
            {
                LogManager.PauseTransmission();
            }

            // Set the custom context to be sent with every telemetry event.
            logger.SetContext("TeamName", "ARIA");

            DateTime myDate = File.GetLastWriteTime(System.AppDomain.CurrentDomain.FriendlyName);

            logger.SetContext("AppID", "CLI-" + myDate.ToLongTimeString());

            Console.WriteLine("LogEvent...");
            for (int i = 0; i < 999; i++)
            {
                EventProperties props2 = new EventProperties("EventSimpleFromCSharpApp");
                props.SetProperty("EventSeqNum", Convert.ToString(i));
                logger.LogEvent(props2);
            }

            var eventData = new EventProperties("video_shared");

            logger.LogEvent(eventData);

            var eventData2 = new EventProperties("QTQuery");

            eventData2.SetProperty("testSetProperty", "12345");
            eventData2.SetProperty("myKey", "myValue", PiiKind.GenericData);
            eventData2.Properties.Add("SkippedQuery", "1");
            LogManager.GetLogger().LogEvent(eventData2);

            Console.WriteLine("LogPageView...");
            logger.LogPageView("Page-ID-0001", "BusinessNews", "News", "http://fabrik.com/news/business.htm", "",
                               new EventProperties("PageView_Custom")
            {
                Name       = "PageView_Custom",
                Properties = new Dictionary <string, string>()
                {
                    { "CustomProperty", "CustomValue" },
                },
            }
                               );

            Console.WriteLine("Flush...");
            LogManager.FlushAndTeardown();

            Console.WriteLine("[ DONE ]");
        }
Esempio n. 17
0
        static void Main(string[] args)
        {
            bool runOffline = false;

            // Windows SDK Test - Prod: Default Ingestion Token.
            // Specify this API token in the SDK initialization call to send data for this application.
            // Please keep this token secure if it is for production services.
            // https://aria.microsoft.com/developer/start-now/using-aria/send-events
            String tenantToken = "99999999999999999999999999999999-99999999-9999-9999-9999-999999999999-9999";

            Console.WriteLine("Initializing logger...");

            LogManager.SetTransmitProfile(TransmitProfile.NearRealTime);
            ILogger logger = LogManager.Initialize(tenantToken, new LogConfiguration()
            {
                AutoLogAppResume           = false,
                AutoLogAppSuspend          = false,
                AutoLogUnhandledException  = false,
                OfflineStorage             = "offline.storage",
                MinTraceLevel              = ACTTraceLevel.ACTTraceLevel_Trace,
                TraceLevelMask             = 0xFFFFFFFF, // API calls + Global mask for general messages
                MaxTeardownUploadTimeInSec = 5
            });

            // Verify that the customer may override the build version

            LogManager.SetContext("DeviceInfo.OsVersion", "1.0.0");
            EventProperties props = new EventProperties("props");

            props.SetProperty("key", "value");
            logger.LogSession(SessionState.Session_Started, props);

            if (runOffline)
            {
                LogManager.PauseTransmission();
            }

            // Set the custom context to be sent with every telemetry event.
            logger.SetContext("TeamName", "ARIA");

            DateTime myDate = File.GetLastWriteTime(System.AppDomain.CurrentDomain.FriendlyName);

            logger.SetContext("AppID", "CLI-" + myDate.ToLongTimeString());

            Console.WriteLine("LogEvent...");
            for (int i = 0; i < 999; i++)
            {
                EventProperties props2 = new EventProperties("EventSimpleFromCSharpApp");
                props.SetProperty("EventSeqNum", Convert.ToString(i));
                logger.LogEvent(props2);
            }

            var eventData = new EventProperties("video_shared");

            logger.LogEvent(eventData);

            var eventData2 = new EventProperties("QTQuery");

            eventData2.SetProperty("testSetProperty", "12345");
            eventData2.SetProperty("myKey", "myValue", PiiKind.GenericData);
            eventData2.Properties.Add("SkippedQuery", "1");
            eventData2.SetProperty("myIntKey", 3);
            eventData2.SetProperty("myIntKey2", 12, PiiKind.GenericData);
            eventData2.SetProperty("myDoubleKey", 3.14);
            eventData2.SetProperty("myDoubleKey2", 56.23, PiiKind.GenericData);
            eventData2.SetProperty("myBoolKey", false);
            eventData2.SetProperty("myBoolKey2", true, PiiKind.GenericData);
            eventData2.SetProperty("myGuid", Guid.Parse("{81a130d2-502f-4cf1-a376-63edeb000e9f}"));
            eventData2.SetProperty("myGuid2", Guid.Parse("{32a940d2-502f-4cf1-a376-23babb000a6f}"), PiiKind.GenericData);
            DateTime myDateTime = DateTime.UtcNow;

            eventData2.SetProperty("myDate", myDateTime);
            eventData2.SetProperty("myDate2", myDateTime, PiiKind.GenericData);
            LogManager.GetLogger().LogEvent(eventData2);

            Console.WriteLine("LogPageView...");
            logger.LogPageView("Page-ID-0001", "BusinessNews", "News", "http://fabrik.com/news/business.htm", "",
                               new EventProperties("PageView_Custom")
            {
                Name       = "PageView_Custom",
                Properties = new Dictionary <string, string>()
                {
                    { "CustomProperty", "CustomValue" },
                },
            }
                               );

            Console.WriteLine("Flush...");
            LogManager.FlushAndTeardown();

            Console.WriteLine("[ DONE ]");
        }
Esempio n. 18
0
 public void SetPropertyWithStringValue()
 {
     ExecuteWithoutAssertion(() => eventProperties.SetProperty(PropertyName, "value"));
 }
Esempio n. 19
0
        /// <summary>
        /// Initializes the singleton application object.  This is the first line of authored code
        /// executed, and as such is the logical equivalent of main() or WinMain().
        /// </summary>
        public App()
        {
            this.InitializeComponent();

            try
            {
                string json   = File.ReadAllText(@"Assets\transmitProfiles.json");
                bool   result = LogManager.LoadTransmitProfiles(json);
                if (!result)
                {
                    throw new Exception("Unable to load transmit profiles!");
                }
                // LogManager.SetTransmitProfile("HIGH_PRI_ONLY");
                // LogManager.SetTransmitProfile("Offline");
            }
            catch (Exception)
            {
                // Can't do anything about it... Profiles can't be loaded.
                // Sorry :(
                LogManager.SetTransmitProfile(TransmitProfile.RealTime);
            };

            Logger = LogManager.Initialize(token, configuration);

            // This one should not get thru because we disabled it via transmit profiles
            EventProperties propLo = new EventProperties("MyApp.MyLowPriEvent");

            propLo.Priority = EventPriority.Low;
            Logger.LogEvent(propLo);

            // This one gets thru
            EventProperties propHi = new EventProperties("MyApp.MyHighPriEvent");

            propHi.Priority = EventPriority.High;
            Logger.LogEvent(propHi);

            if (useCustomLifecycleCallbacks)
            {
                this.Suspending += OnSuspending;
                this.Resuming   += OnResuming;
            }

            // Set the custom context to be sent with every telemetry event.
            Logger.SetContext("TeamName", "ARIA");
            Logger.SetContext("AppID", "UAPCS");


            var missingProps = new EventProperties("SomeEventWithMissingProps");

            missingProps.SetProperty("MyMissingProp", "12345");
            Logger.LogEvent(missingProps);

            var strongTypesEvent = new EventProperties("SomeEventWithStronTypes");

            strongTypesEvent.SetProperty("myIntKey", 45);
            strongTypesEvent.SetProperty("myIntKey2", 37, PiiKind.GenericData);
            strongTypesEvent.SetProperty("myDoubleKey", 6.75);
            strongTypesEvent.SetProperty("myDoubleKey2", 41.024, PiiKind.GenericData);
            strongTypesEvent.SetProperty("myBoolKey", true);
            strongTypesEvent.SetProperty("myBoolKey2", false, PiiKind.GenericData);
            strongTypesEvent.SetProperty("myGuid", Guid.Parse("{81a130d2-502f-4cf1-a376-63edeb000e9f}"));
            strongTypesEvent.SetProperty("myGuid2", Guid.Parse("{32a940d2-502f-4cf1-a376-23babb000a6f}"), PiiKind.GenericData);
            DateTime myDateTime = DateTime.UtcNow;

            strongTypesEvent.SetProperty("myDate", myDateTime);
            strongTypesEvent.SetProperty("myDate2", myDateTime, PiiKind.GenericData);
            Logger.LogEvent(strongTypesEvent);

            var noMissingProps = new EventProperties("NoMissingProps")
            {
                Properties = new Dictionary <string, string>()
                {
                    { "NotMissingProp", "12345" }
                }
            };

            Logger.LogEvent(noMissingProps);

            EventProperties eventProperties = new EventProperties()
            {
                Name       = "PageAction_CustomerTest",
                Properties = new Dictionary <string, string>()
                {
                    { "My.Property", "Value" },
                }
            };

            EventProperties eventProperties1 = new EventProperties()
            {
                Name       = "LogSessionTest",
                Properties = new Dictionary <string, string>()
                {
                    { "My.Property", "Value" },
                }
            };

            App.Logger.LogSession(SessionState.Session_Started, eventProperties1);
            App.Logger.LogSession(SessionState.Session_Ended, eventProperties1);
        }