public async Task SendMetric() { var client = new GraphiteClient(GraphiteHost); await client.SendAsync("usage.unittest.cpu.count", Environment.ProcessorCount); Console.WriteLine("done"); }
public async Task CanSendToV4OnlyHost() { var client = new GraphiteClient("test-ipv6.com", new PlaintextGraphiteFormatter(80)); await client.SendAsync("usage.unittest.cpu.count", 1); client.Send("usage.unittest.cpu.count", 1); }
public async Task BrokenPooledConnectionIsDetectedForPickle() { var server = new TcpListener(new IPEndPoint(IPAddress.Loopback, 33225)); server.Start(); var client = new GraphiteClient("localhost", new PickleGraphiteFormatter(33225)); var send = client.SendAsync("usage.unittest.cpu.count", Environment.ProcessorCount); //accept and dispose client connection using (var conn = await server.AcceptTcpClientAsync()) using (var stream = conn.GetStream()) using (var reader = new StreamReader(stream)) { var receive = reader.ReadAsync(new char[1], 0, 1); await send; await receive; } client = new GraphiteClient("localhost", new PickleGraphiteFormatter(33225)); var recvTask = ReceiveMetric(server); await client.SendAsync("usage.unittest.cpu.count", Environment.ProcessorCount); new CarbonConnectionPool("localhost", new PickleGraphiteFormatter(33225)).ClearPool(); var metric = await recvTask; server.Stop(); Console.WriteLine(metric); }
public async Task CanQueryLongFormulas() { var client = new GraphiteClient(GraphiteHost) { UseSsl = false }; var metrics = new SeriesListBase[768]; for (int i = 0; i < metrics.Length; i++) { metrics[i] = new GraphitePath("prefix").Dot("path") .Dot(Guid.NewGuid().ToString().Replace("-", String.Empty)) .Dot("category") .Dot(Guid.NewGuid().ToString().Replace("-", String.Empty)) .Dot("value") .Alias(i.ToString()); } var metric = metrics.Sum(); Assert.True(metric.ToString().Length > UInt16.MaxValue, "request too short to fail"); try { await client.GetMetricsDataAsync(metric); } catch (UriFormatException) { throw; } catch { // ignored host may be not reachable } }
public void ClientHasSaneDefaultValues() { var client = new GraphiteClient(); Assert.Equal(2003, client.Formatter.Port); Assert.IsType <PlaintextGraphiteFormatter>(client.Formatter); Assert.Equal("localhost", client.Host); }
public MetricsAirlockEventProcessor(Uri graphiteUri, ILog log) { this.log = log; var graphiteNameBuidler = new GraphiteNameBuilder(); metricConverter = new MetricConverter(graphiteNameBuidler, log); graphiteClient = new GraphiteClient(graphiteUri.Host, graphiteUri.Port, log); }
public async Task CanGetAllMetrics() { var client = new GraphiteClient(GraphiteHost); var metrics = await client.GetAllMetricsAsync(); Assert.NotNull(metrics); Assert.NotEmpty(metrics); Assert.False(String.IsNullOrEmpty(metrics[0])); }
public async Task CanFindMetric() { var client = new GraphiteClient(GraphiteHost); var metrics = await client.FindMetricsAsync("usage.unittest.*"); Assert.NotNull(metrics); Assert.NotEmpty(metrics); Assert.True(metrics.All(x => x.Id.StartsWith("usage.unittest."))); }
public void CanCreateClientWithParams() { var client = new GraphiteClient(GraphiteHost); Assert.Equal(GraphiteHost, client.Host); client = new GraphiteClient(GraphiteHost, new TestGraphiteFormatter(2004)); Assert.Equal(GraphiteHost, client.Host); Assert.Equal(2004, client.Formatter.Port); Assert.IsType <TestGraphiteFormatter>(client.Formatter); }
public GraphiteService(string clientUrl = null) { if (clientUrl == null) { Enabled = false; } else { Client = new GraphiteClient(clientUrl); Enabled = true; } }
public async Task CanExpandMetrics() { var client = new GraphiteClient(GraphiteHost); var path1 = new GraphitePath("usage").Dot("unittest").Dot("iaas").DotWildcard().DotWildcard().DotWildcard(); var path2 = new GraphitePath("usage").Dot("unittest").Dot("license").DotWildcard(); var metrics = await client.ExpandMetricsAsync(path1, path2); Assert.NotNull(metrics); Assert.NotEmpty(metrics); Assert.True(metrics.All(x => x.StartsWith("usage.unittest."))); Assert.Contains(metrics, x => x.StartsWith("usage.unittest.iaas.")); Assert.Contains(metrics, x => x.StartsWith("usage.unittest.license.")); }
public void CanSendManyMetrics() { var random = new Random(); while (random.Next() > 0) { var client = new GraphiteClient(GraphiteHost, new PickleGraphiteFormatter()); client.Send("test.client.random1", random.NextDouble() * 100); client = new GraphiteClient(GraphiteHost, new PlaintextGraphiteFormatter()); client.Send("test.client.random2", random.NextDouble() * 100); Thread.Sleep(500); } CarbonConnectionPool.ClearAllPools(); }
public async Task CanGetMetricValues() { var client = new GraphiteClient(GraphiteHost); var metric = new GraphitePath("usage").Dot("unittest").Dot("iaas").DotWildcard().Dot("cpu").Dot("max"); var data = await client.GetMetricsDataAsync(metric); Assert.NotNull(data); var series = data.FirstOrDefault(); Assert.NotNull(series); Assert.NotNull(series.Datapoints); Assert.NotEmpty(series.Datapoints); Assert.Contains(series.Datapoints, x => x.Value.HasValue); Assert.True(series.Datapoints.All(x => x.Timestamp < DateTime.Now)); }
public async Task CanSendMetric() { var server = new TcpListener(new IPEndPoint(IPAddress.Loopback, 33225)); server.Start(); var client = new GraphiteClient("localhost", new PlaintextGraphiteFormatter(33225)); var recvTask = ReceiveMetric(server); var sendTask = client.SendAsync("usage.unittest.cpu.count", Environment.ProcessorCount); await sendTask; var metric = await recvTask; Assert.Contains("usage.unittest.cpu.count", metric); server.Stop(); Console.WriteLine(metric); }
public async Task CanSendManyMetricsAsync() { var random = new Random(); while (random.Next() > 0) { var client = new GraphiteClient(GraphiteHost, new PickleGraphiteFormatter()); await client.SendAsync("test.client.random1", random.NextDouble() * 100); client = new GraphiteClient(GraphiteHost, new PlaintextGraphiteFormatter()); await client.SendAsync("test.client.random2", random.NextDouble() * 100); await Task.Delay(500); } CarbonConnectionPool.ClearAllPools(); }
public IMetricReporter CreateMetricReporter(string name, ILoggerFactory loggerFactory) { var graphtieClient = new GraphiteClient( loggerFactory, _settings.GraphiteSettings, _settings.HttpPolicy); var payloadBuilder = new GraphitePayloadBuilder(_settings.GraphiteSettings.MetricNameFormatter, _settings.DataKeys); return(new ReportRunner <GraphitePayload>( async p => { var result = await graphtieClient.WriteAsync(p.Payload()); return result.Success; }, payloadBuilder, _settings.ReportInterval, name, loggerFactory)); }
public async Task CanReusePooledConnectionMetric() { var server = new TcpListener(new IPEndPoint(IPAddress.Loopback, 33225)); server.Start(); var client = new GraphiteClient("localhost", new PlaintextGraphiteFormatter(33225)); var recvTask = ReceiveMetric(server); await client.SendAsync("usage.unittest.cpu.count", Environment.ProcessorCount); client = new GraphiteClient("localhost", new PlaintextGraphiteFormatter(33225)); await client.SendAsync("usage.unittest.ram.count", Environment.ProcessorCount); //"kill" all existing tcp connections new CarbonConnectionPool("localhost", new PickleGraphiteFormatter(33225)).ClearPool(); var metric = await recvTask; Assert.Contains("usage.unittest.cpu.count", metric); Assert.Contains("usage.unittest.ram.count", metric); server.Stop(); Console.WriteLine(metric); }
public GraphiteClientWrapper(GraphiteClient client) { _client = client; }
public void CanCreateClient() { var client = new GraphiteClient(); }
public async Task SendPickledMetric() { var client = new GraphiteClient(GraphiteHost, new PickleGraphiteFormatter()); await client.SendAsync("usage.unittest.pickled.cpu.count", Environment.ProcessorCount); }