Browse Source

ref(relay): Remove transaction metrics allowlist and bump relay version (#48428)

Now that we have removed the transaction metrics allowlist from relay
(https://github.com/getsentry/relay/pull/2092) we want to also remove it
from sentry.

This also requires bumping the relay library version to 0.8.22 to pass
project config validation tests.

---------

Co-authored-by: getsantry[bot] <66042841+getsantry[bot]@users.noreply.github.com>
Tor 1 year ago
parent
commit
9f54c3249a

+ 1 - 1
requirements-base.txt

@@ -61,7 +61,7 @@ rfc3986-validator>=0.1.1
 sentry-arroyo>=2.10.3
 sentry-kafka-schemas>=0.1.6
 sentry-redis-tools>=0.1.5
-sentry-relay>=0.8.21
+sentry-relay>=0.8.22
 sentry-sdk>=1.22.2
 snuba-sdk>=1.0.5
 simplejson>=3.17.6

+ 1 - 1
requirements-dev-frozen.txt

@@ -168,7 +168,7 @@ sentry-arroyo==2.10.3
 sentry-cli==2.16.0
 sentry-kafka-schemas==0.1.6
 sentry-redis-tools==0.1.5
-sentry-relay==0.8.21
+sentry-relay==0.8.22
 sentry-sdk==1.22.2
 simplejson==3.17.6
 six==1.16.0

+ 1 - 1
requirements-frozen.txt

@@ -119,7 +119,7 @@ selenium==4.3.0
 sentry-arroyo==2.10.3
 sentry-kafka-schemas==0.1.6
 sentry-redis-tools==0.1.5
-sentry-relay==0.8.21
+sentry-relay==0.8.22
 sentry-sdk==1.22.2
 simplejson==3.17.6
 six==1.16.0

+ 0 - 47
src/sentry/relay/config/__init__.py

@@ -523,42 +523,6 @@ def _filter_option_to_config_setting(flt: _FilterSpec, setting: str) -> Mapping[
 TRANSACTION_METRICS_EXTRACTION_VERSION = 1
 
 
-#: Top-level metrics for transactions
-TRANSACTION_METRICS = frozenset(
-    [
-        "s:transactions/user@none",
-        "d:transactions/duration@millisecond",
-    ]
-)
-
-
-ALL_MEASUREMENT_METRICS = frozenset(
-    [
-        "d:transactions/measurements.fcp@millisecond",
-        "d:transactions/measurements.lcp@millisecond",
-        "d:transactions/measurements.app_start_cold@millisecond",
-        "d:transactions/measurements.app_start_warm@millisecond",
-        "d:transactions/measurements.cls@none",
-        "d:transactions/measurements.fid@millisecond",
-        "d:transactions/measurements.inp@millisecond",
-        "d:transactions/measurements.fp@millisecond",
-        "d:transactions/measurements.frames_frozen@none",
-        "d:transactions/measurements.frames_frozen_rate@ratio",
-        "d:transactions/measurements.frames_slow@none",
-        "d:transactions/measurements.frames_slow_rate@ratio",
-        "d:transactions/measurements.frames_total@none",
-        "d:transactions/measurements.time_to_initial_display@millisecond",
-        "d:transactions/measurements.time_to_full_display@millisecond",
-        "d:transactions/measurements.stall_count@none",
-        "d:transactions/measurements.stall_longest_time@millisecond",
-        "d:transactions/measurements.stall_percentage@ratio",
-        "d:transactions/measurements.stall_total_time@millisecond",
-        "d:transactions/measurements.ttfb@millisecond",
-        "d:transactions/measurements.ttfb.requesttime@millisecond",
-    ]
-)
-
-
 class CustomMeasurementSettings(TypedDict):
     limit: int
 
@@ -568,7 +532,6 @@ TransactionNameStrategy = Literal["strict", "clientBased"]
 
 class TransactionMetricsSettings(TypedDict):
     version: int
-    extractMetrics: List[str]
     extractCustomTags: List[str]
     customMeasurements: CustomMeasurementSettings
     acceptTransactionNames: TransactionNameStrategy
@@ -588,15 +551,8 @@ def get_transaction_metrics_settings(
     """This function assumes that the corresponding feature flag has been checked.
     See _should_extract_transaction_metrics.
     """
-    metrics: List[str] = []
     custom_tags: List[str] = []
 
-    metrics.extend(sorted(TRANSACTION_METRICS))
-    # TODO: for now let's extract all known measurements. we might want to
-    # be more fine-grained in the future once we know which measurements we
-    # really need (or how that can be dynamically determined)
-    metrics.extend(sorted(ALL_MEASUREMENT_METRICS))
-
     if breakdowns_config is not None:
         # we already have a breakdown configuration that tells relay which
         # breakdowns to compute for an event. metrics extraction should
@@ -606,8 +562,6 @@ def get_transaction_metrics_settings(
             for _, breakdown_config in breakdowns_config.items():
                 assert breakdown_config["type"] == "spanOperations"
 
-                for op_name in breakdown_config["matches"]:
-                    metrics.append(f"d:transactions/breakdowns.span_ops.ops.{op_name}@millisecond")
         except Exception:
             capture_exception()
 
@@ -622,7 +576,6 @@ def get_transaction_metrics_settings(
 
     return {
         "version": TRANSACTION_METRICS_EXTRACTION_VERSION,
-        "extractMetrics": metrics,
         "extractCustomTags": custom_tags,
         "customMeasurements": {"limit": CUSTOM_MEASUREMENT_LIMIT},
         "acceptTransactionNames": "clientBased",

+ 0 - 29
tests/sentry/relay/snapshots/test_config/test_project_config_with_breakdown/MONOLITH/with_metrics.pysnap

@@ -918,33 +918,4 @@ transactionMetrics:
   customMeasurements:
     limit: 10
   extractCustomTags: []
-  extractMetrics:
-  - d:transactions/breakdowns.span_ops.ops.browser@millisecond
-  - d:transactions/breakdowns.span_ops.ops.db@millisecond
-  - d:transactions/breakdowns.span_ops.ops.http@millisecond
-  - d:transactions/breakdowns.span_ops.ops.resource@millisecond
-  - d:transactions/breakdowns.span_ops.ops.ui@millisecond
-  - d:transactions/duration@millisecond
-  - d:transactions/measurements.app_start_cold@millisecond
-  - d:transactions/measurements.app_start_warm@millisecond
-  - d:transactions/measurements.cls@none
-  - d:transactions/measurements.fcp@millisecond
-  - d:transactions/measurements.fid@millisecond
-  - d:transactions/measurements.fp@millisecond
-  - d:transactions/measurements.frames_frozen@none
-  - d:transactions/measurements.frames_frozen_rate@ratio
-  - d:transactions/measurements.frames_slow@none
-  - d:transactions/measurements.frames_slow_rate@ratio
-  - d:transactions/measurements.frames_total@none
-  - d:transactions/measurements.inp@millisecond
-  - d:transactions/measurements.lcp@millisecond
-  - d:transactions/measurements.stall_count@none
-  - d:transactions/measurements.stall_longest_time@millisecond
-  - d:transactions/measurements.stall_percentage@ratio
-  - d:transactions/measurements.stall_total_time@millisecond
-  - d:transactions/measurements.time_to_full_display@millisecond
-  - d:transactions/measurements.time_to_initial_display@millisecond
-  - d:transactions/measurements.ttfb.requesttime@millisecond
-  - d:transactions/measurements.ttfb@millisecond
-  - s:transactions/user@none
   version: 1

+ 0 - 29
tests/sentry/relay/snapshots/test_config/test_project_config_with_breakdown/REGION/with_metrics.pysnap

@@ -918,33 +918,4 @@ transactionMetrics:
   customMeasurements:
     limit: 10
   extractCustomTags: []
-  extractMetrics:
-  - d:transactions/breakdowns.span_ops.ops.browser@millisecond
-  - d:transactions/breakdowns.span_ops.ops.db@millisecond
-  - d:transactions/breakdowns.span_ops.ops.http@millisecond
-  - d:transactions/breakdowns.span_ops.ops.resource@millisecond
-  - d:transactions/breakdowns.span_ops.ops.ui@millisecond
-  - d:transactions/duration@millisecond
-  - d:transactions/measurements.app_start_cold@millisecond
-  - d:transactions/measurements.app_start_warm@millisecond
-  - d:transactions/measurements.cls@none
-  - d:transactions/measurements.fcp@millisecond
-  - d:transactions/measurements.fid@millisecond
-  - d:transactions/measurements.fp@millisecond
-  - d:transactions/measurements.frames_frozen@none
-  - d:transactions/measurements.frames_frozen_rate@ratio
-  - d:transactions/measurements.frames_slow@none
-  - d:transactions/measurements.frames_slow_rate@ratio
-  - d:transactions/measurements.frames_total@none
-  - d:transactions/measurements.inp@millisecond
-  - d:transactions/measurements.lcp@millisecond
-  - d:transactions/measurements.stall_count@none
-  - d:transactions/measurements.stall_longest_time@millisecond
-  - d:transactions/measurements.stall_percentage@ratio
-  - d:transactions/measurements.stall_total_time@millisecond
-  - d:transactions/measurements.time_to_full_display@millisecond
-  - d:transactions/measurements.time_to_initial_display@millisecond
-  - d:transactions/measurements.ttfb.requesttime@millisecond
-  - d:transactions/measurements.ttfb@millisecond
-  - s:transactions/user@none
   version: 1

+ 0 - 4
tests/sentry/relay/test_config.py

@@ -83,7 +83,6 @@ DEFAULT_IGNORE_HEALTHCHECKS_RULE = {
 
 def _validate_project_config(config):
     # Relay keeps BTreeSets for these, so sort here as well:
-    config.get("transactionMetrics", {}).get("extractMetrics", []).sort()
     for rule in config.get("metricConditionalTagging", []):
         rule["targetMetrics"] = sorted(rule["targetMetrics"])
 
@@ -159,8 +158,6 @@ def test_get_experimental_config_transaction_metrics_exception(
 
     config = cfg.to_dict()["config"]
 
-    # we check that due to exception we don't add `d:transactions/breakdowns.span_ops.ops.{op_name}@millisecond`
-    assert "breakdowns.span_ops.ops" not in config["transactionMetrics"]["extractMetrics"]
     assert config["transactionMetrics"]["extractCustomTags"] == []
     assert mock_capture_exception.call_count == 2
 
@@ -535,7 +532,6 @@ def test_has_metric_extraction(default_project, feature_flag, killswitch):
             assert "transactionMetrics" not in config
         else:
             config = config["transactionMetrics"]
-            assert config["extractMetrics"]
             assert config["customMeasurements"]["limit"] > 0