Beispiel #1
0
        static void Main(string[] args)
        {
            //Metric.CompletelyDisableMetrics();

            Metric.Config
            .WithHttpEndpoint("http://*****:*****@"c:\temp\csv")), TimeSpan.FromSeconds(10))
                           .WithConsoleReport(TimeSpan.FromSeconds(30))
                           //.WithCSVReports(@"c:\temp\reports\", TimeSpan.FromSeconds(10))
                           //.WithTextFileReport(@"C:\temp\reports\metrics.txt", TimeSpan.FromSeconds(10))
                           );

            using (var scheduler = new ActionScheduler())
            {
                SampleMetrics.RunSomeRequests();
                scheduler.Start(TimeSpan.FromMilliseconds(500), () => SampleMetrics.RunSomeRequests());

                //Metrics.Samples.FSharp.SampleMetrics.RunSomeRequests();

                HealthChecksSample.RegisterHealthChecks();
                //Metrics.Samples.FSharp.HealthChecksSample.RegisterHealthChecks();

                Console.WriteLine("done setting things up");
                Console.ReadKey();
            }
        }
Beispiel #2
0
        public static string GetMetricsDiffString(int totalSamples, SampleMetrics metrics, int baselineTotalSamples, SampleMetrics baselineMetrics, bool percentageDiff = false)
        {
            double incPercent         = 100.0 * ((double)metrics.InclusiveSamples / totalSamples);
            double incPercentBaseline = 100.0 * ((double)baselineMetrics.InclusiveSamples / baselineTotalSamples);

            double excPercent         = 100.0 * ((double)metrics.ExclusiveSamples / totalSamples);
            double excPercentBaseline = 100.0 * ((double)baselineMetrics.ExclusiveSamples / baselineTotalSamples);

            Func <double, double, double> calculateDiff =
                percentageDiff ? new Func <double, double, double>((value, baseline) => (value - baseline) / baseline)
                               : new Func <double, double, double>((value, baseline) => (value - baseline));

            string diffPercentFormat = percentageDiff ? "+0.00%;-0.00%;0.00%" : "+0.00;-0.00;0.00";

            return(string.Format(
                       metricsDiffFormat,
                       TrimStringIfNeeded(metrics.Identifier, 20),

                       // Inc/Exc percentages and their diffs.
                       string.Format("{0:0.00}", incPercent),
                       calculateDiff(incPercent, incPercentBaseline).ToString(diffPercentFormat),

                       string.Format("{0:0.00}", excPercent),
                       calculateDiff(excPercent, excPercentBaseline).ToString(diffPercentFormat),

                       // Inc/Exc counts and their diffs.
                       metrics.InclusiveSamples,
                       calculateDiff(metrics.InclusiveSamples, baselineMetrics.InclusiveSamples).ToString(),

                       metrics.ExclusiveSamples,
                       calculateDiff(metrics.ExclusiveSamples, baselineMetrics.ExclusiveSamples).ToString()
                       ));
        }
Beispiel #3
0
        static void Main(string[] args)
        {
            const string url = "http://localhost:1235/";

            using (var scheduler = new ActionScheduler())
            {
                using (WebApp.Start <Startup>(url))
                {
                    Console.WriteLine("Owin Running at {0}", url);
                    Console.WriteLine("Press any key to exit");
                    Process.Start($"{url}metrics/");

                    SampleMetrics.RunSomeRequests();

                    scheduler.Start(TimeSpan.FromMilliseconds(500), () =>
                    {
                        SetCounterSample.RunSomeRequests();
                        SetMeterSample.RunSomeRequests();
                        UserValueHistogramSample.RunSomeRequests();
                        UserValueTimerSample.RunSomeRequests();
                        SampleMetrics.RunSomeRequests();
                    });

                    HealthChecksSample.RegisterHealthChecks();

                    Console.ReadKey();
                }
            }
        }
