[Explicit] // todo: make this meaningful
        public void Test()
        {
            var manager = new MagicHubPerformanceCounterManager(Mock.Of <ITraceManager>());

            manager.Initialize("Foo", new CancellationToken());

            manager.NumberDispatchedToSignalRTotal.Increment();
        }
예제 #2
0
        private static void Install()
        {
            Uninstall();
            IList <string> counters;

            PrintInfo("Installing Performance Counters...");
            try
            {
                var counterCreationData = MagicHubPerformanceCounterManager.GetCounterPropertyInfo()
                                          .Select(p =>
                {
                    var attribute = MagicHubPerformanceCounterManager.GetPerformanceCounterAttribute(p);
                    return(new CounterCreationData(attribute.Name, attribute.Description, attribute.CounterType));
                })
                                          .ToArray();

                var createDataCollection = new CounterCreationDataCollection(counterCreationData);

                var category = PerformanceCounterCategory.Create(MagicHubPerformanceCounterManager.CategoryName,
                                                                 "MagicHub performance counters",
                                                                 PerformanceCounterCategoryType.MultiInstance,
                                                                 createDataCollection);

                counters = counterCreationData.Select(c => c.CounterName).ToList();
            }
            catch (UnauthorizedAccessException ex)
            {
                // Probably due to not running as admin, let's just stop here
                PrintWarning(String.Format(CultureInfo.CurrentCulture, ex.Message + "\r\nMake sure you are running this as administrator."));
                return;
            }

            foreach (var counter in counters)
            {
                PrintInfo("  " + counter);
            }
        }