public void GetCounterSamples_ReturnsExpectedSampleCount() { var reader = new PerfmonCounterReader(); using (var cancellationTokenSource = new CancellationTokenSource()) { Assert.Single(reader.GetCounterSamples(new[] { @"\processor(_total)\% processor time" }, TimeSpan.FromSeconds(1), 1, cancellationTokenSource.Token) .SelectMany(set => set.CounterSamples)); } }
public void GetCounterSamples_IsCancellable() { var reader = new PerfmonCounterReader(); using (var cancellationTokenSource = new CancellationTokenSource()) { List<PerformanceCounterSampleSet> sampleSets = new List<PerformanceCounterSampleSet>(); foreach (var sampleSet in reader.GetCounterSamples(TimeSpan.FromSeconds(5), 20, cancellationTokenSource.Token)) { sampleSets.Add(sampleSet); cancellationTokenSource.Cancel(); } Assert.Single(sampleSets); } }
public void GetCounterSamples_IsCancellable() { var reader = new PerfmonCounterReader(); using (var cancellationTokenSource = new CancellationTokenSource()) { List <PerformanceCounterSampleSet> sampleSets = new List <PerformanceCounterSampleSet>(); foreach (var sampleSet in reader.GetCounterSamples(TimeSpan.FromSeconds(5), 20, cancellationTokenSource.Token)) { sampleSets.Add(sampleSet); cancellationTokenSource.Cancel(); } Assert.Single(sampleSets); } }
public Task CreateContinuousTask(CancellationToken cancellationToken) { return(new Task(() => { var reader = new PerfmonCounterReader(); using (var messenger = new UdpMessenger(_metricPublishingConfig.HostName, _metricPublishingConfig.Port)) { foreach (var metricBatch in reader.StreamCounterSamples(_counterPaths, _counterSamplingConfig.SampleInterval, cancellationToken) .SelectMany(set => set.CounterSamples.ToGraphiteString(_metricPublishingConfig.PrefixKey)) .Chunk(10)) { messenger.SendMetrics(metricBatch); } } }, cancellationToken)); }
public Task CreateContinuousTask(CancellationToken cancellationToken) { return(new Task(() => { var reader = new PerfmonCounterReader(); using (var messenger = new MetricClient(_metricPublishingConfig)) { foreach (var metricBatch in reader.StreamCounterSamples(_counterPaths, _counterSamplingConfig.SampleInterval, cancellationToken) .SelectMany(set => set.CounterSamples.ToMetrics(_counterSamplingConfig.AddInstanceNameToMetrics)) .Chunk(10)) { messenger.Send(metricBatch); } } }, cancellationToken)); }
public void GetCounterSamples_ProcessorTime_HasReasonableValues(string counter, PerformanceCounterType counterType, double minValue, double maxValue, string instanceName, ulong timeBase) { var reader = new PerfmonCounterReader(); using (var cancellationTokenSource = new CancellationTokenSource()) { var sample = reader.GetCounterSamples(new[] { counter }, TimeSpan.FromSeconds(1), 1, cancellationTokenSource.Token) .SelectMany(set => set.CounterSamples) .First(); //TODO: this is bad form - replace with an object comparer Assert.Equal(counterType, sample.CounterType); Assert.InRange(sample.CookedValue, minValue, maxValue); Assert.Equal(instanceName, sample.InstanceName); Assert.Equal(timeBase, sample.TimeBase); Assert.True(sample.Path.ToLower().EndsWith(counter.ToLower())); } }
public Task CreateContinuousTask(CancellationToken cancellationToken) { return(new Task(() => { var reader = new PerfmonCounterReader(); using (GraphiteUdpClient client = new GraphiteUdpClient(_counterSamplingConfig.MetricHost, _counterSamplingConfig.MetricHostPort, _counterSamplingConfig.MetricPrefix)) { foreach (var samples in reader.StreamCounterSamples(_counterPaths, _counterSamplingConfig.SampleInterval, cancellationToken)) { foreach (PerformanceCounterSample metric in samples.CounterSamples) { foreach (CounterFilter filter in _counterFilters) { if (!metric.IsFiltered(_counterFilters)) { client.Send(metric.MetricPath, metric.MetricValue, metric.Timestamp); } } } } } }, cancellationToken)); }