Beispiel #4
0
        static void Main(string[] args)
        {
            JsonConvert.DefaultSettings = () => new JsonSerializerSettings {
                Formatting = Formatting.Indented
            };

            using (ActionScheduler scheduler = new ActionScheduler())
                using (var host = new NancyHost(new Uri("http://localhost:8090")))
                {
                    host.Start();
                    Console.WriteLine("Nancy Running at http://localhost:8090");
                    Console.WriteLine("Press any key to exit");

                    Process.Start("http://localhost:8090/metrics/");

                    SampleMetrics.RunSomeRequests();

                    scheduler.Start(TimeSpan.FromMilliseconds(500), () =>
                    {
                        SetCounterSample.RunSomeRequests();
                        SetMeterSample.RunSomeRequests();
                        UserValueHistogramSample.RunSomeRequests();
                        UserValueTimerSample.RunSomeRequests();
                        SampleMetrics.RunSomeRequests();
                    });

                    HealthChecksSample.RegisterHealthChecks();

                    Console.ReadKey();
                }
        }
Beispiel #5
0
        public static SampleStats Create([NotNull] SampleMetrics benchmarkResults)
        {
            var overallStats = benchmarkResults.OverallStats.Select(kvp => BasicJsonStats.Create(kvp.Key,
                                                                                                 kvp.Value.TruthStats.TrueCount, kvp.Value.TruthStats.FalseCount, kvp.Value.QueryStats.TrueCount,
                                                                                                 kvp.Value.QueryStats.FalseCount)).ToReadOnlyList();

            var detailedStats = benchmarkResults.DetailedStats.Select(kvp => kvp.Value).OrderBy(b => b.Category.Name)
                                .Select(SvTypeJsonStats.Create).ToReadOnlyList();

            return(new SampleStats(benchmarkResults.SamplePair, overallStats, detailedStats));
        }
Beispiel #6
0
        public static string GetMetricsString(int totalSamples, SampleMetrics metrics)
        {
            double incPercent = 100.0 * ((double)metrics.InclusiveSamples / totalSamples);
            double excPercent = 100.0 * ((double)metrics.ExclusiveSamples / totalSamples);

            return(string.Format(
                       metricsFormat,
                       TrimStringIfNeeded(metrics.Identifier, 20),
                       string.Format("{0:0.00}", incPercent),
                       string.Format("{0:0.00}", excPercent),
                       metrics.InclusiveSamples,
                       metrics.ExclusiveSamples));
        }
Beispiel #7
0
        static void Main(string[] args)
        {
            //Metric.CompletelyDisableMetrics();
            Metric.Config
            .WithHttpEndpoint("http://*****:*****@"c:\temp\reports\", TimeSpan.FromSeconds(10))
                           //.WithTextFileReport(@"C:\temp\reports\metrics.txt", TimeSpan.FromSeconds(10))
                           //.WithGraphite(new Uri("net.udp://localhost:2003"), TimeSpan.FromSeconds(1))
                           //.WithInfluxDb("192.168.1.8", 8086, "admin", "admin", "metrics", TimeSpan.FromSeconds(1))
                           .WithElasticSearch(new ElasticSearch.ElasticReportsConfig()
            {
                Host = "192.168.1.8", Port = 9200, Index = "metrics", RollingIndexType = ElasticSearch.RollingIndexType.Daily, ReportingApplication = ApplicationInfo.Default
            }, TimeSpan.FromSeconds(5))
                           );

            using (var scheduler = new ActionScheduler())
            {
                SampleMetrics.RunSomeRequests();

                scheduler.Start(TimeSpan.FromMilliseconds(500), () =>
                {
                    SetCounterSample.RunSomeRequests();
                    SetMeterSample.RunSomeRequests();
                    UserValueHistogramSample.RunSomeRequests();
                    UserValueTimerSample.RunSomeRequests();
                    SampleMetrics.RunSomeRequests();
                });

                Metric.Gauge("Errors", () => 1, Unit.None);
                Metric.Gauge("% Percent/Gauge|test", () => 1, Unit.None);
                Metric.Gauge("& AmpGauge", () => 1, Unit.None);
                Metric.Gauge("()[]{} ParantesisGauge", () => 1, Unit.None);
                Metric.Gauge("Gauge With No Value", () => double.NaN, Unit.None);

                //Metric.Gauge("Gauge Resulting in division by zero", () => 5 / 0.0, Unit.None);

                ////Metrics.Samples.FSharp.SampleMetrics.RunSomeRequests();

                HealthChecksSample.RegisterHealthChecks();
                //Metrics.Samples.FSharp.HealthChecksSample.RegisterHealthChecks();

                Console.WriteLine("done setting things up");
                Console.ReadKey();
            }
        }
