コード例 #1
0
 public void Should_throw_exception_if_unknown_type()
 {
     var graphiteParams = new GraphiteParams("hostname", 8125);
     var taskParams = new TaskParams("path", "sql", "cs", "wmi", "name", "unknown");
     var ex = Assert.Throws<UnknownGraphiteClientTypeException>(() => clientFactory.Create(graphiteParams, taskParams));
     Assert.That(ex.Message, Is.EqualTo("Unknown Graphite Client Type: unknown"));
 }
コード例 #2
0
 private Task CreateTask(string hostName, GraphiteClient client, SqlToGraphiteConfigTemplatesWorkItemsTaskSetTask item)
 {
     var graphiteParams = new GraphiteParams(hostName, client.Port);
     var taskParams = new TaskParams(item.path, item.sql, item.connectionstring, item.type, item.name, item.client);
     var task = new Task(taskParams, this.dataClientFactory, this.graphiteClientFactory, graphiteParams, log);
     return task;
 }
コード例 #3
0
 public void Should_get_results()
 {
     var param = new TaskParams("path", "SELECT [dbms_id] FROM [msdb].[dbo].[MSdbms]", ConnectionString, "SqlServer", "name", "statsdudp");
     var log = MockRepository.GenerateMock<ILog>();
     var sqlServerClient = new SqlServerClient(log, param);
     var results = sqlServerClient.Get();
     Assert.That(results.Count, Is.EqualTo(8));
 }
コード例 #4
0
 public void Should_get_multiple_results()
 {
     var param = new TaskParams("path", "SELECT  23 , 'name' FROM    dual CONNECT BY  level <= 8", ConnectionString, "SqlServer", "name", "statsdudp");
     var log = MockRepository.GenerateMock<ILog>();
     var client = new OracleClient(log, param);
     var results = client.Get();
     Assert.That(results.Count, Is.EqualTo(8));
 }
コード例 #5
0
ファイル: Task.cs プロジェクト: matthewskelton/SqlToGraphite
 public Task(TaskParams taskParams, IDataClientFactory dataClientFactory, IGraphiteClientFactory graphiteClientFactory, GraphiteParams graphiteParams, ILog log)
 {
     this.taskParams = taskParams;
     this.dataClientFactory = dataClientFactory;
     this.graphiteClientFactory = graphiteClientFactory;
     this.graphiteParams = graphiteParams;
     this.log = log;
 }
コード例 #6
0
        public void Should_create_oracle_client()
        {
            var taskParams = new TaskParams("path", "sql", "cs", OracleType, "name", "client");
            var o = this.dataClientFactory.Create(taskParams);

            Assert.That(o, Is.Not.Null);
            Assert.That(o, Is.TypeOf(typeof(OracleClient)));
            Assert.That(o, Is.TypeOf<OracleClient>());
        }
コード例 #7
0
        public void Should_create_sql_server_client()
        {
            var taskParams = new TaskParams("path", "sql", "cs", SqlServerType, "name", "client");
            var o = this.dataClientFactory.Create(taskParams);

            Assert.That(o, Is.Not.Null);
            Assert.That(o, Is.TypeOf(typeof(SqlServerClient)));
            Assert.That(o, Is.TypeOf<SqlServerClient>());
        }
コード例 #8
0
        public void Should_create_wmi_client_lowercase()
        {
            var taskParams = new TaskParams("path", "sql", "cs", WmiType, "name", "client");
            var o = this.dataClientFactory.Create(taskParams);

            Assert.That(o, Is.Not.Null);
            Assert.That(o, Is.TypeOf(typeof(WmiClient)));
            Assert.That(o, Is.TypeOf<WmiClient>());
        }
コード例 #9
0
        public void Should_create_statsd_client_uppercase()
        {
            var graphiteParams = new GraphiteParams("localhost", 8125);
            var taskParams = new TaskParams("path", "sql", "cs", "wmi", "name", "STATSduDp");
            var o = clientFactory.Create(graphiteParams, taskParams);

            Assert.That(o, Is.Not.Null);
            Assert.That(o, Is.TypeOf(typeof(StatsdClient)));
            Assert.That(o, Is.TypeOf<StatsdClient>());
        }
コード例 #10
0
        public void Should_create_native_graphitetcp_client()
        {
            var taskParams = new TaskParams("path", "sql", "cs", "wmi", "name", "graphitetcp");
            var graphiteParams = new GraphiteParams("hostname", 8125);
            var o = clientFactory.Create(graphiteParams, taskParams);

            Assert.That(o, Is.Not.Null);
            Assert.That(o, Is.TypeOf(typeof(GraphiteTcpClient)));
            Assert.That(o, Is.TypeOf<GraphiteTcpClient>());
        }
