diff --git a/public/app/plugins/datasource/cloud-monitoring/components/GroupBy.test.tsx b/public/app/plugins/datasource/cloud-monitoring/components/GroupBy.test.tsx
index 7e66d77814e..7d3bfe885aa 100644
--- a/public/app/plugins/datasource/cloud-monitoring/components/GroupBy.test.tsx
+++ b/public/app/plugins/datasource/cloud-monitoring/components/GroupBy.test.tsx
@@ -1,4 +1,5 @@
import { render, screen } from '@testing-library/react';
+import userEvent from '@testing-library/user-event';
import React from 'react';
import { openMenu, select } from 'react-select-event';
@@ -40,4 +41,18 @@ describe('GroupBy', () => {
await select(groupBy, option, { container: document.body });
expect(onChange).toBeCalledWith(expect.objectContaining({ groupBys: expect.arrayContaining([option]) }));
});
+
+ it('can add a custom group by', async () => {
+ const onChange = jest.fn();
+ render();
+
+ const groupBy = screen.getByLabelText('Group by');
+ const option = 'metadata.custom.group_by';
+
+ await openMenu(groupBy);
+ expect(screen.queryByText(option)).not.toBeInTheDocument();
+ await userEvent.type(groupBy, `${option}{enter}`);
+
+ expect(onChange).toBeCalledWith(expect.objectContaining({ groupBys: expect.arrayContaining([option]) }));
+ });
});
diff --git a/public/app/plugins/datasource/cloud-monitoring/components/GroupBy.tsx b/public/app/plugins/datasource/cloud-monitoring/components/GroupBy.tsx
index 968690d3462..70dc93a0a43 100644
--- a/public/app/plugins/datasource/cloud-monitoring/components/GroupBy.tsx
+++ b/public/app/plugins/datasource/cloud-monitoring/components/GroupBy.tsx
@@ -40,6 +40,7 @@ export const GroupBy = ({
tooltip="You can reduce the amount of data returned for a metric by combining different time series. To combine multiple time series, you can specify a grouping and a function. Grouping is done on the basis of labels. The grouping function is used to combine the time series in the group into a single time series."
>