Beispiel #1
0
def test_tags_limit_indirect(mock_post):
    """
    Test for failure when too many tags are used indirectly (when combined with global tags)
    """
    gtags_list = [
        "gtk-%d:gtv-%d" % (i, i)
        for i in range(apptuit_client.MAX_TAGS_LIMIT // 2 + 1)
    ]
    global_tags = ",".join(gtags_list)
    tags = {
        'tagk-%d' % i: 'tagv-%d' % i
        for i in range(apptuit_client.MAX_TAGS_LIMIT // 2 + 1)
    }
    timestamp = int(time.time())
    with patch.dict(os.environ, {APPTUIT_PY_TAGS: global_tags}):
        client = Apptuit(sanitize_mode=None, token="test_token")
        point1 = DataPoint("metric1", {"tagk1": "tagv1"}, timestamp, 3.14)
        point2 = DataPoint("metric1", tags, timestamp, 3.14)
        with assert_raises(ValueError):
            client.send([point1, point2])

    with patch.dict(os.environ, {APPTUIT_PY_TAGS: global_tags}):
        client = Apptuit(sanitize_mode=None, token="test_token")
        series1 = TimeSeries('metric1', {"tagk1": "tagv1"})
        series1.add_point(timestamp, 3.14)
        series2 = TimeSeries('metric1', tags)
        series2.add_point(timestamp, 3.14)
        with assert_raises(ValueError):
            client.send_timeseries([series1, series2])
Beispiel #2
0
def test_invalid_chars_in_tag_keys():
    """
    Test for invalid character in tag keys
    """
    metric_name = "node.load_avg.1m"
    tags = {
        "ho\\st": "localhost",
        "region": "us-east-1",
        "service": "web-server"
    }
    ts = int(time.time())
    client = Apptuit(sanitize_mode=None, token="test")
    with assert_raises(ValueError) as ex:
        dp = DataPoint(metric=metric_name,
                       tags=tags,
                       timestamp=ts,
                       value=random.random())
        client.send([dp])
    with assert_raises(AttributeError) as ex:
        dp = DataPoint(metric=metric_name,
                       tags="error",
                       timestamp=ts,
                       value=random.random())
        client.send([dp])
    dp = DataPoint(metric=metric_name,
                   tags=None,
                   timestamp=ts,
                   value=random.random())
    assert_equals(dp.tags, None)
Beispiel #3
0
def test_tags_not_dict():
    """
    Test to validate that only dict type values are expected for tags
    """
    metric_name = "node.load_avg.1m"
    tags = [
        "host", "localhost", "region", "us-east-1", "service", "web-server"
    ]
    ts = int(time.time())
    client = Apptuit(sanitize_mode=None, token="test")
    with assert_raises(AttributeError) as ex:
        dp = DataPoint(metric=metric_name,
                       tags=tags,
                       timestamp=ts,
                       value=random.random())
        client.send([dp])
Beispiel #4
0
def test_invalid_metric_name():
    """
    Test for invalid character in metric name
    """
    metric_name = "node.load+avg.1m"
    tags = {
        "host": "localhost",
        "region": "us-east-1",
        "service": "web-server"
    }
    ts = int(time.time())
    client = Apptuit(sanitize_mode=None, token="test")
    with assert_raises(ValueError) as ex:
        dp = DataPoint(metric=metric_name,
                       tags=tags,
                       timestamp=ts,
                       value=random.random())
        client.send([dp])
Beispiel #5
0
def test_tags_limit_direct(mock_post):
    """
    Test for failure when too many tags are used for datapoints/series
    """
    tags = {
        'tagk-%d' % i: 'tagv-%d' % i
        for i in range(apptuit_client.MAX_TAGS_LIMIT + 1)
    }
    timestamp = int(time.time())
    client = Apptuit(sanitize_mode=None, token="test_token")
    point1 = DataPoint("metric1", {"tagk1": "tagv1"}, timestamp, 3.14)
    point2 = DataPoint("metric1", tags, timestamp, 3.14)
    with assert_raises(ValueError):
        client.send([point1, point2])
    series1 = TimeSeries('metric1', {"tagk1": "tagv1"})
    series1.add_point(timestamp, 3.14)
    series2 = TimeSeries('metric1', tags)
    series2.add_point(timestamp, 3.14)
    with assert_raises(ValueError):
        client.send_timeseries([series1, series2])