コード例 #11
0
        public ISqlClient Create(TaskParams taskParams)
        {
            var t = Type.GetType(taskParams.Type);
            if (t == null)
            {
                throw new UnknownDataClientException(taskParams.Type);
            }

            var obj = Activator.CreateInstance(t, new object[] { log, taskParams });
            return (ISqlClient)obj;
        }
コード例 #12
0
 public void Should_get_wmi_data()
 {
     var log = MockRepository.GenerateMock<ILog>();
     var taskParams = new TaskParams("path", "SELECT PercentFreeSpace, Name FROM Win32_PerfFormattedData_PerfDisk_LogicalDisk Where Name <> '_Total'", string.Empty, "wmi", "nme", "statsdudp");
     var wmiClient = new WmiClient(log, taskParams);
     var results = wmiClient.Get();
     Assert.That(results[0].Value, Is.GreaterThan(0));
     Assert.That(results[0].Name == "C" || results[0].Name == "D");
     Assert.That(results[1].Value, Is.GreaterThan(0));
     Assert.That(results[1].Name == "C" || results[1].Name == "D");
 }
コード例 #13
0
 public void Should_get_result()
 {
     var name = Guid.NewGuid().ToString();
     var param = new TaskParams("path", "SELECT COUNT(*) as count FROM [master].[dbo].[spt_monitor]", ConnectionString, "SqlServer", name, "Statsdudp");
     var log = MockRepository.GenerateMock<ILog>();
     var sqlServerClient = new SqlServerClient(log, param);
     //Test
     var results = sqlServerClient.Get();
     //Asset
     Assert.That(results.Count, Is.EqualTo(1));
     Assert.That(results[0].Name, Is.EqualTo(name));
     Assert.That(results.Count, Is.EqualTo(1));
 }
コード例 #14
0
 public void Should_get_result()
 {
     var name = Guid.NewGuid().ToString();
     var sql = string.Format("SELECT level, '{0}',  to_date('2012-FEB-03 00:00:01', 'YYYY-MON-DD HH24:MI:SS') FROM    dual CONNECT BY  level <= 100", name);
     var param = new TaskParams("path", sql, ConnectionString, "Oracle", name, "Statsdudp");
     var log = MockRepository.GenerateMock<ILog>();
     var client = new OracleClient(log, param);
     //Test
     var results = client.Get();
     //Asset
     Assert.That(results.Count, Is.EqualTo(100));
     Assert.That(results[0].Name, Is.EqualTo(name));
     Assert.That(results[0].TimeStamp, Is.EqualTo(new DateTime(2012, 02, 03, 00, 00, 01)));
 }
コード例 #15
0
 public void Should_get_result_with_date_and_name_set_in_select()
 {
     var name = Guid.NewGuid().ToString();
     var sql = string.Format("SELECT  '{0}',  to_date('2012-FEB-03 00:00:01', 'YYYY-MON-DD HH24:MI:SS') , 234 FROM    dual CONNECT BY  level <= 1", name);
     var param = new TaskParams("path", sql, ConnectionString, "Oracle", name, "Statsdudp");
     var log = MockRepository.GenerateMock<ILog>();
     var client = new OracleClient(log, param);
     //Test
     var results = client.Get();
     //Asset
     Assert.That(results.Count, Is.EqualTo(1));
     Assert.That(results[0].Name, Is.EqualTo(name));
     Assert.That(results[0].Path, Is.EqualTo("path"));
     Assert.That(results[0].Value, Is.EqualTo(234));
 }
コード例 #16
0
 public void Should_get_result_with_date_and_name_set_in_select()
 {
     var name = Guid.NewGuid().ToString();
     var param = new TaskParams("path", "SELECT 234 , DATEADD(day,11,GETDATE()), 'someName'", ConnectionString, "SqlServer", name, "statsdudp");
     var log = MockRepository.GenerateMock<ILog>();
     var sqlServerClient = new SqlServerClient(log, param);
     //Test
     var results = sqlServerClient.Get();
     //Asset
     var futureDate = DateTime.Now.Add(new TimeSpan(11, 0, 0, 0));
     Assert.That(results.Count, Is.EqualTo(1));
     Assert.That(results[0].Name, Is.EqualTo("someName"));
     Assert.That(results[0].Path, Is.EqualTo("path"));
     Assert.That(results[0].Value, Is.EqualTo(234));
 }
