TestMetrics.test_all_metrics_have_timestamps()   A
last analyzed

Complexity

Conditions 3

Size

Total Lines 5
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 5
dl 0
loc 5
rs 10
c 0
b 0
f 0
cc 3
nop 1
1
from unittest import TestCase
2
3
from kibana_prometheus_exporter.kibana_collector import Metrics
4
5
6
class TestMetrics(TestCase):
7
    def setUp(self) -> None:
8
        self.metrics_dict = {
9
            "last_updated": "2019-04-02T03:56:41.078Z",
10
            "collection_interval_in_millis": 15000,
11
            "process": {
12
                "memory": {
13
                    "heap": {"total_in_bytes": 175874048, "used_in_bytes": 157139288, "size_limit": 1526909922},
14
                    "resident_set_size_in_bytes": 285655040,
15
                },
16
                "event_loop_delay": 0.08109402656555176,
17
                "pid": 18595,
18
                "uptime_in_millis": 2494490,
19
            },
20
            "os": {
21
                "load": {"1m": 0.16357421875, "5m": 0.13720703125, "15m": 0.13037109375},
22
                "memory": {"total_in_bytes": 8257908736, "free_in_bytes": 193777664, "used_in_bytes": 8064131072},
23
                "uptime_in_millis": 1212738000,
24
                "platform": "linux",
25
                "platformRelease": "linux-4.15.0-1034-aws",
26
                "distro": "Ubuntu Linux",
27
                "distroRelease": "Ubuntu Linux-18.04",
28
                "cgroup": {
29
                    "cpuacct": {"control_group": "/system.slice/kibana.service", "usage_nanos": 24967412414},
30
                    "cpu": {
31
                        "control_group": "/system.slice/kibana.service",
32
                        "cfs_period_micros": 100000,
33
                        "cfs_quota_micros": -1,
34
                        "stat": {
35
                            "number_of_elapsed_periods": 0,
36
                            "number_of_times_throttled": 0,
37
                            "time_throttled_nanos": 0,
38
                        },
39
                    },
40
                },
41
            },
42
            "response_times": {"avg_in_millis": 2.3333333333333335, "max_in_millis": 3},
43
            "requests": {"disconnects": 0, "statusCodes": {}, "total": 3, "status_codes": {"302": 3}},
44
            "concurrent_connections": 0,
45
        }
46
47
    def test_all_metrics_have_timestamps(self):
48
        metrics = Metrics(self.metrics_dict)
49
        for metric in metrics:
50
            for sample in metric.samples:
51
                self.assertIsNotNone(sample.timestamp, sample)
52