Esempio n. 1
0
    def setUp(self):
        self.backend = NodesMetricsBackend(addrs=["127.0.0.1", "128.0.0.1"])
        self.index = ".measure-tsuru-{}*".format(
            datetime.datetime.utcnow().strftime("%Y.%m.%d"))
        self.aggregation = {
            "addrs": {
                "terms": {
                    "field": "addr.keyword",
                    "include": "127.0.0.1|128.0.0.1",
                    "size": 2
                },
                "aggs": {
                    "avg": {
                        "avg": {
                            "field": "value"
                        }
                    }
                }
            }
        }

        self.net_aggregation = {
            "addrs": {
                "terms": {
                    "field": "addr.keyword",
                    "include": "127.0.0.1|128.0.0.1",
                    "size": 2
                },
                "aggs": NET_AGGREGATION["units"]["aggs"]
            }
        }
Esempio n. 2
0
    def setUp(self):
        self.backend = NodesMetricsBackend(addrs=["127.0.0.1", "128.0.0.1"])
        self.index = ".measure-tsuru-{}*".format(datetime.datetime.utcnow().strftime("%Y.%m.%d"))
        self.aggregation = {
            "addrs": {
                "terms": {
                    "field": "addr.raw",
                    "include": "127.0.0.1|128.0.0.1",
                    "size": 2
                },
                "aggs": {"avg": {"avg": {"field": "value"}}}
            }
        }

        self.net_aggregation = {
            "addrs": {
                "terms": {
                    "field": "addr.raw",
                    "include": "127.0.0.1|128.0.0.1",
                    "size": 2
                },
                "aggs": NET_AGGREGATION["units"]["aggs"]
            }
        }
