public void Should_call_graphite_using_TCP() { var result = new Result("name", new DateTime(2012, 11, 10, 9, 8, 7), "path"); result.SetValue(1); var graphiteClient = new GraphiteTcpClient("metrics.london.ttldev.local", 2003); graphiteClient.Send(result); }
public Graphite(ApplicationConfiguration config) { using (Profiler.Step("Graphite Init")) { _config = config; _client = new GraphiteTcpClient("192.168.10.34", 2003); } }
public void Should_create_native_graphiteudp_client() { var client = new GraphiteTcpClient { Hostname = "hostname", Port = 8125, ClientName = "GraphiteUdpClient" }; var o = clientFactory.Create(client); Assert.That(o, Is.Not.Null); Assert.That(o, Is.TypeOf<GraphiteUdpClient>()); }
static int Main(string[] args) { string dkronUrl = null; string graphiteHost = null; string graphitePrefix = null; int graphitePort = 2003; bool showHelp = false; var options = new OptionSet() .Add("url=", "Dkron URL", d => dkronUrl = d) .Add("host=", "Graphite hostname", h => graphiteHost = h) .Add("port:", "Graphite port, default to 2003", (int p) => graphitePort = p) .Add("prefix=", "Graphite key prefix", k => graphitePrefix = k) .Add("h|?|help", "Display help", v => showHelp = v != null); options.Parse(args); if (showHelp || String.IsNullOrEmpty(dkronUrl) || String.IsNullOrEmpty(graphiteHost) || String.IsNullOrEmpty(graphitePrefix)) { DisplayHelp(options); return(0); } Console.WriteLine("Collecting metrics from dkron..."); var dkron = new RestClient(dkronUrl); var jobsRequest = new RestRequest("v1/jobs", Method.GET); var jobs = dkron.Execute <List <DkronJob> >(jobsRequest).Data; foreach (var job in jobs) { var executionsRequest = new RestRequest($"v1/jobs/{job.Name}/executions", Method.GET); job.LastExecution = dkron.Execute <List <DkronExecution> >(executionsRequest).Data.LastOrDefault(x => x.Success); } Console.WriteLine("Feeding metrics into graphite..."); using (var graphite = new GraphiteTcpClient(graphiteHost, graphitePort, graphitePrefix)) { foreach (var job in jobs) { graphite.Send($"{job.Name}.state", job.CurrentState); graphite.Send($"{job.Name}.success_count", job.SuccessCount); graphite.Send($"{job.Name}.error_count", job.ErrorCount); graphite.Send($"{job.Name}.last_duration", job.LastDuration); } } Console.WriteLine("Done!"); return(0); }
public void Should_run_task_sending_one_result_not_fail_on_exception() { var result = MockRepository.GenerateMock<IResult>(); var resultList = new List<IResult> { result }; var param = new WmiClient(); var client = new GraphiteTcpClient(); this.dataClientFactory.Expect(x => x.Create(param)).Return(this.sqlClient); this.sqlClient.Expect(x => x.Get()).Return(resultList); statsClient.Expect(x => x.Send(resultList)).Throw(new ApplicationException()); this.graphiteClientFactory.Expect(x => x.Create(client)).Return(this.statsClient); IRunTask runTask = new RunableRunTask(param, this.dataClientFactory, this.graphiteClientFactory, this.log, client); //Test runTask.Process(); //Assert this.sqlClient.VerifyAllExpectations(); this.dataClientFactory.VerifyAllExpectations(); this.graphiteClientFactory.VerifyAllExpectations(); statsClient.VerifyAllExpectations(); }
private void AddTwoClientsToConfig() { var c1 = new GraphiteTcpClient { ClientName = "ClientName" }; this.config.Clients.Add(c1); this.config.Clients.Add(new GraphiteUdpClient()); }
public void Should_validate_job_if_client_exist() { var name = "Name"; var clientName = "SomeClient"; var c = new GraphiteTcpClient { ClientName = clientName }; this.config.Clients.Add(c); this.config.Jobs.Add(new WmiClient { ClientName = clientName, Name = name }); //Test this.config.Validate(); }
public void Should_generate_test_config_file() { try { var log = LogManager.GetLogger("log"); var encryption = new Encryption(); var simpleCs = encryption.Encrypt("some Cs"); log4net.Config.XmlConfigurator.Configure(); var job1 = new WmiClient { ClientName = "GraphiteTcpClient", Name = "GetNumberOfTransactionsASecond", Hostname = simpleCs, Sql = "some sql" }; var job2 = new WmiClient { ClientName = "GraphiteUdpClient", Name = "GetNumberOfDeliveryies", Hostname = simpleCs, Sql = "some sql1" }; var client1 = new GraphiteTcpClient { ClientName = "GraphiteTcpClient", Port = 2003, Hostname = "metrics.london.ttldev.local" }; var client2 = new GraphiteUdpClient { ClientName = "GraphiteUdpClient", Port = 2003, Hostname = "metrics.london.ttldev.local" }; var config = new SqlToGraphiteConfig(new AssemblyResolver(new DirectoryImpl(), log), log); config.Jobs.Add(job1); config.Jobs.Add(job2); var host1 = new Host { Name = "TTL001121" }; var host2 = new Host { Name = "Server1" }; var role1 = new Role { Name = "ProductionTests" }; var role2 = new Role { Name = "default" }; var role3 = new Role { Name = "SqlTests" }; host1.Roles.Add(role1); host1.Roles.Add(role2); host2.Roles.Add(role2); host2.Roles.Add(role3); config.Hosts.Add(host1); config.Hosts.Add(host2); var template = new Template(); var wi = new WorkItems { RoleName = role1.Name, TaskSet = new List<TaskSet>() }; var taskSet = new TaskSet { Frequency = 1000 }; taskSet.Tasks.Add(new Task { JobName = job1.Name }); wi.TaskSet.Add(taskSet); template.WorkItems.Add(wi); var wi1 = new WorkItems { RoleName = role2.Name, TaskSet = new List<TaskSet>() }; var taskSet1 = new TaskSet { Frequency = 2000 }; taskSet1.Tasks.Add(new Task { JobName = job2.Name }); wi1.TaskSet.Add(taskSet1); template.WorkItems.Add(wi1); var wi2 = new WorkItems { RoleName = role3.Name, TaskSet = new List<TaskSet>() }; var taskSet2 = new TaskSet { Frequency = 3000 }; wi2.TaskSet.Add(taskSet2); template.WorkItems.Add(wi2); config.Templates.Add(template); config.Clients = new ListOfUniqueType<Client> { client1, client2 }; //var genericSerializer = new GenericSerializer(Global.GetNameSpace()); //string xml = genericSerializer.Serialize(config); //Console.WriteLine(xml); //var sqlToGraphiteConfig = genericSerializer.Deserialize<SqlToGraphiteConfig>(xml); //foreach (var job in sqlToGraphiteConfig.Jobs) //{ //Console.WriteLine(job.Type); //} } catch (Exception ex) { Console.WriteLine(ex.ToString()); } }
public void Should_run_task_sending_two_results() { var job = new WmiClient(); var client = new GraphiteTcpClient(); var result1 = MockRepository.GenerateMock<IResult>(); var result2 = MockRepository.GenerateMock<IResult>(); var resultList = new List<IResult> { result1, result2 }; this.dataClientFactory.Expect(x => x.Create(job)).Return(this.sqlClient); this.graphiteClientFactory.Expect(x => x.Create(client)).Return(this.statsClient); this.sqlClient.Expect(x => x.Get()).Return(resultList); statsClient.Expect(x => x.Send(resultList)).Repeat.Once(); IRunTask runTask = new RunableRunTask(job, this.dataClientFactory, this.graphiteClientFactory, this.log, client); //Test runTask.Process(); //Assert this.sqlClient.VerifyAllExpectations(); this.dataClientFactory.VerifyAllExpectations(); this.graphiteClientFactory.VerifyAllExpectations(); statsClient.VerifyAllExpectations(); }
public void Should_validate_job_if_client_exist() { var clientName = "cName"; var c = new GraphiteTcpClient(); c.ClientName = clientName; var jobName = "jobName"; var job = new WmiClient(); job.Name = jobName; job.ClientName = clientName; var wi = CreateWorkItems(jobName, this.rolename1, 100); var t = new Template(); t.WorkItems.Add(wi); this.config.Templates.Add(t); this.config.Jobs.Add(job); //var job = new SqlServer { Name = this.rolename1 }; //job.ClientName = clientName; var h = new Host { Name = this.hostname1 }; var r = new Role { Name = this.rolename1 }; h.Roles.Add(r); this.config.Clients.Add(c); this.config.Hosts.Add(h); //config.Jobs.Add(job); //Test this.config.Validate(); }
public void Should_throw_exception_if_unknown_type() { var client = new GraphiteTcpClient { Hostname = "localhost", Port = 8125, ClientName = "unknown" }; var ex = Assert.Throws<UnknownGraphiteClientTypeException>(() => clientFactory.Create(client)); Assert.That(ex.Message, Is.EqualTo("Unknown Graphite Client Type: unknown")); }