public async Task <MonitoringDataPoint> Get()
        {
            var rng = new Random();

            MonitoringDataPoint data = new MonitoringDataPoint();

            data.cpuPercentage = Convert.ToInt32(await GetCpuUsageForProcess());
            data.workingSet    = Environment.WorkingSet;

            return(data);
        }
Ejemplo n.º 2
0
        private void WritePingData(DateTimeOffset timestamp, Stream stream)
        {
            var dataPoint = new MonitoringDataPoint
            {
                Version = this.version,
                //InstrumentationKey = instrumentationKey, // ikey is currently set in query string parameter
                Instance  = this.instanceName,
                Timestamp = timestamp.UtcDateTime
            };

            this.serializerDataPoint.WriteObject(stream, dataPoint);
        }
Ejemplo n.º 3
0
        private void WriteSamples(IEnumerable <QuickPulseDataSample> samples, string instrumentationKey, Stream stream, CollectionConfigurationError[] errors)
        {
            var monitoringPoints = new List <MonitoringDataPoint>();

            foreach (var sample in samples)
            {
                var metricPoints = new List <MetricPoint>();

                metricPoints.AddRange(CreateDefaultMetrics(sample));

                metricPoints.AddRange(
                    sample.PerfCountersLookup.Select(counter => new MetricPoint {
                    Name = counter.Key, Value = Round(counter.Value), Weight = 1,
                }));

                metricPoints.AddRange(CreateCalculatedMetrics(sample));

                ITelemetryDocument[] documents = sample.TelemetryDocuments.ToArray();
                Array.Reverse(documents);

                ProcessCpuData[] topCpuProcesses =
                    sample.TopCpuData.Select(p => new ProcessCpuData()
                {
                    ProcessName = p.Item1, CpuPercentage = p.Item2,
                }).ToArray();

                var dataPoint = new MonitoringDataPoint
                {
                    Version                        = this.version,
                    InvariantVersion               = MonitoringDataPoint.CurrentInvariantVersion,
                    InstrumentationKey             = instrumentationKey,
                    Instance                       = this.instanceName,
                    RoleName                       = this.roleName,
                    StreamId                       = this.streamId,
                    MachineName                    = this.machineName,
                    Timestamp                      = sample.EndTimestamp.UtcDateTime,
                    IsWebApp                       = this.isWebApp,
                    PerformanceCollectionSupported = true,
                    ProcessorCount                 = this.processorCount,
                    Metrics                        = metricPoints.ToArray(),
                    Documents                      = documents,
                    GlobalDocumentQuotaReached     = sample.GlobalDocumentQuotaReached,
                    TopCpuProcesses                = topCpuProcesses.Length > 0 ? topCpuProcesses : null,
                    TopCpuDataAccessDenied         = sample.TopCpuDataAccessDenied,
                    CollectionConfigurationErrors  = errors,
                };

                monitoringPoints.Add(dataPoint);
            }

            this.serializerDataPointArray.WriteObject(stream, monitoringPoints.ToArray());
        }
        private void WritePingData(DateTimeOffset timestamp, Stream stream)
        {
            var dataPoint = new MonitoringDataPoint
            {
                Version          = this.version,
                InvariantVersion = MonitoringDataPoint.CurrentInvariantVersion,
                //InstrumentationKey = instrumentationKey, // ikey is currently set in query string parameter
                Instance       = this.instanceName,
                StreamId       = this.streamId,
                MachineName    = this.machineName,
                Timestamp      = timestamp.UtcDateTime,
                IsWebApp       = this.isWebApp,
                ProcessorCount = this.processorCount
            };

            this.serializerDataPoint.WriteObject(stream, dataPoint);
        }
Ejemplo n.º 5
0
        private void WriteSamples(IEnumerable <QuickPulseDataSample> samples, string instrumentationKey, Stream stream)
        {
            var monitoringPoints = new List <MonitoringDataPoint>();

            foreach (var sample in samples)
            {
                var metricPoints = new List <MetricPoint>
                {
                    new MetricPoint
                    {
                        Name   = @"\ApplicationInsights\Requests/Sec",
                        Value  = Round(sample.AIRequestsPerSecond),
                        Weight = 1
                    },
                    new MetricPoint
                    {
                        Name   = @"\ApplicationInsights\Request Duration",
                        Value  = Round(sample.AIRequestDurationAveInMs),
                        Weight = sample.AIRequests
                    },
                    new MetricPoint
                    {
                        Name   = @"\ApplicationInsights\Requests Failed/Sec",
                        Value  = Round(sample.AIRequestsFailedPerSecond),
                        Weight = 1
                    },
                    new MetricPoint
                    {
                        Name   = @"\ApplicationInsights\Requests Succeeded/Sec",
                        Value  = Round(sample.AIRequestsSucceededPerSecond),
                        Weight = 1
                    },
                    new MetricPoint
                    {
                        Name   = @"\ApplicationInsights\Dependency Calls/Sec",
                        Value  = Round(sample.AIDependencyCallsPerSecond),
                        Weight = 1
                    },
                    new MetricPoint
                    {
                        Name   = @"\ApplicationInsights\Dependency Call Duration",
                        Value  = Round(sample.AIDependencyCallDurationAveInMs),
                        Weight = sample.AIDependencyCalls
                    },
                    new MetricPoint
                    {
                        Name   = @"\ApplicationInsights\Dependency Calls Failed/Sec",
                        Value  = Round(sample.AIDependencyCallsFailedPerSecond),
                        Weight = 1
                    },
                    new MetricPoint
                    {
                        Name   = @"\ApplicationInsights\Dependency Calls Succeeded/Sec",
                        Value  = Round(sample.AIDependencyCallsSucceededPerSecond),
                        Weight = 1
                    },
                    new MetricPoint
                    {
                        Name   = @"\ApplicationInsights\Exceptions/Sec",
                        Value  = Round(sample.AIExceptionsPerSecond),
                        Weight = 1
                    }
                };

                metricPoints.AddRange(sample.PerfCountersLookup.Select(counter => new MetricPoint {
                    Name = counter.Key, Value = Round(counter.Value), Weight = 1
                }));

                var dataPoint = new MonitoringDataPoint
                {
                    Version            = this.version,
                    InstrumentationKey = instrumentationKey,
                    Instance           = this.instanceName,
                    Timestamp          = sample.EndTimestamp.UtcDateTime,
                    Metrics            = metricPoints.ToArray()
                };

                monitoringPoints.Add(dataPoint);
            }

            this.serializerDataPointArray.WriteObject(stream, monitoringPoints.ToArray());
        }