Beispiel #8
0
        static void Main(string[] args)
        {
            const string url = "http://localhost:1234/";

            using (var scheduler = new ActionScheduler())
            {
                using (WebApp.Start <Startup>(url))
                {
                    Console.WriteLine("Owin Running at {0}", url);
                    Console.WriteLine("Press any key to exit");
                    Process.Start(string.Format("{0}metrics", url));

                    SampleMetrics.RunSomeRequests();

                    scheduler.Start(TimeSpan.FromMilliseconds(500), () => SampleMetrics.RunSomeRequests());

                    Console.ReadKey();
                }
            }
        }
Beispiel #9
0
        static void Main(string[] args)
        {
            //Metric.CompletelyDisableMetrics();
            Metric.Config
            .WithHttpEndpoint("http://localhost:1234/metrics/", config => config
                              .WithEndpointReport("/test", (d, h, c) => new MetricsEndpointResponse("test", "text/plain")))
            .WithAllCounters()
            .WithInternalMetrics()
            .WithReporting(config => config
                           .WithConsoleReport(TimeSpan.FromSeconds(30)));

            using (var scheduler = new ActionScheduler())
            {
                SampleMetrics.RunSomeRequests();

                scheduler.Start(TimeSpan.FromMilliseconds(500), () =>
                {
                    SetCounterSample.RunSomeRequests();
                    SetMeterSample.RunSomeRequests();
                    UserValueHistogramSample.RunSomeRequests();
                    UserValueTimerSample.RunSomeRequests();
                    SampleMetrics.RunSomeRequests();
                });

                Metric.Gauge("Errors", () => 1, Unit.None);
                Metric.Gauge("% Percent/Gauge|test", () => 1, Unit.None);
                Metric.Gauge("& AmpGauge", () => 1, Unit.None);
                Metric.Gauge("()[]{} ParantesisGauge", () => 1, Unit.None);
                Metric.Gauge("Gauge With No Value", () => double.NaN, Unit.None);

                //Metric.Gauge("Gauge Resulting in division by zero", () => 5 / 0.0, Unit.None);

                ////Metrics.Samples.FSharp.SampleMetrics.RunSomeRequests();

                HealthChecksSample.RegisterHealthChecks();
                //Metrics.Samples.FSharp.HealthChecksSample.RegisterHealthChecks();

                Console.WriteLine("done setting things up");
                Console.ReadKey();
            }
        }
Beispiel #10
0
        static void Main(string[] args)
        {
            //Metric.Config.CompletelyDisableMetrics();

            Metric.Config
            .WithHttpEndpoint("http://*****:*****@"c:\temp\reports\", TimeSpan.FromSeconds(10))
                           .WithTextFileReport(@"C:\temp\reports\metrics.txt", TimeSpan.FromSeconds(10))
                           );

            SampleMetrics.RunSomeRequests();
            //Metrics.Samples.FSharp.SampleMetrics.RunSomeRequests();

            HealthChecksSample.RegisterHealthChecks();
            //Metrics.Samples.FSharp.HealthChecksSample.RegisterHealthChecks();

            Console.WriteLine("done setting things up");
            Console.ReadKey();
        }
