diff --git a/src/sentry/api/bases/organization_events.py b/src/sentry/api/bases/organization_events.py index f3f79669f9e686..d95710ceea72a5 100644 --- a/src/sentry/api/bases/organization_events.py +++ b/src/sentry/api/bases/organization_events.py @@ -215,10 +215,6 @@ def quantize_date_params( ) return results - -class OrganizationEventsV2EndpointBase(OrganizationEventsEndpointBase): - owner = ApiOwner.DATA_BROWSING - def build_cursor_link(self, request: HttpRequest, name: str, cursor: Cursor | None) -> str: # The base API function only uses the last query parameter, but this endpoint # needs all the parameters, particularly for the "field" query param. @@ -776,7 +772,7 @@ def serialize_accuracy_data( return serialized_values -class KeyTransactionBase(OrganizationEventsV2EndpointBase): +class KeyTransactionBase(OrganizationEventsEndpointBase): def has_feature(self, organization: Organization, request: Request) -> bool: return features.has("organizations:performance-view", organization, actor=request.user) diff --git a/src/sentry/api/endpoints/organization_ai_conversations.py b/src/sentry/api/endpoints/organization_ai_conversations.py index 56a22a0ce7c031..1a2052205f99ac 100644 --- a/src/sentry/api/endpoints/organization_ai_conversations.py +++ b/src/sentry/api/endpoints/organization_ai_conversations.py @@ -12,7 +12,7 @@ from sentry.api.api_owners import ApiOwner from sentry.api.api_publish_status import ApiPublishStatus from sentry.api.base import region_silo_endpoint -from sentry.api.bases import NoProjects, OrganizationEventsV2EndpointBase +from sentry.api.bases import NoProjects, OrganizationEventsEndpointBase from sentry.api.paginator import GenericOffsetPaginator from sentry.api.utils import handle_query_errors from sentry.models.organization import Organization @@ -52,7 +52,7 @@ def validate_sort(self, value): @region_silo_endpoint -class OrganizationAIConversationsEndpoint(OrganizationEventsV2EndpointBase): +class OrganizationAIConversationsEndpoint(OrganizationEventsEndpointBase): """Endpoint for fetching AI agent conversation traces.""" publish_status = { diff --git a/src/sentry/api/endpoints/organization_events.py b/src/sentry/api/endpoints/organization_events.py index 07e031cc49715a..9a5e5f5e495ab8 100644 --- a/src/sentry/api/endpoints/organization_events.py +++ b/src/sentry/api/endpoints/organization_events.py @@ -12,7 +12,7 @@ from sentry import features from sentry.api.api_publish_status import ApiPublishStatus from sentry.api.base import region_silo_endpoint -from sentry.api.bases import NoProjects, OrganizationEventsV2EndpointBase +from sentry.api.bases import NoProjects, OrganizationEventsEndpointBase from sentry.api.helpers.error_upsampling import ( is_errors_query_for_error_upsampled_projects, transform_orderby_for_error_upsampling, @@ -85,7 +85,7 @@ class EventsApiResponse(TypedDict): @extend_schema(tags=["Discover"]) @region_silo_endpoint -class OrganizationEventsEndpoint(OrganizationEventsV2EndpointBase): +class OrganizationEventsEndpoint(OrganizationEventsEndpointBase): publish_status = { "GET": ApiPublishStatus.PUBLIC, } @@ -164,14 +164,6 @@ def get(self, request: Request, organization: Organization) -> Response: """ Retrieves discover (also known as events) data for a given organization. - **Eventsv2 Deprecation Note**: Users who may be using the `eventsv2` endpoint should update their requests to the `events` endpoint outline in this document. - The `eventsv2` endpoint is not a public endpoint and has no guaranteed availability. If you are not making any API calls to `eventsv2`, you can safely ignore this. - Changes between `eventsv2` and `events` include: - - Field keys in the response now match the keys in the requested `field` param exactly. - - The `meta` object in the response now shows types in the nested `field` object. - - Aside from the url change, there are no changes to the request payload itself. - **Note**: This endpoint is intended to get a table of results, and is not for doing a full export of data sent to Sentry. diff --git a/src/sentry/api/endpoints/organization_events_facets.py b/src/sentry/api/endpoints/organization_events_facets.py index 235e6c3afbb652..4c9abbaa96d0fc 100644 --- a/src/sentry/api/endpoints/organization_events_facets.py +++ b/src/sentry/api/endpoints/organization_events_facets.py @@ -8,7 +8,7 @@ from sentry import tagstore from sentry.api.api_publish_status import ApiPublishStatus from sentry.api.base import region_silo_endpoint -from sentry.api.bases import NoProjects, OrganizationEventsV2EndpointBase +from sentry.api.bases import NoProjects, OrganizationEventsEndpointBase from sentry.api.paginator import GenericOffsetPaginator from sentry.api.utils import handle_query_errors, update_snuba_params_with_timestamp from sentry.models.organization import Organization @@ -27,7 +27,7 @@ class _KeyTopValues(TypedDict): @region_silo_endpoint -class OrganizationEventsFacetsEndpoint(OrganizationEventsV2EndpointBase): +class OrganizationEventsFacetsEndpoint(OrganizationEventsEndpointBase): publish_status = { "GET": ApiPublishStatus.PRIVATE, } diff --git a/src/sentry/api/endpoints/organization_events_facets_performance.py b/src/sentry/api/endpoints/organization_events_facets_performance.py index 381ce043fc633f..6bfcdb88e61cf8 100644 --- a/src/sentry/api/endpoints/organization_events_facets_performance.py +++ b/src/sentry/api/endpoints/organization_events_facets_performance.py @@ -12,7 +12,7 @@ from sentry import features, tagstore from sentry.api.api_publish_status import ApiPublishStatus from sentry.api.base import region_silo_endpoint -from sentry.api.bases import NoProjects, OrganizationEventsV2EndpointBase +from sentry.api.bases import NoProjects, OrganizationEventsEndpointBase from sentry.api.paginator import GenericOffsetPaginator from sentry.api.utils import handle_query_errors from sentry.models.organization import Organization @@ -39,7 +39,7 @@ DEFAULT_TAG_KEY_LIMIT = 5 -class OrganizationEventsFacetsPerformanceEndpointBase(OrganizationEventsV2EndpointBase): +class OrganizationEventsFacetsPerformanceEndpointBase(OrganizationEventsEndpointBase): publish_status = { "GET": ApiPublishStatus.PRIVATE, } diff --git a/src/sentry/api/endpoints/organization_events_has_measurements.py b/src/sentry/api/endpoints/organization_events_has_measurements.py index e80cd126979913..06ed00bda2e1d2 100644 --- a/src/sentry/api/endpoints/organization_events_has_measurements.py +++ b/src/sentry/api/endpoints/organization_events_has_measurements.py @@ -9,7 +9,7 @@ from sentry.api.api_publish_status import ApiPublishStatus from sentry.api.base import region_silo_endpoint -from sentry.api.bases import NoProjects, OrganizationEventsV2EndpointBase +from sentry.api.bases import NoProjects, OrganizationEventsEndpointBase from sentry.api.utils import handle_query_errors from sentry.models.organization import Organization from sentry.snuba import discover @@ -50,7 +50,7 @@ def validate(self, data): @region_silo_endpoint -class OrganizationEventsHasMeasurementsEndpoint(OrganizationEventsV2EndpointBase): +class OrganizationEventsHasMeasurementsEndpoint(OrganizationEventsEndpointBase): publish_status = { "GET": ApiPublishStatus.PRIVATE, } diff --git a/src/sentry/api/endpoints/organization_events_histogram.py b/src/sentry/api/endpoints/organization_events_histogram.py index 4c8a00e68881ba..e7c65fbc20cd32 100644 --- a/src/sentry/api/endpoints/organization_events_histogram.py +++ b/src/sentry/api/endpoints/organization_events_histogram.py @@ -7,7 +7,7 @@ from sentry.api.api_owners import ApiOwner from sentry.api.api_publish_status import ApiPublishStatus from sentry.api.base import region_silo_endpoint -from sentry.api.bases import NoProjects, OrganizationEventsV2EndpointBase +from sentry.api.bases import NoProjects, OrganizationEventsEndpointBase from sentry.api.utils import handle_query_errors from sentry.models.organization import Organization from sentry.snuba import discover @@ -44,7 +44,7 @@ def validate_field(self, fields): @region_silo_endpoint -class OrganizationEventsHistogramEndpoint(OrganizationEventsV2EndpointBase): +class OrganizationEventsHistogramEndpoint(OrganizationEventsEndpointBase): publish_status = { "GET": ApiPublishStatus.PRIVATE, } diff --git a/src/sentry/api/endpoints/organization_events_meta.py b/src/sentry/api/endpoints/organization_events_meta.py index 0a6226ad41ae86..b8b13bdeb9790d 100644 --- a/src/sentry/api/endpoints/organization_events_meta.py +++ b/src/sentry/api/endpoints/organization_events_meta.py @@ -8,11 +8,7 @@ from sentry import features, options, search from sentry.api.api_publish_status import ApiPublishStatus from sentry.api.base import region_silo_endpoint -from sentry.api.bases import ( - NoProjects, - OrganizationEventsEndpointBase, - OrganizationEventsV2EndpointBase, -) +from sentry.api.bases import NoProjects, OrganizationEventsEndpointBase from sentry.api.event_search import parse_search_query from sentry.api.helpers.environments import get_environment_func from sentry.api.helpers.group_index import build_query_params_from_request @@ -185,7 +181,7 @@ def get(self, request: Request, organization: Organization) -> Response: @region_silo_endpoint -class OrganizationSpansSamplesEndpoint(OrganizationEventsV2EndpointBase): +class OrganizationSpansSamplesEndpoint(OrganizationEventsEndpointBase): publish_status = { "GET": ApiPublishStatus.PRIVATE, } diff --git a/src/sentry/api/endpoints/organization_events_spans_histogram.py b/src/sentry/api/endpoints/organization_events_spans_histogram.py index 24ba9f85259613..5666cdaae11e87 100644 --- a/src/sentry/api/endpoints/organization_events_spans_histogram.py +++ b/src/sentry/api/endpoints/organization_events_spans_histogram.py @@ -5,7 +5,7 @@ from sentry.api.api_publish_status import ApiPublishStatus from sentry.api.base import region_silo_endpoint -from sentry.api.bases import NoProjects, OrganizationEventsV2EndpointBase +from sentry.api.bases import NoProjects, OrganizationEventsEndpointBase from sentry.api.utils import handle_query_errors from sentry.models.organization import Organization from sentry.search.events.types import Span @@ -36,7 +36,7 @@ def validate_span(self, span: str) -> Span: @region_silo_endpoint -class OrganizationEventsSpansHistogramEndpoint(OrganizationEventsV2EndpointBase): +class OrganizationEventsSpansHistogramEndpoint(OrganizationEventsEndpointBase): publish_status = { "GET": ApiPublishStatus.PRIVATE, } diff --git a/src/sentry/api/endpoints/organization_events_spans_performance.py b/src/sentry/api/endpoints/organization_events_spans_performance.py index 4ecabd837909c4..4354d09181e02a 100644 --- a/src/sentry/api/endpoints/organization_events_spans_performance.py +++ b/src/sentry/api/endpoints/organization_events_spans_performance.py @@ -17,7 +17,7 @@ from sentry.api.api_publish_status import ApiPublishStatus from sentry.api.base import region_silo_endpoint -from sentry.api.bases import NoProjects, OrganizationEventsV2EndpointBase +from sentry.api.bases import NoProjects, OrganizationEventsEndpointBase from sentry.api.paginator import GenericOffsetPaginator from sentry.api.utils import handle_query_errors from sentry.discover.arithmetic import is_equation, strip_equation @@ -86,7 +86,7 @@ class SpanPerformanceColumn: } -class OrganizationEventsSpansEndpointBase(OrganizationEventsV2EndpointBase): +class OrganizationEventsSpansEndpointBase(OrganizationEventsEndpointBase): def get_snuba_params( self, request: Request, diff --git a/src/sentry/api/endpoints/organization_events_stats.py b/src/sentry/api/endpoints/organization_events_stats.py index 58f5b29b8f7af1..c33176e66f0cab 100644 --- a/src/sentry/api/endpoints/organization_events_stats.py +++ b/src/sentry/api/endpoints/organization_events_stats.py @@ -11,7 +11,7 @@ from sentry.analytics.events.agent_monitoring_events import AgentMonitoringQuery from sentry.api.api_publish_status import ApiPublishStatus from sentry.api.base import region_silo_endpoint -from sentry.api.bases import OrganizationEventsV2EndpointBase +from sentry.api.bases import OrganizationEventsEndpointBase from sentry.api.helpers.error_upsampling import ( is_errors_query_for_error_upsampled_projects, transform_query_columns_for_error_upsampling, @@ -54,7 +54,7 @@ @region_silo_endpoint -class OrganizationEventsStatsEndpoint(OrganizationEventsV2EndpointBase): +class OrganizationEventsStatsEndpoint(OrganizationEventsEndpointBase): publish_status = { "GET": ApiPublishStatus.EXPERIMENTAL, } diff --git a/src/sentry/api/endpoints/organization_events_timeseries.py b/src/sentry/api/endpoints/organization_events_timeseries.py index add5e2f0684e6e..859d53d900b1c9 100644 --- a/src/sentry/api/endpoints/organization_events_timeseries.py +++ b/src/sentry/api/endpoints/organization_events_timeseries.py @@ -10,7 +10,7 @@ from sentry import features from sentry.api.api_publish_status import ApiPublishStatus from sentry.api.base import region_silo_endpoint -from sentry.api.bases import NoProjects, OrganizationEventsV2EndpointBase +from sentry.api.bases import NoProjects, OrganizationEventsEndpointBase from sentry.api.endpoints.organization_events_stats import SENTRY_BACKEND_REFERRERS from sentry.api.endpoints.timeseries import ( EMPTY_STATS_RESPONSE, @@ -72,7 +72,7 @@ def null_zero(value: float) -> float | None: @region_silo_endpoint -class OrganizationEventsTimeseriesEndpoint(OrganizationEventsV2EndpointBase): +class OrganizationEventsTimeseriesEndpoint(OrganizationEventsEndpointBase): publish_status = { "GET": ApiPublishStatus.EXPERIMENTAL, } diff --git a/src/sentry/api/endpoints/organization_events_trace.py b/src/sentry/api/endpoints/organization_events_trace.py index e7d37956ac81f2..c0a0be941a0953 100644 --- a/src/sentry/api/endpoints/organization_events_trace.py +++ b/src/sentry/api/endpoints/organization_events_trace.py @@ -19,7 +19,7 @@ from sentry import constants, features, options from sentry.api.api_publish_status import ApiPublishStatus from sentry.api.base import region_silo_endpoint -from sentry.api.bases import NoProjects, OrganizationEventsV2EndpointBase +from sentry.api.bases import NoProjects, OrganizationEventsEndpointBase from sentry.api.serializers.models.event import EventTag, get_tags_with_meta from sentry.api.utils import handle_query_errors, update_snuba_params_with_timestamp from sentry.issues.issue_occurrence import IssueOccurrence @@ -734,7 +734,7 @@ def pad_span_id(span: str | None) -> str: return span.rjust(16, "0") -class OrganizationEventsTraceEndpointBase(OrganizationEventsV2EndpointBase): +class OrganizationEventsTraceEndpointBase(OrganizationEventsEndpointBase): publish_status = { "GET": ApiPublishStatus.PRIVATE, } @@ -1448,7 +1448,7 @@ def serialize_with_spans( @region_silo_endpoint -class OrganizationEventsTraceMetaEndpoint(OrganizationEventsV2EndpointBase): +class OrganizationEventsTraceMetaEndpoint(OrganizationEventsEndpointBase): publish_status = { "GET": ApiPublishStatus.PRIVATE, } diff --git a/src/sentry/api/endpoints/organization_events_trends.py b/src/sentry/api/endpoints/organization_events_trends.py index c4e396dbde9eea..0236b672fe10aa 100644 --- a/src/sentry/api/endpoints/organization_events_trends.py +++ b/src/sentry/api/endpoints/organization_events_trends.py @@ -13,7 +13,7 @@ from sentry import features from sentry.api.api_publish_status import ApiPublishStatus from sentry.api.base import region_silo_endpoint -from sentry.api.bases import NoProjects, OrganizationEventsV2EndpointBase +from sentry.api.bases import NoProjects, OrganizationEventsEndpointBase from sentry.api.event_search import AggregateFilter from sentry.api.paginator import GenericOffsetPaginator from sentry.api.utils import handle_query_errors @@ -80,7 +80,7 @@ def resolve_function( return super().resolve_function(function, match, resolve_only, overwrite_alias) -class OrganizationEventsTrendsEndpointBase(OrganizationEventsV2EndpointBase): +class OrganizationEventsTrendsEndpointBase(OrganizationEventsEndpointBase): publish_status = { "GET": ApiPublishStatus.PRIVATE, } diff --git a/src/sentry/api/endpoints/organization_events_trends_v2.py b/src/sentry/api/endpoints/organization_events_trends_v2.py index cfb6bc5f09319c..72c66a7570e5e1 100644 --- a/src/sentry/api/endpoints/organization_events_trends_v2.py +++ b/src/sentry/api/endpoints/organization_events_trends_v2.py @@ -10,7 +10,7 @@ from sentry import features from sentry.api.api_publish_status import ApiPublishStatus from sentry.api.base import region_silo_endpoint -from sentry.api.bases import NoProjects, OrganizationEventsV2EndpointBase +from sentry.api.bases import NoProjects, OrganizationEventsEndpointBase from sentry.api.paginator import GenericOffsetPaginator from sentry.api.utils import handle_query_errors from sentry.issue_detection.detectors.utils import escape_transaction @@ -46,7 +46,7 @@ @region_silo_endpoint -class OrganizationEventsNewTrendsStatsEndpoint(OrganizationEventsV2EndpointBase): +class OrganizationEventsNewTrendsStatsEndpoint(OrganizationEventsEndpointBase): publish_status = { "GET": ApiPublishStatus.PRIVATE, } diff --git a/src/sentry/api/endpoints/organization_events_vitals.py b/src/sentry/api/endpoints/organization_events_vitals.py index 3d081046ff853f..30245724235636 100644 --- a/src/sentry/api/endpoints/organization_events_vitals.py +++ b/src/sentry/api/endpoints/organization_events_vitals.py @@ -6,7 +6,7 @@ from sentry import features from sentry.api.api_publish_status import ApiPublishStatus from sentry.api.base import region_silo_endpoint -from sentry.api.bases import NoProjects, OrganizationEventsV2EndpointBase +from sentry.api.bases import NoProjects, OrganizationEventsEndpointBase from sentry.api.utils import handle_query_errors from sentry.models.organization import Organization from sentry.search.events.fields import get_function_alias @@ -14,7 +14,7 @@ @region_silo_endpoint -class OrganizationEventsVitalsEndpoint(OrganizationEventsV2EndpointBase): +class OrganizationEventsVitalsEndpoint(OrganizationEventsEndpointBase): publish_status = { "GET": ApiPublishStatus.PRIVATE, } diff --git a/src/sentry/api/endpoints/organization_on_demand_metrics_estimation_stats.py b/src/sentry/api/endpoints/organization_on_demand_metrics_estimation_stats.py index 3fdce282d167de..01e7d26ac9b1da 100644 --- a/src/sentry/api/endpoints/organization_on_demand_metrics_estimation_stats.py +++ b/src/sentry/api/endpoints/organization_on_demand_metrics_estimation_stats.py @@ -12,7 +12,7 @@ from sentry.api.api_owners import ApiOwner from sentry.api.api_publish_status import ApiPublishStatus from sentry.api.base import region_silo_endpoint -from sentry.api.bases import OrganizationEventsV2EndpointBase +from sentry.api.bases import OrganizationEventsEndpointBase from sentry.models.organization import Organization from sentry.search.events import fields from sentry.search.events.types import SnubaParams @@ -52,7 +52,7 @@ class StatsQualityEstimation(Enum): @region_silo_endpoint -class OrganizationOnDemandMetricsEstimationStatsEndpoint(OrganizationEventsV2EndpointBase): +class OrganizationOnDemandMetricsEstimationStatsEndpoint(OrganizationEventsEndpointBase): """Gets the estimated volume of an organization's metric events.""" publish_status = { diff --git a/src/sentry/api/endpoints/organization_profiling_functions.py b/src/sentry/api/endpoints/organization_profiling_functions.py index 768f0710f2e5cc..a2482538ef4c2b 100644 --- a/src/sentry/api/endpoints/organization_profiling_functions.py +++ b/src/sentry/api/endpoints/organization_profiling_functions.py @@ -12,7 +12,7 @@ from sentry.api.api_owners import ApiOwner from sentry.api.api_publish_status import ApiPublishStatus from sentry.api.base import region_silo_endpoint -from sentry.api.bases import NoProjects, OrganizationEventsV2EndpointBase +from sentry.api.bases import NoProjects, OrganizationEventsEndpointBase from sentry.api.paginator import GenericOffsetPaginator from sentry.api.utils import handle_query_errors from sentry.exceptions import InvalidSearchQuery @@ -66,7 +66,7 @@ class FunctionTrendsSerializer(serializers.Serializer): @region_silo_endpoint -class OrganizationProfilingFunctionTrendsEndpoint(OrganizationEventsV2EndpointBase): +class OrganizationProfilingFunctionTrendsEndpoint(OrganizationEventsEndpointBase): owner = ApiOwner.PROFILING publish_status = { "GET": ApiPublishStatus.PRIVATE, diff --git a/src/sentry/api/endpoints/organization_profiling_profiles.py b/src/sentry/api/endpoints/organization_profiling_profiles.py index 133e4e1c46fa9b..b8e9aeb0c04494 100644 --- a/src/sentry/api/endpoints/organization_profiling_profiles.py +++ b/src/sentry/api/endpoints/organization_profiling_profiles.py @@ -11,7 +11,7 @@ from sentry.api.api_owners import ApiOwner from sentry.api.api_publish_status import ApiPublishStatus from sentry.api.base import region_silo_endpoint -from sentry.api.bases import NoProjects, OrganizationEventsV2EndpointBase +from sentry.api.bases import NoProjects, OrganizationEventsEndpointBase from sentry.api.utils import handle_query_errors from sentry.models.organization import Organization from sentry.profiles.flamegraph import FlamegraphExecutor @@ -22,7 +22,7 @@ from sentry.utils.snuba import raw_snql_query -class OrganizationProfilingBaseEndpoint(OrganizationEventsV2EndpointBase): +class OrganizationProfilingBaseEndpoint(OrganizationEventsEndpointBase): owner = ApiOwner.PROFILING publish_status = { "GET": ApiPublishStatus.PRIVATE, diff --git a/src/sentry/api/endpoints/organization_spans_fields.py b/src/sentry/api/endpoints/organization_spans_fields.py index 067527399ccbd0..e9c7ba2940919e 100644 --- a/src/sentry/api/endpoints/organization_spans_fields.py +++ b/src/sentry/api/endpoints/organization_spans_fields.py @@ -17,7 +17,7 @@ from sentry.api.api_owners import ApiOwner from sentry.api.api_publish_status import ApiPublishStatus from sentry.api.base import region_silo_endpoint -from sentry.api.bases import NoProjects, OrganizationEventsV2EndpointBase +from sentry.api.bases import NoProjects, OrganizationEventsEndpointBase from sentry.api.event_search import translate_escape_sequences from sentry.api.paginator import ChainPaginator from sentry.api.serializers import serialize @@ -54,7 +54,7 @@ def as_tag_key(name: str, type: Literal["string", "number"]): } -class OrganizationSpansFieldsEndpointBase(OrganizationEventsV2EndpointBase): +class OrganizationSpansFieldsEndpointBase(OrganizationEventsEndpointBase): publish_status = { "GET": ApiPublishStatus.PRIVATE, } diff --git a/src/sentry/api/endpoints/organization_spans_fields_stats.py b/src/sentry/api/endpoints/organization_spans_fields_stats.py index 7fac80cacdae77..bfb62837c16f2b 100644 --- a/src/sentry/api/endpoints/organization_spans_fields_stats.py +++ b/src/sentry/api/endpoints/organization_spans_fields_stats.py @@ -12,7 +12,7 @@ from sentry.api.api_owners import ApiOwner from sentry.api.api_publish_status import ApiPublishStatus from sentry.api.base import region_silo_endpoint -from sentry.api.bases import NoProjects, OrganizationEventsV2EndpointBase +from sentry.api.bases import NoProjects, OrganizationEventsEndpointBase from sentry.models.organization import Organization from sentry.search.eap.resolver import SearchResolver from sentry.search.eap.spans.definitions import SPAN_DEFINITIONS @@ -29,7 +29,7 @@ class OrganizationSpansFieldsStatsEndpointSerializer(serializers.Serializer): @region_silo_endpoint -class OrganizationSpansFieldsStatsEndpoint(OrganizationEventsV2EndpointBase): +class OrganizationSpansFieldsStatsEndpoint(OrganizationEventsEndpointBase): publish_status = { "GET": ApiPublishStatus.EXPERIMENTAL, } diff --git a/src/sentry/api/endpoints/organization_trace.py b/src/sentry/api/endpoints/organization_trace.py index ae680f29a3732a..f380459634c71b 100644 --- a/src/sentry/api/endpoints/organization_trace.py +++ b/src/sentry/api/endpoints/organization_trace.py @@ -7,7 +7,7 @@ from sentry import features from sentry.api.api_publish_status import ApiPublishStatus from sentry.api.base import region_silo_endpoint -from sentry.api.bases import NoProjects, OrganizationEventsV2EndpointBase +from sentry.api.bases import NoProjects, OrganizationEventsEndpointBase from sentry.api.paginator import GenericOffsetPaginator from sentry.api.utils import handle_query_errors, update_snuba_params_with_timestamp from sentry.models.organization import Organization @@ -19,7 +19,7 @@ @region_silo_endpoint -class OrganizationTraceEndpoint(OrganizationEventsV2EndpointBase): +class OrganizationTraceEndpoint(OrganizationEventsEndpointBase): """Replaces OrganizationEventsTraceEndpoint""" publish_status = { diff --git a/src/sentry/api/endpoints/organization_trace_item_attributes.py b/src/sentry/api/endpoints/organization_trace_item_attributes.py index 318edcf710a0cc..2c6bbe2b844821 100644 --- a/src/sentry/api/endpoints/organization_trace_item_attributes.py +++ b/src/sentry/api/endpoints/organization_trace_item_attributes.py @@ -19,7 +19,7 @@ from sentry.api.api_owners import ApiOwner from sentry.api.api_publish_status import ApiPublishStatus from sentry.api.base import region_silo_endpoint -from sentry.api.bases import NoProjects, OrganizationEventsV2EndpointBase +from sentry.api.bases import NoProjects, OrganizationEventsEndpointBase from sentry.api.endpoints.organization_spans_fields import BaseSpanFieldValuesAutocompletionExecutor from sentry.api.event_search import translate_escape_sequences from sentry.api.paginator import ChainPaginator, GenericOffsetPaginator @@ -100,7 +100,7 @@ def get_result(self, limit, cursor=None): ) -class OrganizationTraceItemAttributesEndpointBase(OrganizationEventsV2EndpointBase): +class OrganizationTraceItemAttributesEndpointBase(OrganizationEventsEndpointBase): publish_status = { "GET": ApiPublishStatus.PRIVATE, } diff --git a/src/sentry/api/endpoints/organization_trace_item_attributes_ranked.py b/src/sentry/api/endpoints/organization_trace_item_attributes_ranked.py index 4dfa67000bf5de..47e87ff8617565 100644 --- a/src/sentry/api/endpoints/organization_trace_item_attributes_ranked.py +++ b/src/sentry/api/endpoints/organization_trace_item_attributes_ranked.py @@ -16,7 +16,7 @@ from sentry.api.api_owners import ApiOwner from sentry.api.api_publish_status import ApiPublishStatus from sentry.api.base import region_silo_endpoint -from sentry.api.bases import NoProjects, OrganizationEventsV2EndpointBase +from sentry.api.bases import NoProjects, OrganizationEventsEndpointBase from sentry.exceptions import InvalidSearchQuery from sentry.models.organization import Organization from sentry.search.eap.resolver import SearchResolver @@ -34,7 +34,7 @@ @region_silo_endpoint -class OrganizationTraceItemsAttributesRankedEndpoint(OrganizationEventsV2EndpointBase): +class OrganizationTraceItemsAttributesRankedEndpoint(OrganizationEventsEndpointBase): publish_status = { "GET": ApiPublishStatus.PRIVATE, } diff --git a/src/sentry/api/endpoints/organization_trace_item_stats.py b/src/sentry/api/endpoints/organization_trace_item_stats.py index f89faaa7f33957..47f105947aafaf 100644 --- a/src/sentry/api/endpoints/organization_trace_item_stats.py +++ b/src/sentry/api/endpoints/organization_trace_item_stats.py @@ -7,7 +7,7 @@ from sentry.api.api_owners import ApiOwner from sentry.api.api_publish_status import ApiPublishStatus from sentry.api.base import region_silo_endpoint -from sentry.api.bases import NoProjects, OrganizationEventsV2EndpointBase +from sentry.api.bases import NoProjects, OrganizationEventsEndpointBase from sentry.models.organization import Organization from sentry.search.eap.constants import SUPPORTED_STATS_TYPES from sentry.search.eap.resolver import SearchResolver @@ -27,7 +27,7 @@ class OrganizationTraceItemsStatsSerializer(serializers.Serializer): @region_silo_endpoint -class OrganizationTraceItemsStatsEndpoint(OrganizationEventsV2EndpointBase): +class OrganizationTraceItemsStatsEndpoint(OrganizationEventsEndpointBase): publish_status = { "GET": ApiPublishStatus.PRIVATE, } diff --git a/src/sentry/api/endpoints/organization_trace_logs.py b/src/sentry/api/endpoints/organization_trace_logs.py index cd51df3664f2e4..6eec1b30882fa4 100644 --- a/src/sentry/api/endpoints/organization_trace_logs.py +++ b/src/sentry/api/endpoints/organization_trace_logs.py @@ -6,7 +6,7 @@ from sentry.api.api_publish_status import ApiPublishStatus from sentry.api.base import region_silo_endpoint -from sentry.api.bases import NoProjects, OrganizationEventsV2EndpointBase +from sentry.api.bases import NoProjects, OrganizationEventsEndpointBase from sentry.api.paginator import GenericOffsetPaginator from sentry.api.utils import handle_query_errors, update_snuba_params_with_timestamp from sentry.models.organization import Organization @@ -21,7 +21,7 @@ @region_silo_endpoint -class OrganizationTraceLogsEndpoint(OrganizationEventsV2EndpointBase): +class OrganizationTraceLogsEndpoint(OrganizationEventsEndpointBase): """Replaces a call to events that isn't possible for team plans because of projects restrictions""" publish_status = { diff --git a/src/sentry/api/endpoints/organization_trace_meta.py b/src/sentry/api/endpoints/organization_trace_meta.py index 37cb7b48cee62f..b326c8655b0252 100644 --- a/src/sentry/api/endpoints/organization_trace_meta.py +++ b/src/sentry/api/endpoints/organization_trace_meta.py @@ -9,7 +9,7 @@ from sentry.api.api_publish_status import ApiPublishStatus from sentry.api.base import region_silo_endpoint -from sentry.api.bases import NoProjects, OrganizationEventsV2EndpointBase +from sentry.api.bases import NoProjects, OrganizationEventsEndpointBase from sentry.api.endpoints.organization_events_trace import count_performance_issues from sentry.api.utils import handle_query_errors, update_snuba_params_with_timestamp from sentry.models.organization import Organization @@ -52,7 +52,7 @@ def extract_uptime_count(uptime_result: list[TraceItemTableResponse]) -> int: @region_silo_endpoint -class OrganizationTraceMetaEndpoint(OrganizationEventsV2EndpointBase): +class OrganizationTraceMetaEndpoint(OrganizationEventsEndpointBase): publish_status = { "GET": ApiPublishStatus.PRIVATE, } diff --git a/src/sentry/api/endpoints/organization_traces.py b/src/sentry/api/endpoints/organization_traces.py index 33286e7df1eff8..6549a5147ab5c9 100644 --- a/src/sentry/api/endpoints/organization_traces.py +++ b/src/sentry/api/endpoints/organization_traces.py @@ -30,7 +30,7 @@ from sentry.api.api_owners import ApiOwner from sentry.api.api_publish_status import ApiPublishStatus from sentry.api.base import region_silo_endpoint -from sentry.api.bases import NoProjects, OrganizationEventsV2EndpointBase +from sentry.api.bases import NoProjects, OrganizationEventsEndpointBase from sentry.api.paginator import GenericOffsetPaginator from sentry.api.utils import handle_query_errors from sentry.exceptions import InvalidSearchQuery @@ -123,7 +123,7 @@ def handle_span_query_errors() -> Generator[None]: raise InvalidSearchQuery(TIMEOUT_SPAN_ERROR_MESSAGE) -class OrganizationTracesEndpointBase(OrganizationEventsV2EndpointBase): +class OrganizationTracesEndpointBase(OrganizationEventsEndpointBase): publish_status = { "GET": ApiPublishStatus.EXPERIMENTAL, } diff --git a/src/sentry/api/endpoints/project_transaction_threshold_override.py b/src/sentry/api/endpoints/project_transaction_threshold_override.py index 95bbd472165cc0..c53215dfd8709e 100644 --- a/src/sentry/api/endpoints/project_transaction_threshold_override.py +++ b/src/sentry/api/endpoints/project_transaction_threshold_override.py @@ -7,7 +7,7 @@ from sentry.api.api_publish_status import ApiPublishStatus from sentry.api.base import region_silo_endpoint from sentry.api.bases import ProjectTransactionThresholdOverridePermission -from sentry.api.bases.organization_events import OrganizationEventsV2EndpointBase +from sentry.api.bases.organization_events import OrganizationEventsEndpointBase from sentry.api.serializers import serialize from sentry.models.organization import Organization from sentry.models.transaction_threshold import ( @@ -57,7 +57,7 @@ def validate(self, data): @region_silo_endpoint -class ProjectTransactionThresholdOverrideEndpoint(OrganizationEventsV2EndpointBase): +class ProjectTransactionThresholdOverrideEndpoint(OrganizationEventsEndpointBase): publish_status = { "DELETE": ApiPublishStatus.PRIVATE, "GET": ApiPublishStatus.PRIVATE, diff --git a/src/sentry/replays/endpoints/organization_replay_count.py b/src/sentry/replays/endpoints/organization_replay_count.py index 41c0ddc4543224..54c64fdd89aacf 100644 --- a/src/sentry/replays/endpoints/organization_replay_count.py +++ b/src/sentry/replays/endpoints/organization_replay_count.py @@ -12,7 +12,7 @@ from sentry.api.api_publish_status import ApiPublishStatus from sentry.api.base import region_silo_endpoint from sentry.api.bases import NoProjects -from sentry.api.bases.organization_events import OrganizationEventsV2EndpointBase +from sentry.api.bases.organization_events import OrganizationEventsEndpointBase from sentry.apidocs.constants import RESPONSE_BAD_REQUEST, RESPONSE_FORBIDDEN from sentry.apidocs.examples.replay_examples import ReplayExamples from sentry.apidocs.parameters import GlobalParams, OrganizationParams, VisibilityParams @@ -37,7 +37,7 @@ class ReplayCountQueryParamsValidator(serializers.Serializer): @region_silo_endpoint @extend_schema(tags=["Replays"]) -class OrganizationReplayCountEndpoint(OrganizationEventsV2EndpointBase): +class OrganizationReplayCountEndpoint(OrganizationEventsEndpointBase): """ Get all the replay ids associated with a set of issues/transactions in discover, then verify that they exist in the replays dataset, and return the count. diff --git a/src/sentry/replays/endpoints/organization_replay_events_meta.py b/src/sentry/replays/endpoints/organization_replay_events_meta.py index e752a7e804c129..8a7fcc4a223af6 100644 --- a/src/sentry/replays/endpoints/organization_replay_events_meta.py +++ b/src/sentry/replays/endpoints/organization_replay_events_meta.py @@ -8,15 +8,14 @@ from sentry.api.api_owners import ApiOwner from sentry.api.api_publish_status import ApiPublishStatus from sentry.api.base import region_silo_endpoint -from sentry.api.bases import NoProjects, OrganizationEventsV2EndpointBase +from sentry.api.bases import NoProjects, OrganizationEventsEndpointBase from sentry.api.paginator import GenericOffsetPaginator from sentry.api.utils import reformat_timestamp_ms_to_isoformat from sentry.models.organization import Organization @region_silo_endpoint -class OrganizationReplayEventsMetaEndpoint(OrganizationEventsV2EndpointBase): - # TODO: now that cross-project selection is enabled for all plans, we may be able to consolidate this with the generic OrganizationEventsV2Endpoint +class OrganizationReplayEventsMetaEndpoint(OrganizationEventsEndpointBase): """The generic Events endpoints require that the cross-project selection feature be enabled before they return across multiple projects. diff --git a/src/sentry/seer/endpoints/organization_events_anomalies.py b/src/sentry/seer/endpoints/organization_events_anomalies.py index 5742b16ce111c7..2a32c606baed05 100644 --- a/src/sentry/seer/endpoints/organization_events_anomalies.py +++ b/src/sentry/seer/endpoints/organization_events_anomalies.py @@ -7,7 +7,7 @@ from sentry.api.api_publish_status import ApiPublishStatus from sentry.api.base import region_silo_endpoint from sentry.api.bases.organization import OrganizationAlertRulePermission -from sentry.api.bases.organization_events import OrganizationEventsV2EndpointBase +from sentry.api.bases.organization_events import OrganizationEventsEndpointBase from sentry.api.exceptions import ResourceDoesNotExist from sentry.api.serializers.base import serialize from sentry.apidocs.constants import ( @@ -27,7 +27,7 @@ @region_silo_endpoint -class OrganizationEventsAnomaliesEndpoint(OrganizationEventsV2EndpointBase): +class OrganizationEventsAnomaliesEndpoint(OrganizationEventsEndpointBase): owner = ApiOwner.ALERTS_NOTIFICATIONS publish_status = { "POST": ApiPublishStatus.EXPERIMENTAL, diff --git a/tests/acceptance/test_organization_events_v2.py b/tests/acceptance/test_organization_events_v2.py index a00ab71093f8d0..82353da48dfe98 100644 --- a/tests/acceptance/test_organization_events_v2.py +++ b/tests/acceptance/test_organization_events_v2.py @@ -155,7 +155,7 @@ def build_span_tree( @no_silo_test -class OrganizationEventsV2Test(AcceptanceTestCase, SnubaTestCase): +class OrganizationEventsTest(AcceptanceTestCase, SnubaTestCase): def setUp(self) -> None: super().setUp() self.user = self.create_user("foo@example.com", is_superuser=True) diff --git a/tests/sentry/integrations/slack/test_unfurl.py b/tests/sentry/integrations/slack/test_unfurl.py index 279cac69772026..5b12de290093dd 100644 --- a/tests/sentry/integrations/slack/test_unfurl.py +++ b/tests/sentry/integrations/slack/test_unfurl.py @@ -484,7 +484,7 @@ def test_unfurl_metric_alerts_chart_eap_spans(self, mock_generate_chart: MagicMo assert chart_data["incidents"][0]["id"] == str(incident.id) @patch( - "sentry.api.bases.organization_events.OrganizationEventsV2EndpointBase.get_event_stats_data", + "sentry.api.bases.organization_events.OrganizationEventsEndpointBase.get_event_stats_data", ) @patch("sentry.charts.backend.generate_chart", return_value="chart-url") def test_unfurl_metric_alerts_chart_eap_spans_events_stats_call( @@ -531,7 +531,7 @@ def test_unfurl_metric_alerts_chart_eap_spans_events_stats_call( assert dataset == Spans @patch( - "sentry.api.bases.organization_events.OrganizationEventsV2EndpointBase.get_event_stats_data", + "sentry.api.bases.organization_events.OrganizationEventsEndpointBase.get_event_stats_data", ) @patch("sentry.charts.backend.generate_chart", return_value="chart-url") def test_unfurl_metric_alerts_chart_eap_ourlogs_events_stats_call( @@ -627,7 +627,7 @@ def test_unfurl_metric_alerts_chart_crash_free(self, mock_generate_chart: MagicM assert len(chart_data["incidents"]) == 0 @patch( - "sentry.api.bases.organization_events.OrganizationEventsV2EndpointBase.get_event_stats_data", + "sentry.api.bases.organization_events.OrganizationEventsEndpointBase.get_event_stats_data", return_value={ "data": [(i * INTERVAL_COUNT, [{"count": 0}]) for i in range(INTERVALS_PER_DAY)], "end": 1652903400, @@ -662,7 +662,7 @@ def test_unfurl_discover(self, mock_generate_chart: MagicMock, _: MagicMock) -> assert len(chart_data["stats"]["data"]) == INTERVALS_PER_DAY @patch( - "sentry.api.bases.organization_events.OrganizationEventsV2EndpointBase.get_event_stats_data", + "sentry.api.bases.organization_events.OrganizationEventsEndpointBase.get_event_stats_data", return_value={ "data": [ (i * INTERVAL_COUNT, [{"count": 0}]) for i in range(int(INTERVALS_PER_DAY / 6)) @@ -702,7 +702,7 @@ def test_unfurl_discover_previous_period( assert len(chart_data["stats"]["data"]) == 48 @patch( - "sentry.api.bases.organization_events.OrganizationEventsV2EndpointBase.get_event_stats_data", + "sentry.api.bases.organization_events.OrganizationEventsEndpointBase.get_event_stats_data", return_value={ "count()": { "data": [(i * INTERVAL_COUNT, [{"count": 0}]) for i in range(INTERVALS_PER_DAY)], @@ -750,7 +750,7 @@ def test_unfurl_discover_multi_y_axis( assert len(chart_data["stats"]["count_unique(user)"]["data"]) == INTERVALS_PER_DAY @patch( - "sentry.api.bases.organization_events.OrganizationEventsV2EndpointBase.get_event_stats_data", + "sentry.api.bases.organization_events.OrganizationEventsEndpointBase.get_event_stats_data", return_value={ "data": [(i * INTERVAL_COUNT, [{"count": 0}]) for i in range(INTERVALS_PER_DAY)], "end": 1652903400, @@ -787,7 +787,7 @@ def test_unfurl_discover_html_escaped( assert len(chart_data["stats"]["data"]) == INTERVALS_PER_DAY @patch( - "sentry.api.bases.organization_events.OrganizationEventsV2EndpointBase.get_event_stats_data", + "sentry.api.bases.organization_events.OrganizationEventsEndpointBase.get_event_stats_data", return_value={ "default,first,capable-hagfish,None": { "data": [(i * INTERVAL_COUNT, [{"count": 0}]) for i in range(INTERVALS_PER_DAY)], @@ -859,7 +859,7 @@ def test_unfurl_discover_short_url(self, mock_generate_chart: MagicMock, _: Magi assert len(chart_data["stats"][first_key]["data"]) == INTERVALS_PER_DAY @patch( - "sentry.api.bases.organization_events.OrganizationEventsV2EndpointBase.get_event_stats_data", + "sentry.api.bases.organization_events.OrganizationEventsEndpointBase.get_event_stats_data", return_value={ "data": [(i * INTERVAL_COUNT, [{"count": 0}]) for i in range(INTERVALS_PER_DAY)], "end": 1652903400, @@ -921,7 +921,7 @@ def test_unfurl_correct_y_axis_for_saved_query( assert len(chart_data["stats"]["data"]) == INTERVALS_PER_DAY @patch( - "sentry.api.bases.organization_events.OrganizationEventsV2EndpointBase.get_event_stats_data", + "sentry.api.bases.organization_events.OrganizationEventsEndpointBase.get_event_stats_data", return_value={ "default,first": { "data": [(i * INTERVAL_COUNT, [{"count": 0}]) for i in range(INTERVALS_PER_DAY)], @@ -976,7 +976,7 @@ def test_top_events_url_param(self, mock_generate_chart: MagicMock, _: MagicMock # patched return value determined by reading events stats output @patch( - "sentry.api.bases.organization_events.OrganizationEventsV2EndpointBase.get_event_stats_data", + "sentry.api.bases.organization_events.OrganizationEventsEndpointBase.get_event_stats_data", return_value={ "default,second": { "data": [(1212121, [{"count": 15}]), (1652659200, [{"count": 12}])], @@ -1044,7 +1044,7 @@ def test_top_daily_events_renders_bar_chart( assert len(chart_data["stats"][first_key]["data"]) == 2 @patch( - "sentry.api.bases.organization_events.OrganizationEventsV2EndpointBase.get_event_stats_data", + "sentry.api.bases.organization_events.OrganizationEventsEndpointBase.get_event_stats_data", return_value={ "data": [(i * INTERVAL_COUNT, [{"count": 0}]) for i in range(INTERVALS_PER_DAY)], "end": 1652903400, @@ -1102,7 +1102,7 @@ def test_unfurl_discover_short_url_without_project_ids( assert len(chart_data["stats"]["data"]) == INTERVALS_PER_DAY @patch( - "sentry.api.bases.organization_events.OrganizationEventsV2EndpointBase.get_event_stats_data", + "sentry.api.bases.organization_events.OrganizationEventsEndpointBase.get_event_stats_data", return_value={ "data": [(i * INTERVAL_COUNT, [{"count": 0}]) for i in range(INTERVALS_PER_DAY)], "end": 1652903400, @@ -1149,7 +1149,7 @@ def test_unfurl_discover_without_project_ids( # patched return value determined by reading events stats output @patch( - "sentry.api.bases.organization_events.OrganizationEventsV2EndpointBase.get_event_stats_data", + "sentry.api.bases.organization_events.OrganizationEventsEndpointBase.get_event_stats_data", return_value={ "default,second": { "data": [(1212121, [{"count": 15}]), (1652659200, [{"count": 12}])], @@ -1328,7 +1328,7 @@ def test_saved_query_with_interval( assert api_mock.call_args[1]["params"]["interval"] == "10m" @patch( - "sentry.api.bases.organization_events.OrganizationEventsV2EndpointBase.get_event_stats_data", + "sentry.api.bases.organization_events.OrganizationEventsEndpointBase.get_event_stats_data", ) @patch("sentry.charts.backend.generate_chart", return_value="chart-url") def test_saved_query_with_dataset( @@ -1383,7 +1383,7 @@ def test_saved_query_with_dataset( assert dataset == transactions @patch( - "sentry.api.bases.organization_events.OrganizationEventsV2EndpointBase.get_event_stats_data", + "sentry.api.bases.organization_events.OrganizationEventsEndpointBase.get_event_stats_data", return_value={ "data": [(i * INTERVAL_COUNT, [{"count": 0}]) for i in range(INTERVALS_PER_DAY)], "end": 1652903400,