Ejemplo n.º 6
0
        private void WriteSamples(IEnumerable <QuickPulseDataSample> samples, string instrumentationKey, Stream stream)
        {
            var monitoringPoints = new List <MonitoringDataPoint>();

            foreach (var sample in samples)
            {
                var metricPoints = new List <MetricPoint>
                {
                    new MetricPoint
                    {
                        Name   = @"\ApplicationInsights\Requests/Sec",
                        Value  = Round(sample.AIRequestsPerSecond),
                        Weight = 1
                    },
                    new MetricPoint
                    {
                        Name   = @"\ApplicationInsights\Request Duration",
                        Value  = Round(sample.AIRequestDurationAveInMs),
                        Weight = sample.AIRequests
                    },
                    new MetricPoint
                    {
                        Name   = @"\ApplicationInsights\Requests Failed/Sec",
                        Value  = Round(sample.AIRequestsFailedPerSecond),
                        Weight = 1
                    },
                    new MetricPoint
                    {
                        Name   = @"\ApplicationInsights\Requests Succeeded/Sec",
                        Value  = Round(sample.AIRequestsSucceededPerSecond),
                        Weight = 1
                    },
                    new MetricPoint
                    {
                        Name   = @"\ApplicationInsights\Dependency Calls/Sec",
                        Value  = Round(sample.AIDependencyCallsPerSecond),
                        Weight = 1
                    },
                    new MetricPoint
                    {
                        Name   = @"\ApplicationInsights\Dependency Call Duration",
                        Value  = Round(sample.AIDependencyCallDurationAveInMs),
                        Weight = sample.AIDependencyCalls
                    },
                    new MetricPoint
                    {
                        Name   = @"\ApplicationInsights\Dependency Calls Failed/Sec",
                        Value  = Round(sample.AIDependencyCallsFailedPerSecond),
                        Weight = 1
                    },
                    new MetricPoint
                    {
                        Name   = @"\ApplicationInsights\Dependency Calls Succeeded/Sec",
                        Value  = Round(sample.AIDependencyCallsSucceededPerSecond),
                        Weight = 1
                    },
                    new MetricPoint
                    {
                        Name   = @"\ApplicationInsights\Exceptions/Sec",
                        Value  = Round(sample.AIExceptionsPerSecond),
                        Weight = 1
                    }
                };

                metricPoints.AddRange(sample.PerfCountersLookup.Select(counter => new MetricPoint {
                    Name = counter.Key, Value = Round(counter.Value), Weight = 1
                }));

                ITelemetryDocument[] documents = sample.TelemetryDocuments.ToArray();
                Array.Reverse(documents);

                ProcessCpuData[] topCpuProcesses =
                    sample.TopCpuData.Select(p => new ProcessCpuData()
                {
                    ProcessName = p.Item1, CpuPercentage = p.Item2
                }).ToArray();

                var dataPoint = new MonitoringDataPoint
                {
                    Version                = this.version,
                    InvariantVersion       = MonitoringDataPoint.CurrentInvariantVersion,
                    InstrumentationKey     = instrumentationKey,
                    Instance               = this.instanceName,
                    StreamId               = this.streamId,
                    MachineName            = this.machineName,
                    Timestamp              = sample.EndTimestamp.UtcDateTime,
                    IsWebApp               = this.isWebApp,
                    Metrics                = metricPoints.ToArray(),
                    Documents              = documents,
                    TopCpuProcesses        = topCpuProcesses.Length > 0 ? topCpuProcesses : null,
                    TopCpuDataAccessDenied = sample.TopCpuDataAccessDenied
                };

                monitoringPoints.Add(dataPoint);
            }

            this.serializerDataPointArray.WriteObject(stream, monitoringPoints.ToArray());
        }