Esempio n. 3
0
class NodesMetricsBackendTest(TestCase):
    def setUp(self):
        self.backend = NodesMetricsBackend(addrs=["127.0.0.1", "128.0.0.1"])
        self.index = ".measure-tsuru-{}*".format(
            datetime.datetime.utcnow().strftime("%Y.%m.%d"))
        self.aggregation = {
            "addrs": {
                "terms": {
                    "field": "addr.keyword",
                    "include": "127.0.0.1|128.0.0.1",
                    "size": 2
                },
                "aggs": {
                    "avg": {
                        "avg": {
                            "field": "value"
                        }
                    }
                }
            }
        }

        self.net_aggregation = {
            "addrs": {
                "terms": {
                    "field": "addr.keyword",
                    "include": "127.0.0.1|128.0.0.1",
                    "size": 2
                },
                "aggs": NET_AGGREGATION["units"]["aggs"]
            }
        }

    @patch("requests.post")
    def test_cpu_max(self, post_mock):
        self.backend.cpu_max()
        url = "{}/{}/{}/_search".format(self.backend.url, self.index,
                                        "host_cpu_busy")
        post_mock.assert_called_with(
            url,
            data=json.dumps(self.backend.query(aggregation=self.aggregation)))

    @patch("requests.post")
    def test_cpu_wait(self, post_mock):
        self.backend.cpu_wait()
        url = "{}/{}/{}/_search".format(self.backend.url, self.index,
                                        "host_cpu_wait")
        post_mock.assert_called_with(
            url,
            data=json.dumps(self.backend.query(aggregation=self.aggregation)))

    @patch("requests.post")
    def test_load(self, post_mock):
        self.backend.load1()
        url = "{}/{}/{}/_search".format(self.backend.url, self.index,
                                        "host_load1")
        post_mock.assert_called_with(
            url,
            data=json.dumps(self.backend.query(aggregation=self.aggregation)))

        self.backend.load5()
        url = "{}/{}/{}/_search".format(self.backend.url, self.index,
                                        "host_load5")
        post_mock.assert_called_with(
            url,
            data=json.dumps(self.backend.query(aggregation=self.aggregation)))

        self.backend.load15()
        url = "{}/{}/{}/_search".format(self.backend.url, self.index,
                                        "host_load15")
        post_mock.assert_called_with(
            url,
            data=json.dumps(self.backend.query(aggregation=self.aggregation)))

    @patch("requests.post")
    def test_mem_max(self, post_mock):
        self.backend.mem_max()
        url = "{}/{}/{}/_search".format(self.backend.url, self.index,
                                        "host_mem_used")
        post_mock.assert_called_with(
            url,
            data=json.dumps(self.backend.query(aggregation=self.aggregation)))

    @patch("requests.post")
    def test_swap(self, post_mock):
        self.backend.swap()
        url = "{}/{}/{}/_search".format(self.backend.url, self.index,
                                        "host_swap_used")
        post_mock.assert_called_with(
            url,
            data=json.dumps(self.backend.query(aggregation=self.aggregation)))

    @patch("requests.post")
    def test_disk(self, post_mock):
        self.backend.disk()
        url = "{}/{}/{}/_search".format(self.backend.url, self.index,
                                        "host_disk_used")
        post_mock.assert_called_with(
            url,
            data=json.dumps(self.backend.query(aggregation=self.aggregation)))

    @patch("requests.post")
    def test_nettx(self, post_mock):
        self.backend.nettx()
        url = "{}/{}/{}/_search".format(self.backend.url, self.index,
                                        "host_nettx")
        post_mock.assert_called_with(
            url,
            data=json.dumps(
                self.backend.query(aggregation=self.net_aggregation)))

    @patch("requests.post")
    def test_netrx(self, post_mock):
        self.backend.netrx()
        url = "{}/{}/{}/_search".format(self.backend.url, self.index,
                                        "host_netrx")
        post_mock.assert_called_with(
            url,
            data=json.dumps(
                self.backend.query(aggregation=self.net_aggregation)))

    def test_process(self):
        data = {
            "hits": {
                "hits": [],
                "total": 899,
                "max_score": 0.0
            },
            "_shards": {
                "successful": 2,
                "failed": 0,
                "total": 2
            },
            "took": 1400,
            "aggregations": {
                "date": {
                    "buckets": [{
                        "addrs": {
                            "buckets": [{
                                "avg": {
                                    "value": 10.1
                                },
                                "key": "127.0.0.1",
                                "doc_count": 15
                            }, {
                                "avg": {
                                    "value": 9.2
                                },
                                "key": "128.0.0.1",
                                "doc_count": 15
                            }],
                            "sum_other_doc_count":
                            0,
                            "doc_count_error_upper_bound":
                            0
                        },
                        "key_as_string": "2015-07-21T19:35:00.000Z",
                        "key": 1437507300000,
                        "doc_count": 15
                    }, {
                        "addrs": {
                            "buckets": [{
                                "avg": {
                                    "value": 10
                                },
                                "key": "127.0.0.1",
                                "doc_count": 15
                            }, {
                                "avg": {
                                    "value": 9.5
                                },
                                "key": "128.0.0.1",
                                "doc_count": 15
                            }],
                            "sum_other_doc_count":
                            0,
                            "doc_count_error_upper_bound":
                            0
                        },
                        "key_as_string": "2015-07-21T19:36:00.000Z",
                        "key": 1437507360000,
                        "doc_count": 15
                    }]
                }
            }
        }
        expected = {
            "data": {
                "127.0.0.1": [[1437507300000, 20.2], [1437507360000, 20]],
                "128.0.0.1": [[1437507300000, 18.4], [1437507360000, 19]],
            },
            "min": 0,
            "max": 1
        }
        d = self.backend.process(data=data, formatter=lambda x: x * 2)
        self.assertDictEqual(d, expected)
