def test_cassandra_in_k8s(agent_image, minikube, k8s_observer, k8s_test_timeout, k8s_namespace): yaml = os.path.join(os.path.dirname(os.path.realpath(__file__)), "cassandra-k8s.yaml") monitors = [ { "type": "collectd/cassandra", "discoveryRule": get_discovery_rule(yaml, k8s_observer, namespace=k8s_namespace), "username": "******", "password": "******", } ] run_k8s_monitors_test( agent_image, minikube, monitors, namespace=k8s_namespace, yamls=[yaml], observer=k8s_observer, expected_metrics=get_monitor_metrics_from_selfdescribe(monitors[0]["type"]), expected_dims=get_monitor_dims_from_selfdescribe(monitors[0]["type"]), test_timeout=k8s_test_timeout, )
def test_zookeeper_in_k8s(agent_image, minikube, k8s_observer, k8s_test_timeout, k8s_namespace): yaml = SCRIPT_DIR / "zookeeper-k8s.yaml" monitors = [{ "type": "collectd/zookeeper", "discoveryRule": get_discovery_rule(yaml, k8s_observer, namespace=k8s_namespace) }] run_k8s_monitors_test( agent_image, minikube, monitors, namespace=k8s_namespace, yamls=[yaml], observer=k8s_observer, expected_metrics=get_monitor_metrics_from_selfdescribe( monitors[0]["type"]), expected_dims=get_monitor_dims_from_selfdescribe(monitors[0]["type"]), test_timeout=k8s_test_timeout, )
def test_nginx_in_k8s(agent_image, minikube, k8s_observer, k8s_test_timeout, k8s_namespace): yaml = SCRIPT_DIR / "nginx-k8s.yaml" monitors = [ { "type": "collectd/nginx", "discoveryRule": get_discovery_rule(yaml, k8s_observer, namespace=k8s_namespace), "url": "http://{{.Host}}:{{.Port}}/nginx_status", "username": "******", "password": "******", } ] run_k8s_monitors_test( agent_image, minikube, monitors, namespace=k8s_namespace, yamls=[yaml], observer=k8s_observer, expected_metrics=get_monitor_metrics_from_selfdescribe(monitors[0]["type"]), expected_dims=get_monitor_dims_from_selfdescribe(monitors[0]["type"]), test_timeout=k8s_test_timeout, )
def test_consul_in_k8s(agent_image, minikube, k8s_observer, k8s_test_timeout, k8s_namespace): yaml = SCRIPT_DIR / "consul-k8s.yaml" monitors = [ { "type": "collectd/consul", "discoveryRule": get_discovery_rule(yaml, k8s_observer, namespace=k8s_namespace), "aclToken": "testing123", "signalFxAccessToken": "testing123", "enhancedMetrics": True, } ] run_k8s_monitors_test( agent_image, minikube, monitors, namespace=k8s_namespace, yamls=[yaml], observer=k8s_observer, expected_metrics=get_monitor_metrics_from_selfdescribe(monitors[0]["type"]), expected_dims=get_monitor_dims_from_selfdescribe(monitors[0]["type"]), test_timeout=k8s_test_timeout, )
def test_apache_in_k8s(agent_image, minikube, k8s_observer, k8s_test_timeout, k8s_namespace): yaml = os.path.join(os.path.dirname(os.path.realpath(__file__)), "apache-k8s.yaml") monitors = [ { "type": "collectd/apache", "discoveryRule": get_discovery_rule(yaml, k8s_observer, namespace=k8s_namespace), "url": "http://{{.Host}}:{{.Port}}/mod_status?auto", "username": "******", "password": "******", } ] run_k8s_monitors_test( agent_image, minikube, monitors, namespace=k8s_namespace, yamls=[yaml], observer=k8s_observer, expected_metrics=get_monitor_metrics_from_selfdescribe(monitors[0]["type"]), expected_dims=get_monitor_dims_from_selfdescribe(monitors[0]["type"]), test_timeout=k8s_test_timeout, )
def test_health_checker_in_k8s(agent_image, minikube, k8s_observer, k8s_test_timeout, k8s_namespace): yaml = os.path.join(os.path.dirname(os.path.realpath(__file__)), "health-checker-k8s.yaml") monitors = [ { "type": "collectd/health-checker", "discoveryRule": get_discovery_rule(yaml, k8s_observer, namespace=k8s_namespace), "path": "/health", "jsonKey": "status", "jsonVal": "ok", } ] with open(os.path.join(os.path.dirname(os.path.realpath(__file__)), "metrics.txt"), "r") as fd: expected_metrics = {m.strip() for m in fd.readlines() if len(m.strip()) > 0} run_k8s_monitors_test( agent_image, minikube, monitors, namespace=k8s_namespace, yamls=[yaml], observer=k8s_observer, expected_metrics=expected_metrics, test_timeout=k8s_test_timeout, )
def test_hadoop_in_k8s(agent_image, minikube, k8s_observer, k8s_test_timeout, k8s_namespace): yaml = os.path.join(os.path.dirname(os.path.realpath(__file__)), "hadoop-k8s.yaml") monitors = [{ "type": "collectd/hadoop", "discoveryRule": get_discovery_rule(yaml, k8s_observer, namespace=k8s_namespace) }] run_k8s_monitors_test( agent_image, minikube, monitors, namespace=k8s_namespace, yamls=[yaml], yamls_timeout=600, observer=k8s_observer, expected_metrics=get_monitor_metrics_from_selfdescribe( monitors[0]["type"]), expected_dims=get_monitor_dims_from_selfdescribe(monitors[0]["type"]), test_timeout=k8s_test_timeout, )
def test_kafka_in_k8s(agent_image, minikube, k8s_observer, k8s_test_timeout, k8s_namespace): yaml = SCRIPT_DIR / "kafka-k8s.yaml" monitors = [ { "type": "collectd/kafka", "discoveryRule": get_discovery_rule(yaml, k8s_observer, namespace=k8s_namespace), "serviceURL": "service:jmx:rmi:///jndi/rmi://{{.Host}}:{{.Port}}/jmxrmi", "username": "******", "password": "******", "clusterName": "testcluster", } ] run_k8s_monitors_test( agent_image, minikube, monitors, namespace=k8s_namespace, yamls=[yaml], observer=k8s_observer, expected_metrics=get_monitor_metrics_from_selfdescribe(monitors[0]["type"]), expected_dims=get_monitor_dims_from_selfdescribe(monitors[0]["type"]), test_timeout=k8s_test_timeout, )
def test_postgresql_in_k8s(agent_image, minikube, k8s_observer, k8s_test_timeout, k8s_namespace): yaml = DIR / "postgresql-k8s.yaml" monitors = [ { "type": "collectd/postgresql", "discoveryRule": get_discovery_rule(yaml, k8s_observer, namespace=k8s_namespace), "databases": [{"name": "test", "username": "******", "password": "******"}], "username": "******", "password": "******", } ] run_k8s_monitors_test( agent_image, minikube, monitors, namespace=k8s_namespace, yamls=[yaml], observer=k8s_observer, expected_metrics=get_monitor_metrics_from_selfdescribe(monitors[0]["type"]), expected_dims=get_monitor_dims_from_selfdescribe(monitors[0]["type"]), test_timeout=k8s_test_timeout, passwords=["test_pwd"], )
def test_prometheus_in_k8s(agent_image, minikube, k8s_observer, k8s_test_timeout, k8s_namespace): yaml = os.path.join(os.path.dirname(os.path.realpath(__file__)), "prometheus-k8s.yaml") monitors = [ { "type": "prometheus-exporter", "discoveryRule": get_discovery_rule(yaml, k8s_observer, namespace=k8s_namespace), "useHTTPS": False, "skipVerify": True, "metricPath": "/metrics", } ] with open(os.path.join(os.path.dirname(os.path.realpath(__file__)), "metrics.txt"), "r") as fd: expected_metrics = {m.strip() for m in fd.readlines() if len(m.strip()) > 0} run_k8s_monitors_test( agent_image, minikube, monitors, namespace=k8s_namespace, yamls=[yaml], observer=k8s_observer, expected_metrics=expected_metrics, test_timeout=k8s_test_timeout, )
def test_spark_in_k8s(agent_image, minikube, k8s_observer, k8s_test_timeout, k8s_namespace): yaml = os.path.join(os.path.dirname(os.path.realpath(__file__)), "spark-k8s.yaml") monitors = [ { "type": "collectd/spark", "discoveryRule": get_discovery_rule(yaml, k8s_observer, namespace=k8s_namespace), "clusterType": "Standalone", "isMaster": True, "collectApplicationMetrics": True, "enhancedMetrics": True, } ] run_k8s_monitors_test( agent_image, minikube, monitors, namespace=k8s_namespace, yamls=[yaml], observer=k8s_observer, expected_metrics=get_monitor_metrics_from_selfdescribe(monitors[0]["type"]), expected_dims=get_monitor_dims_from_selfdescribe(monitors[0]["type"]), test_timeout=k8s_test_timeout, )
def test_haproxy_in_k8s(agent_image, minikube, k8s_observer, k8s_test_timeout, k8s_namespace): yaml = SCRIPT_DIR / "haproxy-k8s.yaml" monitors = [{ "type": "collectd/haproxy", "discoveryRule": get_discovery_rule(yaml, k8s_observer, namespace=k8s_namespace), "enhancedMetrics": True, }] run_k8s_monitors_test( agent_image, minikube, monitors, namespace=k8s_namespace, yamls=[yaml], observer=k8s_observer, expected_metrics=get_monitor_metrics_from_selfdescribe( monitors[0]["type"]), expected_dims=get_monitor_dims_from_selfdescribe(monitors[0]["type"]), test_timeout=k8s_test_timeout, )
def test_couchbase_in_k8s(agent_image, minikube, k8s_observer, k8s_test_timeout, k8s_namespace): dockerfile_dir = os.path.join(os.path.dirname(os.path.realpath(__file__)), "../../../test-services/couchbase") build_opts = { "buildargs": { "COUCHBASE_VERSION": "enterprise-5.1.0" }, "tag": "couchbase:test" } minikube.build_image(dockerfile_dir, build_opts) yaml = os.path.join(os.path.dirname(os.path.realpath(__file__)), "couchbase-k8s.yaml") monitors = [{ "type": "collectd/couchbase", "discoveryRule": get_discovery_rule(yaml, k8s_observer, namespace=k8s_namespace), "collectTarget": "NODE", "username": "******", "password": "******", }] run_k8s_monitors_test( agent_image, minikube, monitors, namespace=k8s_namespace, yamls=[yaml], observer=k8s_observer, expected_metrics=get_monitor_metrics_from_selfdescribe( monitors[0]["type"]), expected_dims=get_monitor_dims_from_selfdescribe(monitors[0]["type"]), test_timeout=k8s_test_timeout, )
def test_elasticsearch_in_k8s(agent_image, minikube, k8s_observer, k8s_test_timeout, k8s_namespace): yaml = os.path.join(os.path.dirname(os.path.realpath(__file__)), "elasticsearch-k8s.yaml") build_opts = {"tag": "elasticsearch:k8s-test"} minikube.build_image("elasticsearch/6.4.2", build_opts) monitors = [ { "type": "collectd/elasticsearch", "discoveryRule": get_discovery_rule(yaml, k8s_observer, namespace=k8s_namespace), "detailedMetrics": True, "username": "******", "password": "******", } ] run_k8s_monitors_test( agent_image, minikube, monitors, namespace=k8s_namespace, yamls=[yaml], observer=k8s_observer, expected_metrics=get_monitor_metrics_from_selfdescribe(monitors[0]["type"]), expected_dims=get_monitor_dims_from_selfdescribe(monitors[0]["type"]), test_timeout=k8s_test_timeout, )
def test_rabbitmq_in_k8s(agent_image, minikube, k8s_observer, k8s_test_timeout, k8s_namespace): yaml = os.path.join(os.path.dirname(os.path.realpath(__file__)), "rabbitmq-k8s.yaml") monitors = [{ "type": "collectd/rabbitmq", "discoveryRule": get_discovery_rule(yaml, k8s_observer, namespace=k8s_namespace), "collectChannels": True, "collectConnections": True, "collectExchanges": True, "collectNodes": True, "collectQueues": True, "username": "******", "password": "******", }] run_k8s_monitors_test( agent_image, minikube, monitors, namespace=k8s_namespace, yamls=[yaml], observer=k8s_observer, expected_metrics=get_monitor_metrics_from_selfdescribe( monitors[0]["type"]), expected_dims=get_monitor_dims_from_selfdescribe(monitors[0]["type"]), test_timeout=k8s_test_timeout, )
def test_jenkins_in_k8s(agent_image, minikube, k8s_observer, k8s_test_timeout, k8s_namespace): dockerfile_dir = os.path.join(os.path.dirname(os.path.realpath(__file__)), "../../../test-services/jenkins") build_opts = { "buildargs": { "JENKINS_VERSION": "2.60.3-alpine", "JENKINS_PORT": "8080" }, "tag": "jenkins:test" } minikube.build_image(dockerfile_dir, build_opts) yaml = os.path.join(os.path.dirname(os.path.realpath(__file__)), "jenkins-k8s.yaml") monitors = [{ "type": "collectd/jenkins", "discoveryRule": get_discovery_rule(yaml, k8s_observer, namespace=k8s_namespace), "metricsKey": "33DD8B2F1FD645B814993275703F_EE1FD4D4E204446D5F3200E0F6-C55AC14E", "enhancedMetrics": True, }] run_k8s_monitors_test( agent_image, minikube, monitors, namespace=k8s_namespace, yamls=[yaml], observer=k8s_observer, expected_metrics=get_monitor_metrics_from_selfdescribe( monitors[0]["type"]), expected_dims=get_monitor_dims_from_selfdescribe(monitors[0]["type"]), test_timeout=k8s_test_timeout, )
def test_statsd_in_k8s(agent_image, minikube, k8s_test_timeout, k8s_namespace): # hack to populate data for statsd minikube.container.exec_run( [ "/bin/bash", "-c", 'n=0; while [ $n -le %d ]; do \ echo "statsd.[foo=bar,dim=val]test:1|g" | nc -w 1 -u 127.0.0.1 8125; \ sleep 1; \ (( n += 1 )); \ done' % k8s_test_timeout, ], detach=True, ) monitors = [ { "type": "collectd/statsd", "listenAddress": "127.0.0.1", "listenPort": 8125, "counterSum": True, "deleteSets": True, "deleteCounters": True, "deleteTimers": True, "deleteGauges": True, } ] run_k8s_monitors_test( agent_image, minikube, monitors, namespace=k8s_namespace, expected_metrics={"gauge.statsd.test"}, expected_dims={"foo", "dim"}, test_timeout=k8s_test_timeout, )