Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(eap): add virtual column support #6292

Merged
merged 8 commits into from
Sep 12, 2024
Merged

Conversation

volokluev
Copy link
Member

Add support for virtual columns to allow for sorting by project name or semver release (as opposed to release id).

@volokluev volokluev requested review from a team as code owners September 12, 2024 00:07
Copy link

codecov bot commented Sep 12, 2024

❌ 1 Tests Failed:

Tests completed Failed Passed Skipped
2617 1 2616 4
View the top 1 failed tests by shortest run time
tests.web.rpc.test_span_samples.TestSpanSamples test_with_virtual_columns
Stack Traces | 0.346s run time
Traceback (most recent call last):
  File ".../web/rpc/test_span_samples.py", line 278, in test_with_virtual_columns
    assert [
AssertionError: assert [{'project_name': '',\n  'release_version': '',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': '',\n  'release_version': '',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': '',\n  'release_version': '',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': '',\n  'release_version': '',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': '',\n  'release_version': '',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': '',\n  'release_version': '',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': '',\n  'release_version': '',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': '',\n  'release_version': '',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': '',\n  'release_version': '',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': '',\n  'release_version': '',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': '',\n  'release_version': '',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': '',\n  'release_version': '',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': '',\n  'release_version': '',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': '',\n  'release_version': '',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': '',\n  'release_version': '',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': '',\n  'release_version': '',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': '',\n  'release_version': '',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': '',\n  'release_version': '',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': '',\n  'release_version': '',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': '',\n  'release_version': '',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': '',\n  'release_version': '',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': '',\n  'release_version': '',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': '',\n  'release_version': '',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': '',\n  'release_version': '',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': '',\n  'release_version': '',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': '',\n  'release_version': '',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': '',\n  'release_version': '',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': '',\n  'release_version': '',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': '',\n  'release_version': '',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': '',\n  'release_version': '',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': '',\n  'release_version': '',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': '',\n  'release_version': '',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': '',\n  'release_version': '',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': '',\n  'release_version': '',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': '',\n  'release_version': '',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': '',\n  'release_version': '',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': '',\n  'release_version': '',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': '',\n  'release_version': '',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': '',\n  'release_version': '',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': '',\n  'release_version': '',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': '',\n  'release_version': '',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': '',\n  'release_version': '',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': '',\n  'release_version': '',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': '',\n  'release_version': '',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': '',\n  'release_version': '',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': '',\n  'release_version': '',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': '',\n  'release_version': '',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': '',\n  'release_version': '',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': '',\n  'release_version': '',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': '',\n  'release_version': '',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': '',\n  'release_version': '',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': '',\n  'release_version': '',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': '',\n  'release_version': '',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': '',\n  'release_version': '',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': '',\n  'release_version': '',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': '',\n  'release_version': '',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': '',\n  'release_version': '',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': '',\n  'release_version': '',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': '',\n  'release_version': '',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': '',\n  'release_version': '',\n  'sentry.sdk.name': 'sentry.python.django'}] == [{'project_name': 'sentry',\n  'release_version': '4.2.0.69',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': 'sentry',\n  'release_version': '4.2.0.69',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': 'sentry',\n  'release_version': '4.2.0.69',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': 'sentry',\n  'release_version': '4.2.0.69',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': 'sentry',\n  'release_version': '4.2.0.69',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': 'sentry',\n  'release_version': '4.2.0.69',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': 'sentry',\n  'release_version': '4.2.0.69',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': 'sentry',\n  'release_version': '4.2.0.69',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': 'sentry',\n  'release_version': '4.2.0.69',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': 'sentry',\n  'release_version': '4.2.0.69',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': 'sentry',\n  'release_version': '4.2.0.69',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': 'sentry',\n  'release_version': '4.2.0.69',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': 'sentry',\n  'release_version': '4.2.0.69',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': 'sentry',\n  'release_version': '4.2.0.69',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': 'sentry',\n  'release_version': '4.2.0.69',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': 'sentry',\n  'release_version': '4.2.0.69',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': 'sentry',\n  'release_version': '4.2.0.69',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': 'sentry',\n  'release_version': '4.2.0.69',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': 'sentry',\n  'release_version': '4.2.0.69',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': 'sentry',\n  'release_version': '4.2.0.69',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': 'sentry',\n  'release_version': '4.2.0.69',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': 'sentry',\n  'release_version': '4.2.0.69',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': 'sentry',\n  'release_version': '4.2.0.69',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': 'sentry',\n  'release_version': '4.2.0.69',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': 'sentry',\n  'release_version': '4.2.0.69',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': 'sentry',\n  'release_version': '4.2.0.69',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': 'sentry',\n  'release_version': '4.2.0.69',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': 'sentry',\n  'release_version': '4.2.0.69',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': 'sentry',\n  'release_version': '4.2.0.69',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': 'sentry',\n  'release_version': '4.2.0.69',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': 'sentry',\n  'release_version': '4.2.0.69',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': 'sentry',\n  'release_version': '4.2.0.69',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': 'sentry',\n  'release_version': '4.2.0.69',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': 'sentry',\n  'release_version': '4.2.0.69',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': 'sentry',\n  'release_version': '4.2.0.69',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': 'sentry',\n  'release_version': '4.2.0.69',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': 'sentry',\n  'release_version': '4.2.0.69',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': 'sentry',\n  'release_version': '4.2.0.69',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': 'sentry',\n  'release_version': '4.2.0.69',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': 'sentry',\n  'release_version': '4.2.0.69',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': 'sentry',\n  'release_version': '4.2.0.69',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': 'sentry',\n  'release_version': '4.2.0.69',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': 'sentry',\n  'release_version': '4.2.0.69',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': 'sentry',\n  'release_version': '4.2.0.69',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': 'sentry',\n  'release_version': '4.2.0.69',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': 'sentry',\n  'release_version': '4.2.0.69',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': 'sentry',\n  'release_version': '4.2.0.69',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': 'sentry',\n  'release_version': '4.2.0.69',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': 'sentry',\n  'release_version': '4.2.0.69',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': 'sentry',\n  'release_version': '4.2.0.69',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': 'sentry',\n  'release_version': '4.2.0.69',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': 'sentry',\n  'release_version': '4.2.0.69',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': 'sentry',\n  'release_version': '4.2.0.69',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': 'sentry',\n  'release_version': '4.2.0.69',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': 'sentry',\n  'release_version': '4.2.0.69',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': 'sentry',\n  'release_version': '4.2.0.69',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': 'sentry',\n  'release_version': '4.2.0.69',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': 'sentry',\n  'release_version': '4.2.0.69',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': 'sentry',\n  'release_version': '4.2.0.69',\n  'sentry.sdk.name': 'sentry.python.django'},\n {'project_name': 'sentry',\n  'release_version': '4.2.0.69',\n  'sentry.sdk.name': 'sentry.python.django'}]
  At index 0 diff: {'sentry.sdk.name': 'sentry.python.django', 'project_name': '', 'release_version': ''} != {'project_name': 'sentry', 'sentry.sdk.name': 'sentry.python.django', 'release_version': '4.2.0.69'}
  Full diff:
    [
  -  {'project_name': 'sentry',
  ?                    ------
  +  {'project_name': '',
  -   'release_version': '4.2.0.69',
  ?                       --------
  +   'release_version': '',
      'sentry.sdk.name': 'sentry.python.django'},
  -  {'project_name': 'sentry',
  ?                    ------
  +  {'project_name': '',
  -   'release_version': '4.2.0.69',
  ?                       --------
  +   'release_version': '',
      'sentry.sdk.name': 'sentry.python.django'},
  -  {'project_name': 'sentry',
  ?                    ------
  +  {'project_name': '',
  -   'release_version': '4.2.0.69',
  ?                       --------
  +   'release_version': '',
      'sentry.sdk.name': 'sentry.python.django'},
  -  {'project_name': 'sentry',
  ?                    ------
  +  {'project_name': '',
  -   'release_version': '4.2.0.69',
  ?                       --------
  +   'release_version': '',
      'sentry.sdk.name': 'sentry.python.django'},
  -  {'project_name': 'sentry',
  ?                    ------
  +  {'project_name': '',
  -   'release_version': '4.2.0.69',
  ?                       --------
  +   'release_version': '',
      'sentry.sdk.name': 'sentry.python.django'},
  -  {'project_name': 'sentry',
  ?                    ------
  +  {'project_name': '',
  -   'release_version': '4.2.0.69',
  ?                       --------
  +   'release_version': '',
      'sentry.sdk.name': 'sentry.python.django'},
  -  {'project_name': 'sentry',
  ?                    ------
  +  {'project_name': '',
  -   'release_version': '4.2.0.69',
  ?                       --------
  +   'release_version': '',
      'sentry.sdk.name': 'sentry.python.django'},
  -  {'project_name': 'sentry',
  ?                    ------
  +  {'project_name': '',
  -   'release_version': '4.2.0.69',
  ?                       --------
  +   'release_version': '',
      'sentry.sdk.name': 'sentry.python.django'},
  -  {'project_name': 'sentry',
  ?                    ------
  +  {'project_name': '',
  -   'release_version': '4.2.0.69',
  ?                       --------
  +   'release_version': '',
      'sentry.sdk.name': 'sentry.python.django'},
  -  {'project_name': 'sentry',
  ?                    ------
  +  {'project_name': '',
  -   'release_version': '4.2.0.69',
  ?                       --------
  +   'release_version': '',
      'sentry.sdk.name': 'sentry.python.django'},
  -  {'project_name': 'sentry',
  ?                    ------
  +  {'project_name': '',
  -   'release_version': '4.2.0.69',
  ?                       --------
  +   'release_version': '',
      'sentry.sdk.name': 'sentry.python.django'},
  -  {'project_name': 'sentry',
  ?                    ------
  +  {'project_name': '',
  -   'release_version': '4.2.0.69',
  ?                       --------
  +   'release_version': '',
      'sentry.sdk.name': 'sentry.python.django'},
  -  {'project_name': 'sentry',
  ?                    ------
  +  {'project_name': '',
  -   'release_version': '4.2.0.69',
  ?                       --------
  +   'release_version': '',
      'sentry.sdk.name': 'sentry.python.django'},
  -  {'project_name': 'sentry',
  ?                    ------
  +  {'project_name': '',
  -   'release_version': '4.2.0.69',
  ?                       --------
  +   'release_version': '',
      'sentry.sdk.name': 'sentry.python.django'},
  -  {'project_name': 'sentry',
  ?                    ------
  +  {'project_name': '',
  -   'release_version': '4.2.0.69',
  ?                       --------
  +   'release_version': '',
      'sentry.sdk.name': 'sentry.python.django'},
  -  {'project_name': 'sentry',
  ?                    ------
  +  {'project_name': '',
  -   'release_version': '4.2.0.69',
  ?                       --------
  +   'release_version': '',
      'sentry.sdk.name': 'sentry.python.django'},
  -  {'project_name': 'sentry',
  ?                    ------
  +  {'project_name': '',
  -   'release_version': '4.2.0.69',
  ?                       --------
  +   'release_version': '',
      'sentry.sdk.name': 'sentry.python.django'},
  -  {'project_name': 'sentry',
  ?                    ------
  +  {'project_name': '',
  -   'release_version': '4.2.0.69',
  ?                       --------
  +   'release_version': '',
      'sentry.sdk.name': 'sentry.python.django'},
  -  {'project_name': 'sentry',
  ?                    ------
  +  {'project_name': '',
  -   'release_version': '4.2.0.69',
  ?                       --------
  +   'release_version': '',
      'sentry.sdk.name': 'sentry.python.django'},
  -  {'project_name': 'sentry',
  ?                    ------
  +  {'project_name': '',
  -   'release_version': '4.2.0.69',
  ?                       --------
  +   'release_version': '',
      'sentry.sdk.name': 'sentry.python.django'},
  -  {'project_name': 'sentry',
  ?                    ------
  +  {'project_name': '',
  -   'release_version': '4.2.0.69',
  ?                       --------
  +   'release_version': '',
      'sentry.sdk.name': 'sentry.python.django'},
  -  {'project_name': 'sentry',
  ?                    ------
  +  {'project_name': '',
  -   'release_version': '4.2.0.69',
  ?                       --------
  +   'release_version': '',
      'sentry.sdk.name': 'sentry.python.django'},
  -  {'project_name': 'sentry',
  ?                    ------
  +  {'project_name': '',
  -   'release_version': '4.2.0.69',
  ?                       --------
  +   'release_version': '',
      'sentry.sdk.name': 'sentry.python.django'},
  -  {'project_name': 'sentry',
  ?                    ------
  +  {'project_name': '',
  -   'release_version': '4.2.0.69',
  ?                       --------
  +   'release_version': '',
      'sentry.sdk.name': 'sentry.python.django'},
  -  {'project_name': 'sentry',
  ?                    ------
  +  {'project_name': '',
  -   'release_version': '4.2.0.69',
  ?                       --------
  +   'release_version': '',
      'sentry.sdk.name': 'sentry.python.django'},
  -  {'project_name': 'sentry',
  ?                    ------
  +  {'project_name': '',
  -   'release_version': '4.2.0.69',
  ?                       --------
  +   'release_version': '',
      'sentry.sdk.name': 'sentry.python.django'},
  -  {'project_name': 'sentry',
  ?                    ------
  +  {'project_name': '',
  -   'release_version': '4.2.0.69',
  ?                       --------
  +   'release_version': '',
      'sentry.sdk.name': 'sentry.python.django'},
  -  {'project_name': 'sentry',
  ?                    ------
  +  {'project_name': '',
  -   'release_version': '4.2.0.69',
  ?                       --------
  +   'release_version': '',
      'sentry.sdk.name': 'sentry.python.django'},
  -  {'project_name': 'sentry',
  ?                    ------
  +  {'project_name': '',
  -   'release_version': '4.2.0.69',
  ?                       --------
  +   'release_version': '',
      'sentry.sdk.name': 'sentry.python.django'},
  -  {'project_name': 'sentry',
  ?                    ------
  +  {'project_name': '',
  -   'release_version': '4.2.0.69',
  ?                       --------
  +   'release_version': '',
      'sentry.sdk.name': 'sentry.python.django'},
  -  {'project_name': 'sentry',
  ?                    ------
  +  {'project_name': '',
  -   'release_version': '4.2.0.69',
  ?                       --------
  +   'release_version': '',
      'sentry.sdk.name': 'sentry.python.django'},
  -  {'project_name': 'sentry',
  ?                    ------
  +  {'project_name': '',
  -   'release_version': '4.2.0.69',
  ?                       --------
  +   'release_version': '',
      'sentry.sdk.name': 'sentry.python.django'},
  -  {'project_name': 'sentry',
  ?                    ------
  +  {'project_name': '',
  -   'release_version': '4.2.0.69',
  ?                       --------
  +   'release_version': '',
      'sentry.sdk.name': 'sentry.python.django'},
  -  {'project_name': 'sentry',
  ?                    ------
  +  {'project_name': '',
  -   'release_version': '4.2.0.69',
  ?                       --------
  +   'release_version': '',
      'sentry.sdk.name': 'sentry.python.django'},
  -  {'project_name': 'sentry',
  ?                    ------
  +  {'project_name': '',
  -   'release_version': '4.2.0.69',
  ?                       --------
  +   'release_version': '',
      'sentry.sdk.name': 'sentry.python.django'},
  -  {'project_name': 'sentry',
  ?                    ------
  +  {'project_name': '',
  -   'release_version': '4.2.0.69',
  ?                       --------
  +   'release_version': '',
      'sentry.sdk.name': 'sentry.python.django'},
  -  {'project_name': 'sentry',
  ?                    ------
  +  {'project_name': '',
  -   'release_version': '4.2.0.69',
  ?                       --------
  +   'release_version': '',
      'sentry.sdk.name': 'sentry.python.django'},
  -  {'project_name': 'sentry',
  ?                    ------
  +  {'project_name': '',
  -   'release_version': '4.2.0.69',
  ?                       --------
  +   'release_version': '',
      'sentry.sdk.name': 'sentry.python.django'},
  -  {'project_name': 'sentry',
  ?                    ------
  +  {'project_name': '',
  -   'release_version': '4.2.0.69',
  ?                       --------
  +   'release_version': '',
      'sentry.sdk.name': 'sentry.python.django'},
  -  {'project_name': 'sentry',
  ?                    ------
  +  {'project_name': '',
  -   'release_version': '4.2.0.69',
  ?                       --------
  +   'release_version': '',
      'sentry.sdk.name': 'sentry.python.django'},
  -  {'project_name': 'sentry',
  ?                    ------
  +  {'project_name': '',
  -   'release_version': '4.2.0.69',
  ?                       --------
  +   'release_version': '',
      'sentry.sdk.name': 'sentry.python.django'},
  -  {'project_name': 'sentry',
  ?                    ------
  +  {'project_name': '',
  -   'release_version': '4.2.0.69',
  ?                       --------
  +   'release_version': '',
      'sentry.sdk.name': 'sentry.python.django'},
  -  {'project_name': 'sentry',
  ?                    ------
  +  {'project_name': '',
  -   'release_version': '4.2.0.69',
  ?                       --------
  +   'release_version': '',
      'sentry.sdk.name': 'sentry.python.django'},
  -  {'project_name': 'sentry',
  ?                    ------
  +  {'project_name': '',
  -   'release_version': '4.2.0.69',
  ?                       --------
  +   'release_version': '',
      'sentry.sdk.name': 'sentry.python.django'},
  -  {'project_name': 'sentry',
  ?                    ------
  +  {'project_name': '',
  -   'release_version': '4.2.0.69',
  ?                       --------
  +   'release_version': '',
      'sentry.sdk.name': 'sentry.python.django'},
  -  {'project_name': 'sentry',
  ?                    ------
  +  {'project_name': '',
  -   'release_version': '4.2.0.69',
  ?                       --------
  +   'release_version': '',
      'sentry.sdk.name': 'sentry.python.django'},
  -  {'project_name': 'sentry',
  ?                    ------
  +  {'project_name': '',
  -   'release_version': '4.2.0.69',
  ?                       --------
  +   'release_version': '',
      'sentry.sdk.name': 'sentry.python.django'},
  -  {'project_name': 'sentry',
  ?                    ------
  +  {'project_name': '',
  -   'release_version': '4.2.0.69',
  ?                       --------
  +   'release_version': '',
      'sentry.sdk.name': 'sentry.python.django'},
  -  {'project_name': 'sentry',
  ?                    ------
  +  {'project_name': '',
  -   'release_version': '4.2.0.69',
  ?                       --------
  +   'release_version': '',
      'sentry.sdk.name': 'sentry.python.django'},
  -  {'project_name': 'sentry',
  ?                    ------
  +  {'project_name': '',
  -   'release_version': '4.2.0.69',
  ?                       --------
  +   'release_version': '',
      'sentry.sdk.name': 'sentry.python.django'},
  -  {'project_name': 'sentry',
  ?                    ------
  +  {'project_name': '',
  -   'release_version': '4.2.0.69',
  ?                       --------
  +   'release_version': '',
      'sentry.sdk.name': 'sentry.python.django'},
  -  {'project_name': 'sentry',
  ?                    ------
  +  {'project_name': '',
  -   'release_version': '4.2.0.69',
  ?                       --------
  +   'release_version': '',
      'sentry.sdk.name': 'sentry.python.django'},
  -  {'project_name': 'sentry',
  ?                    ------
  +  {'project_name': '',
  -   'release_version': '4.2.0.69',
  ?                       --------
  +   'release_version': '',
      'sentry.sdk.name': 'sentry.python.django'},
  -  {'project_name': 'sentry',
  ?                    ------
  +  {'project_name': '',
  -   'release_version': '4.2.0.69',
  ?                       --------
  +   'release_version': '',
      'sentry.sdk.name': 'sentry.python.django'},
  -  {'project_name': 'sentry',
  ?                    ------
  +  {'project_name': '',
  -   'release_version': '4.2.0.69',
  ?                       --------
  +   'release_version': '',
      'sentry.sdk.name': 'sentry.python.django'},
  -  {'project_name': 'sentry',
  ?                    ------
  +  {'project_name': '',
  -   'release_version': '4.2.0.69',
  ?                       --------
  +   'release_version': '',
      'sentry.sdk.name': 'sentry.python.django'},
  -  {'project_name': 'sentry',
  ?                    ------
  +  {'project_name': '',
  -   'release_version': '4.2.0.69',
  ?                       --------
  +   'release_version': '',
      'sentry.sdk.name': 'sentry.python.django'},
  -  {'project_name': 'sentry',
  ?                    ------
  +  {'project_name': '',
  -   'release_version': '4.2.0.69',
  ?                       --------
  +   'release_version': '',
      'sentry.sdk.name': 'sentry.python.django'},
  -  {'project_name': 'sentry',
  ?                    ------
  +  {'project_name': '',
  -   'release_version': '4.2.0.69',
  ?                       --------
  +   'release_version': '',
      'sentry.sdk.name': 'sentry.python.django'},
  -  {'project_name': 'sentry',
  ?                    ------
  +  {'project_name': '',
  -   'release_version': '4.2.0.69',
  ?                       --------
  +   'release_version': '',
      'sentry.sdk.name': 'sentry.python.django'},
    ]

To view individual test run time comparison to the main branch, go to the Test Analytics Dashboard

@mcannizz
Copy link
Member

Does this feature work for only the span_samples_query or do other operations like timeseries_query also support it?


SELECT
-- see the project name column transformed and the value mapping injected
transform( CAST( project_id, 'String'), array( '1', '2'), array( 'sentry', 'snuba'), 'unknown') AS `project_name`,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

also I think cast should go in other way, if you request a numeric column it'll be better performance if we cast '1' instead of project_id

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree with the performance being better if we cast '1' rather than project_id. I was doing this to keep the logic and interface simpler

@volokluev
Copy link
Member Author

@mcannizz How would virtual columns work in a timeseries? I don't think I understand

@mcannizz
Copy link
Member

@mcannizz How would virtual columns work in a timeseries? I don't think I understand

Suppose you wanted to count events over time by project -- one time series per project -- and you wanted to sort those by project name. Would we support that? (I'm asking to understand the scope of the feature as implemented, not assert a requirement.)

@volokluev
Copy link
Member Author

I see, right now that is not supported here and the protobuf interface for timeseries doesn't support it either

@volokluev
Copy link
Member Author

(not to say it can't happen in the future)

Copy link
Member

@colin-sentry colin-sentry left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

would be nice if test had multiple spans to make sure order_by actually worked, but it's probably fine

@volokluev volokluev enabled auto-merge (squash) September 12, 2024 20:32
"sentry.sdk.name": "sentry.python.django",
"release_version": "4.2.0.69",
}
for _ in range(60)
Copy link
Contributor

@nachivrn nachivrn Sep 12, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Question: Will the response first 60 samples mapped to have project_name as 'sentry' ?

@volokluev volokluev merged commit 08928b9 into master Sep 12, 2024
30 checks passed
@volokluev volokluev deleted the volo/eap/virtual_columns branch September 12, 2024 23:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants