Browse Source

feat(generic-metrics): Forward sampling information from ingest to snuba (#75855)

### Overview

Forwards sampling information (`sampling_weight`) in the indexer
John 7 months ago
parent
commit
05bc085d26

+ 4 - 1
bin/send_metrics.py

@@ -32,12 +32,12 @@ def make_counter_payload(use_case, org_id, rand_str):
         "org_id": org_id,
         "retention_days": 90,
         "project_id": 3,
+        "sampling_weight": random.uniform(1.0, 24),
     }
 
 
 def make_dist_payload(use_case, org_id, rand_str, value_len, b64_encode):
     nums = [random.random() for _ in range(value_len)]
-    print(f"nums: {nums}")
     return {
         "name": f"d:{use_case}/duration@second",
         "tags": {
@@ -63,6 +63,7 @@ def make_dist_payload(use_case, org_id, rand_str, value_len, b64_encode):
         "org_id": org_id,
         "retention_days": 90,
         "project_id": 3,
+        "sampling_weight": random.uniform(1.0, 24),
     }
 
 
@@ -96,6 +97,7 @@ def make_set_payload(use_case, org_id, rand_str, value_len, b64_encode):
         "org_id": org_id,
         "retention_days": 90,
         "project_id": 3,
+        "sampling_weight": random.uniform(1.0, 24),
     }
 
 
@@ -119,6 +121,7 @@ def make_gauge_payload(use_case, org_id, rand_str):
         "org_id": org_id,
         "retention_days": 90,
         "project_id": 3,
+        "sampling_weight": random.uniform(1.0, 24),
     }
 
 

+ 1 - 1
requirements-base.txt

@@ -62,7 +62,7 @@ rfc3339-validator>=0.1.2
 rfc3986-validator>=0.1.1
 # [end] jsonschema format validators
 sentry-arroyo>=2.16.5
-sentry-kafka-schemas>=0.1.105
+sentry-kafka-schemas>=0.1.106
 sentry-ophio==0.2.7
 sentry-redis-tools>=0.1.7
 sentry-relay>=0.9.1

+ 1 - 1
requirements-dev-frozen.txt

@@ -182,7 +182,7 @@ sentry-cli==2.16.0
 sentry-devenv==1.8.0
 sentry-forked-django-stubs==5.0.4.post1
 sentry-forked-djangorestframework-stubs==3.15.0.post1
-sentry-kafka-schemas==0.1.105
+sentry-kafka-schemas==0.1.106
 sentry-ophio==0.2.7
 sentry-redis-tools==0.1.7
 sentry-relay==0.9.1

+ 1 - 1
requirements-frozen.txt

@@ -123,7 +123,7 @@ rpds-py==0.15.2
 rsa==4.8
 s3transfer==0.10.0
 sentry-arroyo==2.16.5
-sentry-kafka-schemas==0.1.105
+sentry-kafka-schemas==0.1.106
 sentry-ophio==0.2.7
 sentry-redis-tools==0.1.7
 sentry-relay==0.9.1

+ 2 - 0
src/sentry/sentry_metrics/consumers/indexer/batch.py

@@ -493,6 +493,8 @@ class IndexerBatch:
                         option = list(aggregation_options.items())[0][0]
                         assert option is not None
                         new_payload_v2["aggregation_option"] = option.value
+                    if sampling_weight := old_payload_value.get("sampling_weight"):
+                        new_payload_v2["sampling_weight"] = sampling_weight
 
                     new_payload_value = new_payload_v2