diff --git a/static/app/views/insights/database/views/databaseLandingPage.spec.tsx b/static/app/views/insights/database/views/databaseLandingPage.spec.tsx
index 31595a29e08fff..a35871ed650db1 100644
--- a/static/app/views/insights/database/views/databaseLandingPage.spec.tsx
+++ b/static/app/views/insights/database/views/databaseLandingPage.spec.tsx
@@ -225,4 +225,105 @@ describe('DatabaseLandingPage', function () {
screen.getByRole('cell', {name: 'SELECT * FROM organizations'})
).toBeInTheDocument();
});
+
+ it('filters by category and action', async function () {
+ jest.mocked(useLocation).mockReturnValue({
+ pathname: '',
+ search: '',
+ query: {
+ statsPeriod: '10d',
+ 'span.action': 'SELECT',
+ 'span.domain': 'organizations',
+ },
+ hash: '',
+ state: undefined,
+ action: 'PUSH',
+ key: '',
+ });
+
+ jest.spyOn(console, 'error').mockImplementation(jest.fn()); // This silences pointless unique key errors that React throws because of the tokenized query descriptions
+
+ render(, {organization});
+
+ await waitForElementToBeRemoved(() => screen.queryAllByTestId('loading-indicator'));
+
+ expect(spanChartsRequestMock).toHaveBeenNthCalledWith(
+ 1,
+ `/organizations/${organization.slug}/events-stats/`,
+ expect.objectContaining({
+ method: 'GET',
+ query: {
+ cursor: undefined,
+ dataset: 'spansMetrics',
+ environment: [],
+ excludeOther: 0,
+ field: [],
+ interval: '30m',
+ orderby: undefined,
+ partial: 1,
+ per_page: 50,
+ project: [],
+ query:
+ 'span.module:db has:span.description span.action:SELECT span.domain:organizations',
+ referrer: 'api.starfish.span-landing-page-metrics-chart',
+ statsPeriod: '10d',
+ topEvents: undefined,
+ yAxis: 'spm()',
+ },
+ })
+ );
+
+ expect(spanChartsRequestMock).toHaveBeenNthCalledWith(
+ 2,
+ `/organizations/${organization.slug}/events-stats/`,
+ expect.objectContaining({
+ method: 'GET',
+ query: {
+ cursor: undefined,
+ dataset: 'spansMetrics',
+ environment: [],
+ excludeOther: 0,
+ field: [],
+ interval: '30m',
+ orderby: undefined,
+ partial: 1,
+ per_page: 50,
+ project: [],
+ query:
+ 'span.module:db has:span.description span.action:SELECT span.domain:organizations',
+ referrer: 'api.starfish.span-landing-page-metrics-chart',
+ statsPeriod: '10d',
+ topEvents: undefined,
+ yAxis: 'avg(span.self_time)',
+ },
+ })
+ );
+
+ expect(spanListRequestMock).toHaveBeenCalledWith(
+ `/organizations/${organization.slug}/events/`,
+ expect.objectContaining({
+ method: 'GET',
+ query: {
+ dataset: 'spansMetrics',
+ environment: [],
+ field: [
+ 'project.id',
+ 'span.group',
+ 'span.description',
+ 'spm()',
+ 'avg(span.self_time)',
+ 'sum(span.self_time)',
+ 'time_spent_percentage()',
+ ],
+ per_page: 25,
+ project: [],
+ query:
+ 'span.module:db has:span.description span.action:SELECT span.domain:organizations',
+ referrer: 'api.starfish.use-span-list',
+ sort: '-time_spent_percentage()',
+ statsPeriod: '10d',
+ },
+ })
+ );
+ });
});
diff --git a/static/app/views/insights/database/views/databaseLandingPage.tsx b/static/app/views/insights/database/views/databaseLandingPage.tsx
index d972da2ffb401b..4ae40ccb532e91 100644
--- a/static/app/views/insights/database/views/databaseLandingPage.tsx
+++ b/static/app/views/insights/database/views/databaseLandingPage.tsx
@@ -21,7 +21,6 @@ import * as ModuleLayout from 'sentry/views/insights/common/components/moduleLay
import {ModulePageFilterBar} from 'sentry/views/insights/common/components/modulePageFilterBar';
import {ModulePageProviders} from 'sentry/views/insights/common/components/modulePageProviders';
import {ModulesOnboarding} from 'sentry/views/insights/common/components/modulesOnboarding';
-import {ToolRibbon} from 'sentry/views/insights/common/components/ribbon';
import {useSpanMetrics} from 'sentry/views/insights/common/queries/useDiscover';
import {useSpanMetricsSeries} from 'sentry/views/insights/common/queries/useDiscoverSeries';
import {useHasFirstSpan} from 'sentry/views/insights/common/queries/useHasFirstSpan';
@@ -82,7 +81,11 @@ export function DatabaseLandingPage() {
});
};
- const chartFilters = BASE_FILTERS;
+ const chartFilters = {
+ ...BASE_FILTERS,
+ 'span.action': spanAction,
+ 'span.domain': spanDomain,
+ };
const tableFilters = {
...BASE_FILTERS,
@@ -184,9 +187,13 @@ export function DatabaseLandingPage() {
- {organization.features.includes(
- 'performance-queries-mongodb-extraction'
- ) && }
+
+ {organization.features.includes(
+ 'performance-queries-mongodb-extraction'
+ ) && }
+
+
+
@@ -206,13 +213,6 @@ export function DatabaseLandingPage() {
/>
-
-
-
-
-
-
-