コード例 #1
0
def test_metrics(aggregator, instance, couchbase_container_ip):
    """
    Test couchbase metrics not including 'couchbase.query.'
    """
    couchbase = Couchbase('couchbase', {}, instances=[instance])
    couchbase.check(instance)
    assert_basic_couchbase_metrics(aggregator, couchbase_container_ip)
コード例 #2
0
def test_metadata(instance_query, datadog_agent):
    check = Couchbase('couchbase', {}, instances=[instance_query])
    check.check_id = 'test:123'
    check.check(None)

    data = check.get_data()

    nodes = data['stats']['nodes']

    raw_version = ""

    # Next, get all the nodes
    if nodes is not None:
        for node in nodes:
            raw_version = node['version']

    major, minor, patch = raw_version.split("-")[0].split(".")

    version_metadata = {
        'version.scheme': 'semver',
        'version.major': major,
        'version.minor': minor,
        'version.patch': patch,
        'version.release': mock.ANY,
        'version.build': 'enterprise',
        'version.raw': raw_version.replace('-enterprise', '+enterprise'),
    }

    datadog_agent.assert_metadata('test:123', version_metadata)
コード例 #3
0
def test_service_check(aggregator, couchbase_service, couchbase_config):
    """
    Assert the OK service check
    """
    couchbase = Couchbase('couchbase', {}, {})
    couchbase.check(couchbase_config)

    aggregator.assert_service_check(Couchbase.SERVICE_CHECK_NAME, tags=CHECK_TAGS, status=Couchbase.OK, count=1)
コード例 #4
0
def test_metrics(aggregator, couchbase_container_ip):
    """
    Test couchbase metrics not including 'couchbase.query.'
    """

    couchbase = Couchbase('couchbase', {}, {})
    couchbase.check(CONFIG['instances'][0])

    assert_basic_couchbase_metrics(aggregator, couchbase_container_ip)
コード例 #5
0
def test_query_monitoring_metrics(aggregator, instance_query, couchbase_container_ip):
    """
    Test system vitals metrics (prefixed "couchbase.query.")
    """
    couchbase = Couchbase('couchbase', {}, instances=[instance_query])
    couchbase.check(None)

    for mname in QUERY_STATS:
        aggregator.assert_metric('couchbase.query.{}'.format(mname), tags=CHECK_TAGS, count=1)
コード例 #6
0
def test_metrics(aggregator, couchbase_container_ip, couchbase_config):
    """
    Test couchbase metrics not including 'couchbase.query.'
    """

    couchbase = Couchbase('couchbase', {}, {})
    couchbase.check(couchbase_config)

    assert_basic_couchbase_metrics(aggregator, couchbase_container_ip)
コード例 #7
0
def test_query_monitoring_metrics(aggregator, couchbase_container_ip):
    """
    Test system vitals metrics (prefixed "couchbase.query.")
    """

    # Add query monitoring endpoint
    couchbase = Couchbase('couchbase', {}, {})
    couchbase.check(CONFIG_QUERY['instances'][0])

    assert_basic_couchbase_metrics(aggregator, couchbase_container_ip)

    # Assert 'couchbase.query.' metrics
    for mname in Couchbase.QUERY_STATS:
        aggregator.assert_metric('couchbase.query.{}'.format(mname), tags=CHECK_TAGS, count=1)
コード例 #8
0
def test_sync_gateway_metrics(aggregator, instance_sg, couchbase_container_ip):
    """
    Test Sync Gateway metrics (prefixed "couchbase.sync_gateway.")
    """
    couchbase = Couchbase('couchbase', {}, instances=[instance_sg])
    couchbase.check(None)
    db_tags = ['db:sync_gateway'] + CHECK_TAGS
    for mname in SYNC_GATEWAY_METRICS:
        if mname.count('.') > 2:
            # metrics tagged by database have an additional namespace
            aggregator.assert_metric(mname, tags=db_tags, count=1)
        else:
            aggregator.assert_metric(mname, tags=CHECK_TAGS, count=1)
    aggregator.assert_service_check(SG_SERVICE_CHECK_NAME, status=Couchbase.OK, tags=CHECK_TAGS)
コード例 #9
0
def test_service_check(aggregator, couchbase_container_ip):
    """
    Assert the OK service check
    """
    couchbase = Couchbase('couchbase', {}, {})
    couchbase.check(CONFIG['instances'][0])

    NODE_HOST = '{}:{}'.format(couchbase_container_ip, PORT)
    NODE_TAGS = ['node:{}'.format(NODE_HOST)]

    aggregator.assert_service_check(Couchbase.SERVICE_CHECK_NAME, tags=CHECK_TAGS, status=Couchbase.OK, count=1)
    aggregator.assert_service_check(Couchbase.NODE_CLUSTER_SERVICE_CHECK_NAME, tags=CHECK_TAGS + NODE_TAGS,
                                    status=Couchbase.OK, count=1)
    aggregator.assert_service_check(Couchbase.NODE_HEALTH_SERVICE_CHECK_NAME, tags=CHECK_TAGS + NODE_TAGS,
                                    status=Couchbase.OK, count=1)
コード例 #10
0
def test_metrics(aggregator, instance, couchbase_container_ip):
    """
    Test couchbase metrics not including 'couchbase.query.'
    """
    couchbase = Couchbase('couchbase', {}, instances=[instance])
    couchbase.check(None)

    # Assert each type of metric (buckets, nodes, totals) except query
    _assert_bucket_metrics(aggregator, BUCKET_TAGS + ['device:{}'.format(BUCKET_NAME)])

    # Assert 'couchbase.by_node.' metrics
    node_tags = CHECK_TAGS + [
        'node:{}:{}'.format(couchbase_container_ip, PORT),
        'device:{}:{}'.format(couchbase_container_ip, PORT),
    ]
    _assert_stats(aggregator, node_tags)

    aggregator.assert_all_metrics_covered()
コード例 #11
0
def test_config(test_case, extra_config, expected_http_kwargs):
    instance = deepcopy(DEFAULT_INSTANCE)
    instance.update(extra_config)
    check = Couchbase('couchbase', {}, [instance])

    with mock.patch('datadog_checks.base.utils.http.requests') as r:
        r.get.return_value = mock.MagicMock(status_code=200)

        check.check(instance)

        http_wargs = dict(auth=mock.ANY,
                          cert=mock.ANY,
                          headers=mock.ANY,
                          proxies=mock.ANY,
                          timeout=mock.ANY,
                          verify=mock.ANY)
        http_wargs.update(expected_http_kwargs)
        r.get.assert_called_with('http://localhost:8091/pools/default/tasks',
                                 **http_wargs)