#!/usr/bin/python3 import pytest @pytest.mark.parametrize("measurement, query, expected_result", [ ('nginx', 'SELECT mean("requests") AS "mean" FROM "CLMCMetrics"."autogen"."nginx"', 0), ('cpu', 'SELECT mean("usage_idle") AS "mean" FROM "CLMCMetrics"."autogen"."cpu"', 0), ('mongodb', 'SELECT mean("net_in_bytes") AS "mean" FROM "CLMCMetrics"."autogen"."mongodb"', 0) ]) def test_all_inputs(influxdb, measurement, query, expected_result): """Tests measurements are received from an input plugin aggregated across all services """ query_result = influxdb.query('SHOW measurements ON "CLMCMetrics"') points = list(query_result.get_points()) assert any(p['name'] == measurement for p in points), "{0} not in measurement list".format(measurement) query_result = influxdb.query(query) points = list(query_result.get_points()) actual_result = points[0]['mean'] assert actual_result > expected_result, "actual result {0} is not > expected result {1} for query {2}".format(actual_result, str(expected_result), query) @pytest.mark.parametrize("ipendpoint, measurements", [ ('id1', [{'measurement': 'cpu', 'query': 'query', 'result': 'result'} , {'measurement': 'nginx', 'query': 'query', 'result': 'result'}, {'measurement': 'mongo', 'query': 'query', 'result': 'result'}]), ('id2', [{'measurement': 'cpu', 'query': 'query', 'result': 'result'} , {'measurement': 'nginx', 'query': 'query', 'result': 'result'}]) ]) def test_multiple_inputs_on_a_service(influxdb, ipendpoint, measurements): """This test checks that a service configured with multiple input plugins as separate telegraf config files generates measurements in the database """ # for each item in the measurement list run the query and test the result assert 1 @pytest.mark.parametrize("query, expected_result", [ ('filter query', 0), ('filter query', 0), ('filter query', 0) ]) def test_global_tag_filtering(influxdb, query, expected_result): """Tests that the global tags are inserted correctly into the global configuration using the install CLMC script """ # run query # check result assert 1