コード例 #17
0
 public void Should_try_controller()
 {
     var log = LogManager.GetLogger("log");
     log4net.Config.XmlConfigurator.Configure();
     //var host = "metrics.london.ttldev.local";
     //var port = 2003;
     //var connectionString = "Data Source=nuget.london.ttldev.local;Initial Catalog=GoReportingSvn3;User Id=sa;Password=!bcde1234;";
     //var sqlGetter = new SqlGetter(connectionString, host, port, log);
     //var sql = "SELECT [Assigned],DateDiff(s,[Scheduled],[Assigned]) FROM [GoReportingSvn3].[dbo].[V_BuildStateTransition] where Scheduled > '2012-01-01'";
     //sqlGetter.Process("owain.test.Tlsvn3.Assigned", sql);
     var ds = "Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=10.244.127.11)(PORT=1532)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=tracslg2)));User Id=temp_ttl_user;Password=tt1r34dj0b;";
     var taskParam = new TaskParams("ThePath", "SELECT concat(dm_code,concat('_',current_ds_code)) AS dm, COUNT(DISTINCT (d.ID)) AS dm_count FROM DELIVERIES D WHERE d.tr_ID >= (SELECT TR_ID FROM TRANSACTION_FIRSTOFDAY WHERE date_of_tr = TRUNC(SYSDATE)) GROUP BY dm_code, current_ds_code", ds, "Oracle", "name", "graphiteudp");
     var tasks = new List<ITask> { new Task(taskParam, new DataClientFactory(log), new GraphiteClientFactory(log), new GraphiteParams("hostname", 1234), log) };
     var set = new TaskSet(tasks, new Stop(), 1000);
     var sleep = new Sleeper();
     var stop = new Stop();
     var controller = new Controller(set, sleep, stop, log);
     controller.Process();
 }
コード例 #18
0
 public void Should_run_task_sending_one_result()
 {
     var result = MockRepository.GenerateMock<IResult>();
     var resultList = new List<IResult> { result };
     var param = new TaskParams("path", "sql", "cs", "SqlServer", "name", "client");
     this.dataClientFactory.Expect(x => x.Create(param)).Return(this.sqlClient);
     this.sqlClient.Expect(x => x.Get()).Return(resultList);
     statsClient.Expect(x => x.Send(result));
     var graphiteParams = new GraphiteParams("host", 1234);
     this.graphiteClientFactory.Expect(x => x.Create(graphiteParams, param)).Return(this.statsClient);
     ITask task = new Task(param, this.dataClientFactory, this.graphiteClientFactory, graphiteParams, log);
     //Test
     task.Process();
     //Assert
     this.sqlClient.VerifyAllExpectations();
     this.dataClientFactory.VerifyAllExpectations();
     this.graphiteClientFactory.VerifyAllExpectations();
     statsClient.VerifyAllExpectations();
 }
コード例 #19
0
        public void Should_get_result_with_date()
        {
            var name = Guid.NewGuid().ToString();
            var param = new TaskParams(
                "path", "SELECT 234 , DATEADD(day,11,GETDATE())", ConnectionString, "SqlServer", name, "statsdudp");

            var log = MockRepository.GenerateMock<ILog>();
            var sqlServerClient = new SqlServerClient(log, param);
            //Test
            var results = sqlServerClient.Get();
            //Asset
            var futureDate = DateTime.Now.Add(new TimeSpan(11, 0, 0, 0));
            Assert.That(results.Count, Is.EqualTo(1));
            Assert.That(results[0].Name, Is.EqualTo(name));
            Assert.That(results[0].Value, Is.EqualTo(234));
            Assert.That(results[0].TimeStamp.Day, Is.EqualTo(futureDate.Day));
            Assert.That(results[0].TimeStamp.Hour, Is.EqualTo(futureDate.Hour));
            Assert.That(results[0].TimeStamp.Minute, Is.EqualTo(futureDate.Minute));
            Assert.That(results[0].TimeStamp.Year, Is.EqualTo(futureDate.Year));
        }
コード例 #20
0
        public IStatsClient Create(GraphiteParams graphiteParams, TaskParams taskParams)
        {
            var clientType = taskParams.Client.ToLower();
            log.Debug(string.Format("Creating a graphite client of type: {0} with values {1} {2}", taskParams.Client, graphiteParams.Hostname, graphiteParams.Port));
            if (clientType == "graphitetcp")
            {
                return new GraphiteTcpClient(graphiteParams.Hostname, graphiteParams.Port);
            }

            if (clientType == "graphiteudp")
            {
                return new GraphiteUdpClient(graphiteParams.Hostname, graphiteParams.Port);
            }

            if (clientType == "statsdudp")
            {
                return new StatsdClient(graphiteParams.Hostname, graphiteParams.Port);
            }

            throw new UnknownGraphiteClientTypeException(string.Format("{0} {1}", ErrorMessage, clientType));
        }
コード例 #21
0
 public void Should_throw_UnknownDataClientException()
 {
     var taskParams = new TaskParams("path", "sql", "cs", "unknown", "name", "client");
     var ex = Assert.Throws<UnknownDataClientException>(() => this.dataClientFactory.Create(taskParams));
     Assert.That(ex.Message, Is.EqualTo(string.Format("{0}", "unknown")));
 }