def test_v1_sampled_lists(simple_metric): simple_metric.max_list_size = 10 t = tags.Tags() for i in range(1, 20): simple_metric.add_network_stats(1, 1, 1, 1) simple_metric.add_network_connection("10.0.0.1", i, "a", i) simple_metric.add_network_connection("10.0.0.1", i, "a", i) simple_metric.add_listening_ports("TCP", [{"port": i}]) simple_metric.add_listening_ports("UDP", [{"port": i}]) report = simple_metric._v1_metrics() metric_block = report[t.metrics] assert len(metric_block[t.tcp_conn][t.established_connections][ t.connections]) == 10 assert metric_block[t.tcp_conn][t.established_connections][t.total] > len( metric_block[t.tcp_conn][t.established_connections]) assert len(metric_block[t.listening_tcp_ports][t.ports]) == 10 assert metric_block[t.listening_tcp_ports][t.total] > len( metric_block[t.listening_tcp_ports][t.ports]) assert len(metric_block[t.listening_udp_ports][t.ports]) == 10 assert metric_block[t.listening_udp_ports][t.total] > len( metric_block[t.listening_udp_ports][t.ports])
def test_v1_metrics_optional_elements(simple_metric): t = tags.Tags(short_names=False) report = simple_metric._v1_metrics() metric_block = report[t.metrics] # top-level element in metrics block assert t.interface_stats not in metric_block assert t.listening_tcp_ports in metric_block assert t.listening_udp_ports in metric_block assert t.tcp_conn in metric_block assert t.listening_udp_ports in report[t.metrics] simple_metric._interface_stats = {} simple_metric.listening_tcp_ports = [] simple_metric.listening_udp_ports = [] simple_metric._net_connections = [] report = simple_metric._v1_metrics() metric_block = report[t.metrics] assert t.interface_stats not in metric_block assert t.listening_tcp_ports not in metric_block assert t.listening_udp_ports not in metric_block assert t.tcp_conn not in metric_block
def test_sampled_lists(simple_metric): t = tags.Tags() m = metrics.Metrics() m.max_list_size = 10 for i in range(1, 20): m.add_network_connection("10.10.10." + str(i), i, "eth0", 99999) m.listening_udp_ports.append(i) m.listening_tcp_ports.append(i) report = m._v1_metrics() metric_block = report[t.metrics] assert len(metric_block[t.listening_tcp_ports][t.ports]) == 10 assert len(metric_block[t.listening_udp_ports][t.ports]) == 10 assert len(metric_block[t.tcp_conn][t.established_connections][ t.connections]) == 10
def test_v1_metrics_basic_structure_short_names(simple_metric_short_names): t = tags.Tags(short_names=True) report = simple_metric_short_names._v1_metrics() # Overall Structure assert t.header in report assert t.metrics in report # header elements header_block = report[t.header] assert t.report_id in header_block assert t.version in header_block metric_block = report[t.metrics] # top-level element in metrics block assert t.interface_stats in metric_block assert t.listening_tcp_ports in metric_block assert t.listening_udp_ports in metric_block assert t.tcp_conn in metric_block
def test_v1_metrics_basic_structure_long_names(simple_metric): t = tags.Tags() report = simple_metric._v1_metrics() # overall structure assert t.header in report assert t.metrics in report assert t.custom_metrics in report # header elements header_block = report[t.header] assert t.report_id in header_block assert t.version in header_block metric_block = report[t.metrics] # top-level element in metrics block assert t.interface_stats not in metric_block assert t.listening_tcp_ports in metric_block assert t.listening_udp_ports in metric_block assert t.tcp_conn in metric_block # custom_metrics elements custom_metrics = report[t.custom_metrics] assert t.cpu_usage in custom_metrics
def __init__(self, short_names=False, last_metric=None): """Initialize a new metrics object. Parameters ---------- short_names : bool Toggle short object tags in output metrics. last_metric : Metrics object Metric object used for delta metric calculation. """ self.t = tags.Tags(short_names) # Header Information self._timestamp = int(time.time()) if last_metric is None: self.interval = 0 else: self.interval = self._timestamp - last_metric._timestamp # Network Metrics self._net_connections = [] self.listening_tcp_ports = [] self.listening_udp_ports = [] # Custom Metrics self.cpu_metrics = [] # Network Stats By Interface self.total_counts = {} # The raw values from the system self._interface_stats = { } # The diff values, if delta metrics are used if last_metric is None: self._old_interface_stats = {} else: self._old_interface_stats = last_metric.total_counts self.max_list_size = 50