Beispiel #11
0
        // Like GetMetricsTable, but takes two lists of metrics and includes diffs.
        public static string GetMetricsDiffTable(
            int totalSamplesA,
            List <SampleMetrics> metricsObjectsA,
            int totalSamplesB,
            List <SampleMetrics> metricsObjectsB,
            SortMetric sortMetric)
        {
            StringBuilder tableStringBuilder = new StringBuilder();

            tableStringBuilder.AppendLine(metricsDiffHeader);

            switch (sortMetric)
            {
            case SortMetric.Exclusive:
                metricsObjectsA.Sort((a, b) => b.ExclusiveSamples.CompareTo(a.ExclusiveSamples));
                break;

            case SortMetric.Inclusive:
                metricsObjectsA.Sort((a, b) => b.InclusiveSamples.CompareTo(a.InclusiveSamples));
                break;
            }

            SampleMetrics emptyMetrics = new SampleMetrics();

            emptyMetrics.InclusiveSamples = 0;
            emptyMetrics.ExclusiveSamples = 0;

            HashSet <string> foundIdentifiers = new HashSet <string>();

            foreach (var currMetrics in metricsObjectsA)
            {
                bool foundInBaseline = false;
                foreach (var currBaselineMetrics in metricsObjectsB)
                {
                    if (currMetrics.Identifier == currBaselineMetrics.Identifier)
                    {
                        foundInBaseline = true;
                        foundIdentifiers.Add(currMetrics.Identifier);

                        tableStringBuilder.AppendLine(GetMetricsDiffString(totalSamplesA, currMetrics, totalSamplesB, currBaselineMetrics));
                        break;
                    }
                }

                if (!foundInBaseline)
                {
                    tableStringBuilder.AppendLine(GetMetricsDiffString(totalSamplesA, currMetrics, 1, emptyMetrics));
                }
            }

            // Also get everything in B that wasn't in A
            foreach (var currBaselineMetrics in metricsObjectsB)
            {
                if (!foundIdentifiers.Contains(currBaselineMetrics.Identifier))
                {
                    tableStringBuilder.AppendLine(GetMetricsDiffString(1, emptyMetrics, totalSamplesB, currBaselineMetrics));
                }
            }

            return(tableStringBuilder.ToString());
        }
