示例#1
0
def test_check(aggregator, dd_environment, get_instance):
    """
    Collect ZooKeeper metrics.
    """
    zk_check = ZookeeperCheck(conftest.CHECK_NAME, {}, {})
    zk_check.check(get_instance)
    zk_check.check(get_instance)

    # Test metrics
    for mname in conftest.STAT_METRICS:
        aggregator.assert_metric(mname, tags=["mode:standalone", "mytag"])

    zk_version = os.environ.get("ZK_VERSION") or "3.4.10"
    if zk_version and LooseVersion(zk_version) > LooseVersion("3.4.0"):
        for mname in conftest.MNTR_METRICS:
            aggregator.assert_metric(mname, tags=["mode:standalone", "mytag"])

    # Test service checks
    aggregator.assert_service_check("zookeeper.ruok", status=zk_check.OK)
    aggregator.assert_service_check("zookeeper.mode", status=zk_check.OK)

    expected_mode = get_instance['expected_mode']
    mname = "zookeeper.instances.{}".format(expected_mode)
    aggregator.assert_metric(mname, value=1)
    aggregator.assert_all_metrics_covered()
示例#2
0
def test_wrong_expected_mode(aggregator, dd_environment, get_invalid_mode_instance):
    """
    Raise a 'critical' service check when ZooKeeper is not in the expected mode.
    """
    zk_check = ZookeeperCheck(conftest.CHECK_NAME, {}, {})
    zk_check.check(get_invalid_mode_instance)

    # Test service checks
    aggregator.assert_service_check("zookeeper.mode", status=zk_check.CRITICAL)
示例#3
0
def test_error_state(aggregator, dd_environment, get_conn_failure_config):
    """
    Raise a 'critical' service check when ZooKeeper is in an error state.
    Report status as down.
    """
    zk_check = ZookeeperCheck(conftest.CHECK_NAME, {}, {})
    with pytest.raises(Exception):
        zk_check.check(get_conn_failure_config)

    aggregator.assert_service_check("zookeeper.ruok", status=zk_check.CRITICAL)

    aggregator.assert_metric("zookeeper.instances", tags=["mode:down"], count=1)

    expected_mode = get_conn_failure_config['expected_mode']
    mname = "zookeeper.instances.{}".format(expected_mode)
    aggregator.assert_metric(mname, value=1, count=1)
示例#4
0
def test_metadata(datadog_agent):
    check = ZookeeperCheck(conftest.CHECK_NAME, {}, [conftest.VALID_CONFIG])

    check.check_id = 'test:123'

    check.check(conftest.VALID_CONFIG)

    raw_version = common.ZK_VERSION
    major, minor = raw_version.split('.')[:2]
    version_metadata = {
        'version.scheme': 'semver',
        'version.major': major,
        'version.minor': minor,
        'version.patch': mock.ANY,
        'version.raw': mock.ANY,
    }

    datadog_agent.assert_metadata('test:123', version_metadata)
示例#5
0
def test_check(aggregator, dd_environment, get_instance, caplog):
    """
    Collect ZooKeeper metrics.
    """
    caplog.set_level(logging.DEBUG)
    zk_check = ZookeeperCheck(conftest.CHECK_NAME, {}, {})
    zk_check.check(get_instance)
    zk_check.check(get_instance)

    skipped_metrics = extract_nan_metrics(caplog.text)

    # Test metrics
    common.assert_stat_metrics(aggregator)
    common.assert_mntr_metrics_by_version(aggregator, skipped_metrics)

    common.assert_service_checks_ok(aggregator)

    expected_mode = get_instance['expected_mode']
    mname = "zookeeper.instances.{}".format(expected_mode)
    aggregator.assert_metric(mname, value=1)
    aggregator.assert_all_metrics_covered()