Exemplo n.º 1
0
def test_get_counts_for_project_unset(
        store: RedisRealtimeMetricsStore) -> None:
    counts = store.get_counts_for_project(42, 113)

    assert list(counts) == [BucketedCount(timestamp=110, count=0)]

    store._counter_time_window = 20

    counts = store.get_counts_for_project(42, 113)

    assert list(counts) == [
        BucketedCount(timestamp=90, count=0),
        BucketedCount(timestamp=100, count=0),
        BucketedCount(timestamp=110, count=0),
    ]
Exemplo n.º 2
0
def test_get_counts_for_project_no_matching_keys(
        store: RedisRealtimeMetricsStore,
        redis_cluster: redis._RedisCluster) -> None:
    redis_cluster.set("symbolicate_event_low_priority:counter:10:53:111", 0)

    counts = store.get_counts_for_project(42)
    assert list(counts) == []
Exemplo n.º 3
0
def test_get_counts_for_project_missing_project(
        store: RedisRealtimeMetricsStore,
        redis_cluster: redis._RedisCluster) -> None:
    redis_cluster.set("symbolicate_event_low_priority:counter:10:53:111", 0)

    buckets = store.get_counts_for_project(project_id=42, timestamp=113)

    assert buckets.total_count() == 0
Exemplo n.º 4
0
def test_get_counts_for_project_negative_count(
        store: RedisRealtimeMetricsStore,
        redis_cluster: redis._RedisCluster) -> None:
    redis_cluster.set("symbolicate_event_low_priority:counter:10:42:111", -10)

    counts = store.get_counts_for_project(42)
    assert list(counts) == [
        BucketedCount(timestamp=111, count=-10),
    ]
Exemplo n.º 5
0
def test_get_counts_for_project_different_bucket_sizes(
        store: RedisRealtimeMetricsStore,
        redis_cluster: redis._RedisCluster) -> None:
    redis_cluster.set("symbolicate_event_low_priority:counter:10:42:110", 1)
    redis_cluster.set("symbolicate_event_low_priority:counter:5:42:110", 2)

    buckets = store.get_counts_for_project(project_id=42, timestamp=113)

    assert buckets.total_count() == 1
Exemplo n.º 6
0
def test_get_counts_for_project_unset(
        store: RedisRealtimeMetricsStore) -> None:
    buckets = store.get_counts_for_project(project_id=42, timestamp=113)

    # It is impossible to specify the last possible time in the current bucket, so we always
    # still fall back to 13 buckets to cover the time window.
    assert len(buckets.counts) == 13

    assert buckets.total_count() == 0
Exemplo n.º 7
0
def test_get_counts_for_project_different_buckets(
        store: RedisRealtimeMetricsStore,
        redis_cluster: redis._RedisCluster) -> None:
    redis_cluster.set("symbolicate_event_low_priority:counter:10:42:110", 0)
    redis_cluster.set("symbolicate_event_low_priority:counter:5:42:110", 0)

    counts = store.get_counts_for_project(42, 113)

    assert list(counts) == [
        BucketedCount(timestamp=110, count=0),
    ]
Exemplo n.º 8
0
def test_get_counts_for_project_multi_metric(
        store: RedisRealtimeMetricsStore,
        redis_cluster: redis._RedisCluster) -> None:
    redis_cluster.set("symbolicate_event_low_priority:counter:10:42:111", 0)
    redis_cluster.hset("symbolicate_event_low_priority:histogram:10:42:222:0",
                       0, 123)

    counts = store.get_counts_for_project(42)
    assert list(counts) == [
        BucketedCount(timestamp=111, count=0),
    ]
Exemplo n.º 9
0
def test_get_counts_for_project_empty(
        store: RedisRealtimeMetricsStore,
        redis_cluster: redis._RedisCluster) -> None:
    redis_cluster.set(
        "symbolicate_event_low_priority:counter:10:42:111",
        0,
    )
    redis_cluster.delete("symbolicate_event_low_priority:counter:10:42:111")

    counts = store.get_counts_for_project(42)
    assert list(counts) == []
Exemplo n.º 10
0
def test_get_counts_for_project_empty(
        store: RedisRealtimeMetricsStore,
        redis_cluster: redis._RedisCluster) -> None:
    redis_cluster.set(
        "symbolicate_event_low_priority:counter:10:42:111",
        0,
    )
    redis_cluster.delete("symbolicate_event_low_priority:counter:10:42:111")

    counts = store.get_counts_for_project(42, 113)

    assert list(counts) == [BucketedCount(timestamp=110, count=0)]

    store._counter_time_window = 20

    counts = store.get_counts_for_project(42, 113)

    assert list(counts) == [
        BucketedCount(timestamp=90, count=0),
        BucketedCount(timestamp=100, count=0),
        BucketedCount(timestamp=110, count=0),
    ]
Exemplo n.º 11
0
def test_get_counts_for_projects_with_gap(
        store: RedisRealtimeMetricsStore,
        redis_cluster: redis._RedisCluster) -> None:
    store._counter_time_window = 40
    redis_cluster.set("symbolicate_event_low_priority:counter:10:42:110", 3)
    redis_cluster.set("symbolicate_event_low_priority:counter:10:42:150", 17)

    counts = store.get_counts_for_project(42, 154)

    assert list(counts) == [
        BucketedCount(timestamp=110, count=3),
        BucketedCount(timestamp=120, count=0),
        BucketedCount(timestamp=130, count=0),
        BucketedCount(timestamp=140, count=0),
        BucketedCount(timestamp=150, count=17),
    ]
Exemplo n.º 12
0
def test_get_counts_for_projects_with_gap(
        store: RedisRealtimeMetricsStore,
        redis_cluster: redis._RedisCluster) -> None:
    store._counter_time_window = 40
    redis_cluster.set("symbolicate_event_low_priority:counter:10:42:110", 3)
    redis_cluster.set("symbolicate_event_low_priority:counter:10:42:150", 17)

    buckets = store.get_counts_for_project(project_id=42, timestamp=154)

    assert buckets.total_count() == 20

    assert buckets.counts[-1] == 17
    assert buckets.counts[-2] == 0
    assert buckets.counts[-3] == 0
    assert buckets.counts[-4] == 0
    assert buckets.counts[-5] == 3
Exemplo n.º 13
0
def test_get_counts_for_project_unset(
        store: RedisRealtimeMetricsStore) -> None:
    counts = store.get_counts_for_project(42)
    assert list(counts) == []