Beispiel #12
0
        public static void Main()
        {
            var cpuUsage = new CpuUsage();

            cpuUsage.Start();

            IServiceCollection serviceCollection = new ServiceCollection();

            ConfigureServices(serviceCollection);
            ConfigureMetrics(serviceCollection);

            var process = Process.GetCurrentProcess();

            var provider = serviceCollection.BuildServiceProvider();

            var application = new Application(provider);
            var scheduler   = new DefaultTaskScheduler();

            var simpleMetrics            = new SampleMetrics(application.Metrics);
            var setCounterSample         = new SetCounterSample(application.Metrics);
            var setMeterSample           = new SetMeterSample(application.Metrics);
            var userValueHistogramSample = new UserValueHistogramSample(application.Metrics);
            var userValueTimerSample     = new UserValueTimerSample(application.Metrics);

            //var rnd = new Random();
            //foreach (var index in Enumerable.Range(0, 30))
            //{
            //    using (application.Metrics.Track(AppMetricsRegistry.ApdexScores.AppApdex))
            //    {
            //        if (index % 4 == 0)
            //        {
            //            Thread.Sleep(rnd.Next(2100, 2200));
            //        }
            //        else if (index % 2 == 0)
            //        {
            //            Thread.Sleep(rnd.Next(600, 700));
            //        }
            //        else
            //        {
            //            Thread.Sleep(rnd.Next(0, 300));
            //        }
            //    }
            //}

            var cancellationTokenSource = new CancellationTokenSource();
            var task = scheduler.Interval(
                TimeSpan.FromMilliseconds(300), () =>
            {
                using (application.Metrics.Track(AppMetricsRegistry.ApdexScores.AppApdex))
                {
                    setCounterSample.RunSomeRequests();
                    setMeterSample.RunSomeRequests();
                    userValueHistogramSample.RunSomeRequests();
                    //userValueTimerSample.RunSomeRequests(); //TODO: AH - why's this taking so long?
                    simpleMetrics.RunSomeRequests();
                }

                application.Metrics.Gauge(AppMetricsRegistry.Gauges.Errors, () => 1);
                application.Metrics.Gauge(AppMetricsRegistry.Gauges.PercentGauge, () => 1);
                application.Metrics.Gauge(AppMetricsRegistry.Gauges.ApmGauge, () => 1);
                application.Metrics.Gauge(AppMetricsRegistry.Gauges.ParenthesisGauge, () => 1);
                application.Metrics.Gauge(AppMetricsRegistry.Gauges.GaugeWithNoValue, () => double.NaN);

                application.Metrics.Gauge(AppMetricsRegistry.ProcessMetrics.CpuUsageTotal, () =>
                {
                    cpuUsage.CallCpu();
                    return(cpuUsage.CpuUsageTotal);
                });
                application.Metrics.Gauge(AppMetricsRegistry.ProcessMetrics.ProcessPagedMemorySizeGauge, () => process.PagedMemorySize64);
                application.Metrics.Gauge(AppMetricsRegistry.ProcessMetrics.ProcessPeekPagedMemorySizeGauge, () => process.PeakPagedMemorySize64);
                application.Metrics.Gauge(AppMetricsRegistry.ProcessMetrics.ProcessPeekVirtualMemorySizeGauge,
                                          () => process.PeakVirtualMemorySize64);
                application.Metrics.Gauge(AppMetricsRegistry.ProcessMetrics.ProcessPeekWorkingSetSizeGauge, () => process.WorkingSet64);
                application.Metrics.Gauge(AppMetricsRegistry.ProcessMetrics.ProcessPrivateMemorySizeGauge, () => process.PrivateMemorySize64);
                application.Metrics.Gauge(AppMetricsRegistry.ProcessMetrics.ProcessVirtualMemorySizeGauge, () => process.VirtualMemorySize64);
                application.Metrics.Gauge(AppMetricsRegistry.ProcessMetrics.SystemNonPagedMemoryGauge, () => process.NonpagedSystemMemorySize64);
                application.Metrics.Gauge(AppMetricsRegistry.ProcessMetrics.SystemPagedMemorySizeGauge, () => process.PagedSystemMemorySize64);
            }, cancellationTokenSource.Token);

            application.Reporter.RunReportsAsync(application.Metrics, cancellationTokenSource.Token);

            Console.WriteLine("Setup Complete, waiting for report run...");

            Console.ReadKey();
        }