Esempio n. 4
0
class NodesMetricsBackendTest(TestCase):
    def setUp(self):
        self.backend = NodesMetricsBackend(addrs=["127.0.0.1", "128.0.0.1"])
        self.index = ".measure-tsuru-{}*".format(datetime.datetime.utcnow().strftime("%Y.%m.%d"))
        self.aggregation = {
            "addrs": {
                "terms": {
                    "field": "addr.raw",
                    "include": "127.0.0.1|128.0.0.1",
                    "size": 2
                },
                "aggs": {"avg": {"avg": {"field": "value"}}}
            }
        }

        self.net_aggregation = {
            "addrs": {
                "terms": {
                    "field": "addr.raw",
                    "include": "127.0.0.1|128.0.0.1",
                    "size": 2
                },
                "aggs": NET_AGGREGATION["units"]["aggs"]
            }
        }

    @patch("requests.post")
    def test_cpu_max(self, post_mock):
        self.backend.cpu_max()
        url = "{}/{}/{}/_search".format(self.backend.url, self.index, "host_cpu_busy")
        post_mock.assert_called_with(url, data=json.dumps(self.backend.query(aggregation=self.aggregation)))

    @patch("requests.post")
    def test_cpu_wait(self, post_mock):
        self.backend.cpu_wait()
        url = "{}/{}/{}/_search".format(self.backend.url, self.index, "host_cpu_wait")
        post_mock.assert_called_with(url, data=json.dumps(self.backend.query(aggregation=self.aggregation)))

    @patch("requests.post")
    def test_load(self, post_mock):
        self.backend.load1()
        url = "{}/{}/{}/_search".format(self.backend.url, self.index, "host_load1")
        post_mock.assert_called_with(url, data=json.dumps(self.backend.query(aggregation=self.aggregation)))

        self.backend.load5()
        url = "{}/{}/{}/_search".format(self.backend.url, self.index, "host_load5")
        post_mock.assert_called_with(url, data=json.dumps(self.backend.query(aggregation=self.aggregation)))

        self.backend.load15()
        url = "{}/{}/{}/_search".format(self.backend.url, self.index, "host_load15")
        post_mock.assert_called_with(url, data=json.dumps(self.backend.query(aggregation=self.aggregation)))

    @patch("requests.post")
    def test_mem_max(self, post_mock):
        self.backend.mem_max()
        url = "{}/{}/{}/_search".format(self.backend.url, self.index, "host_mem_used")
        post_mock.assert_called_with(url, data=json.dumps(self.backend.query(aggregation=self.aggregation)))

    @patch("requests.post")
    def test_swap(self, post_mock):
        self.backend.swap()
        url = "{}/{}/{}/_search".format(self.backend.url, self.index, "host_swap_used")
        post_mock.assert_called_with(url, data=json.dumps(self.backend.query(aggregation=self.aggregation)))

    @patch("requests.post")
    def test_disk(self, post_mock):
        self.backend.disk()
        url = "{}/{}/{}/_search".format(self.backend.url, self.index, "host_disk_used")
        post_mock.assert_called_with(url, data=json.dumps(self.backend.query(aggregation=self.aggregation)))

    @patch("requests.post")
    def test_nettx(self, post_mock):
        self.backend.nettx()
        url = "{}/{}/{}/_search".format(self.backend.url, self.index, "host_nettx")
        post_mock.assert_called_with(url, data=json.dumps(
            self.backend.query(aggregation=self.net_aggregation)))

    @patch("requests.post")
    def test_netrx(self, post_mock):
        self.backend.netrx()
        url = "{}/{}/{}/_search".format(self.backend.url, self.index, "host_netrx")
        post_mock.assert_called_with(url, data=json.dumps(
            self.backend.query(aggregation=self.net_aggregation)))

    def test_process(self):
        data = {
            "hits": {
                "hits": [],
                "total": 899,
                "max_score": 0.0
            },
            "_shards": {
                "successful": 2,
                "failed": 0,
                "total": 2
            },
            "took": 1400,
            "aggregations": {
                "date": {
                    "buckets": [{
                        "addrs": {
                            "buckets": [{
                                "avg": {"value": 10.1},
                                "key": "127.0.0.1",
                                "doc_count": 15
                            }, {
                                "avg": {"value": 9.2},
                                "key": "128.0.0.1",
                                "doc_count": 15
                            }],
                            "sum_other_doc_count": 0,
                            "doc_count_error_upper_bound": 0
                        },
                        "key_as_string": "2015-07-21T19:35:00.000Z",
                        "key": 1437507300000,
                        "doc_count": 15
                    }, {
                        "addrs": {
                            "buckets": [{
                                "avg": {"value": 10},
                                "key": "127.0.0.1",
                                "doc_count": 15
                            }, {
                                "avg": {"value": 9.5},
                                "key": "128.0.0.1",
                                "doc_count": 15
                            }],
                            "sum_other_doc_count": 0,
                            "doc_count_error_upper_bound": 0
                        },
                        "key_as_string": "2015-07-21T19:36:00.000Z",
                        "key": 1437507360000,
                        "doc_count": 15
                    }]
                }
            }
        }
        expected = {
            "data": {
                "127.0.0.1": [[1437507300000, 20.2], [1437507360000, 20]],
                "128.0.0.1": [[1437507300000, 18.4], [1437507360000, 19]],
            },
            "min": 0,
            "max": 1
        }
        d = self.backend.process(data=data, formatter=lambda x: x * 2)
        self.assertDictEqual(d, expected)