Beispiel #13
0
        public void TestCommonCnvAssignment_DeNovoVariants()
        {
            var bins = new List <SampleGenomicBin>
            {
                new SampleGenomicBin("chr1", 1, 2, 100),
                new SampleGenomicBin("chr1", 1, 2, 100),
                new SampleGenomicBin("chr1", 1, 2, 100)
            };
            var balleles = new Balleles(new List <Ballele> {
                new Ballele(5501, 30, 30)
            });
            var segmentParent1 = new CanvasSegment("chr1", 1, 2, bins, balleles)
            {
                CopyNumber = 2
            };

            bins = new List <SampleGenomicBin>
            {
                new SampleGenomicBin("chr1", 1, 2, 100),
                new SampleGenomicBin("chr1", 1, 2, 100),
                new SampleGenomicBin("chr1", 1, 2, 100)
            };
            balleles = new Balleles(new List <Ballele> {
                new Ballele(5501, 30, 30)
            });
            var segmentParent2 = new CanvasSegment("chr1", 1, 2, bins, balleles)
            {
                CopyNumber = 2
            };

            bins = new List <SampleGenomicBin>
            {
                new SampleGenomicBin("chr1", 1, 2, 0),
                new SampleGenomicBin("chr1", 1, 2, 0),
                new SampleGenomicBin("chr1", 1, 2, 0)
            };
            balleles = new Balleles(new List <Ballele> {
                new Ballele(5501, 0, 0)
            });
            var segmentProband = new CanvasSegment("chr1", 1, 2, bins, balleles)
            {
                CopyNumber = 0
            };

            var pedigreeSegments = new SampleMap <CanvasSegment>
            {
                { new SampleId("parent1"), segmentParent1 },
                { new SampleId("parent2"), segmentParent2 },
                { new SampleId("proband"), segmentProband }
            };

            var sampleMetricsParent1 = SampleMetrics.GetSampleInfo(new List <CanvasSegment> {
                segmentParent1
            },
                                                                   ploidyBedPath: null,
                                                                   numberOfTrimmedBins: 2, id: new SampleId("parent1"));
            var sampleMetricsParent2 = SampleMetrics.GetSampleInfo(new List <CanvasSegment> {
                segmentParent2
            },
                                                                   ploidyBedPath: null,
                                                                   numberOfTrimmedBins: 2, id: new SampleId("parent2"));
            var sampleMetricsProband = SampleMetrics.GetSampleInfo(new List <CanvasSegment> {
                segmentProband
            },
                                                                   ploidyBedPath: null,
                                                                   numberOfTrimmedBins: 2, id: new SampleId("proband"));

            var sampleMetrics = new SampleMap <SampleMetrics>
            {
                { new SampleId("parent1"), sampleMetricsParent1 },
                { new SampleId("parent2"), sampleMetricsParent2 },
                { new SampleId("proband"), sampleMetricsProband }
            };

            bool isCommonCnv = global::CanvasPedigreeCaller.CanvasPedigreeCaller.IsSharedCnv(pedigreeSegments, sampleMetrics,
                                                                                             new List <SampleId> {
                new SampleId("parent1"), new SampleId("parent2")
            },
                                                                                             new SampleId("proband"), maximumCopyNumber: 5);

            Assert.False(isCommonCnv);

            var pedigreeGenotypes = new SampleMap <Genotype>
            {
                { new SampleId("parent1"), Genotype.Create(new PhasedGenotype(1, 1)) },
                { new SampleId("parent2"), Genotype.Create(new PhasedGenotype(1, 1)) },
                { new SampleId("proband"), Genotype.Create(new PhasedGenotype(0, 1)) }
            };

            isCommonCnv = global::CanvasPedigreeCaller.CanvasPedigreeCaller.IsSharedCnv(pedigreeGenotypes, pedigreeSegments,
                                                                                        sampleMetrics, new List <SampleId> {
                new SampleId("parent1"), new SampleId("parent2")
            },
                                                                                        new SampleId("proband"), maximumCopyNumber: 5);

            Assert.False(isCommonCnv);

            pedigreeGenotypes = new SampleMap <Genotype>
            {
                { new SampleId("parent1"), Genotype.Create(new PhasedGenotype(2, 1)) },
                { new SampleId("parent2"), Genotype.Create(new PhasedGenotype(1, 1)) },
                { new SampleId("proband"), Genotype.Create(new PhasedGenotype(0, 1)) }
            };

            isCommonCnv = global::CanvasPedigreeCaller.CanvasPedigreeCaller.IsSharedCnv(pedigreeGenotypes, pedigreeSegments,
                                                                                        sampleMetrics, new List <SampleId> {
                new SampleId("parent1"), new SampleId("parent2")
            },
                                                                                        new SampleId("proband"), maximumCopyNumber: 5);

            Assert.False(isCommonCnv);
        }
Beispiel #14
0
        public static void Main()
        {
            var cpuUsage = new CpuUsage();

            cpuUsage.Start();

            IServiceCollection serviceCollection = new ServiceCollection();

            ConfigureServices(serviceCollection);
            ConfigureMetrics(serviceCollection);

            var process = Process.GetCurrentProcess();

            var provider = serviceCollection.BuildServiceProvider();

            var application = new Application(provider);
            var scheduler   = new DefaultTaskScheduler();

            var simpleMetrics            = new SampleMetrics(application.Metrics);
            var setCounterSample         = new SetCounterSample(application.Metrics);
            var setMeterSample           = new SetMeterSample(application.Metrics);
            var userValueHistogramSample = new UserValueHistogramSample(application.Metrics);
            var userValueTimerSample     = new UserValueTimerSample(application.Metrics);

            var cancellationTokenSource = new CancellationTokenSource();

            //cancellationTokenSource.CancelAfter(TimeSpan.FromSeconds(10));

            var task = scheduler.Interval(
                TimeSpan.FromMilliseconds(300), TaskCreationOptions.LongRunning, () =>
            {
                using (application.Metrics.Measure.Apdex.Track(AppMetricsRegistry.ApdexScores.AppApdex))
                {
                    setCounterSample.RunSomeRequests();
                    setMeterSample.RunSomeRequests();
                    userValueHistogramSample.RunSomeRequests();
                    userValueTimerSample.RunSomeRequests();
                    simpleMetrics.RunSomeRequests();
                }

                application.Metrics.Measure.Gauge.SetValue(AppMetricsRegistry.Gauges.Errors, () => 1);
                application.Metrics.Measure.Gauge.SetValue(AppMetricsRegistry.Gauges.PercentGauge, () => 1);
                application.Metrics.Measure.Gauge.SetValue(AppMetricsRegistry.Gauges.ApmGauge, () => 1);
                application.Metrics.Measure.Gauge.SetValue(AppMetricsRegistry.Gauges.ParenthesisGauge, () => 1);
                application.Metrics.Measure.Gauge.SetValue(AppMetricsRegistry.Gauges.GaugeWithNoValue, () => double.NaN);

                application.Metrics.Measure.Gauge.SetValue(AppMetricsRegistry.ProcessMetrics.CpuUsageTotal, () =>
                {
                    cpuUsage.CallCpu();
                    return(cpuUsage.CpuUsageTotal);
                });
                application.Metrics.Measure.Gauge.SetValue(AppMetricsRegistry.ProcessMetrics.ProcessPagedMemorySizeGauge, () => process.PagedMemorySize64);
                application.Metrics.Measure.Gauge.SetValue(AppMetricsRegistry.ProcessMetrics.ProcessPeekPagedMemorySizeGauge, () => process.PeakPagedMemorySize64);
                application.Metrics.Measure.Gauge.SetValue(AppMetricsRegistry.ProcessMetrics.ProcessPeekVirtualMemorySizeGauge,
                                                           () => process.PeakVirtualMemorySize64);
                application.Metrics.Measure.Gauge.SetValue(AppMetricsRegistry.ProcessMetrics.ProcessPeekWorkingSetSizeGauge, () => process.WorkingSet64);
                application.Metrics.Measure.Gauge.SetValue(AppMetricsRegistry.ProcessMetrics.ProcessPrivateMemorySizeGauge, () => process.PrivateMemorySize64);
                application.Metrics.Measure.Gauge.SetValue(AppMetricsRegistry.ProcessMetrics.ProcessVirtualMemorySizeGauge, () => process.VirtualMemorySize64);
                application.Metrics.Measure.Gauge.SetValue(AppMetricsRegistry.ProcessMetrics.SystemNonPagedMemoryGauge, () => process.NonpagedSystemMemorySize64);
                application.Metrics.Measure.Gauge.SetValue(AppMetricsRegistry.ProcessMetrics.SystemPagedMemorySizeGauge, () => process.PagedSystemMemorySize64);
            }, cancellationTokenSource.Token);

            application.Reporter.RunReports(application.Metrics, cancellationTokenSource.Token);

            Console.WriteLine("Report Cancelled...");

            Console.ReadKey();
        }