Commit graph

1349 commits

Author SHA1 Message Date
Michael Derynck
7455966b89
Add a simple phone number ban mechanism (#4557)
# What this PR does

Add a simple list for maintaining phone numbers to restrict from SMS,
voice and verify. Works by removing the number as verified and block
future verification attempts with that number rather than check every
operation since all operations already check if a number is verified.

## Which issue(s) this PR closes

<!--
*Note*: if you have more than one GitHub issue that this PR closes, be
sure to preface
each issue link with a [closing
keyword](https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/using-keywords-in-issues-and-pull-requests#linking-a-pull-request-to-an-issue).
This ensures that the issue(s) are auto-closed once the PR has been
merged.
-->

## Checklist

- [x] Unit, integration, and e2e (if applicable) tests updated
- [x] Documentation added (or `pr:no public docs` PR label added if not
required)
- [x] Added the relevant release notes label (see labels prefixed w/
`release:`). These labels dictate how your PR will
    show up in the autogenerated release notes.
2024-06-20 16:09:24 +00:00
Vadim Stepanov
b7dbb2a26e
Support message shortcut broadcast (#4518)
# What this PR does

Related to https://github.com/grafana/oncall-gateway/issues/206

## Checklist

- [x] Unit, integration, and e2e (if applicable) tests updated
- [x] Documentation added (or `pr:no public docs` PR label added if not
required)
- [x] Added the relevant release notes label (see labels prefixed w/
`release:`). These labels dictate how your PR will
    show up in the autogenerated release notes.
2024-06-17 10:31:43 +00:00
Innokentii Konstantinov
6c63f53889
Handle slack uninstall event from chatops-proxy (#4510) 2024-06-14 07:46:14 +00:00
Joey Orlando
b7112140d3
fix flaky test 2024-06-11 13:58:53 -04:00
Joey Orlando
a4e399cf07
fix flaky tests + increase runner size when building docker image (#4502)
## Which issue(s) this PR closes

Closes https://github.com/grafana/oncall-private/issues/2733
2024-06-11 10:53:17 -04:00
Joey Orlando
49d20f1a7e
bump uwsgi to 2.0.26 + Python to 3.12.3 (#4495)
# What this PR does

- bumps `uwsgi` to latest version (`2.0.26`), which unblocks us from
bumping Python to 3.12
- bumps Python to 3.12.3
- refactor the Snyk GitHub Actions workflow to use the composable
actions for installed frontend and backend dependencies
- fixes several `AttributeError`s in our tests that went from a warning
to an error in Python 3.12 (see
https://github.com/python/cpython/issues/100690)

# Which issue(s) this PR closes

Closes #4358
Closes https://github.com/grafana/oncall/issues/4387
2024-06-10 15:33:37 -04:00
Ildar Iskhakov
5ffbc18dc6
Remove Simulate Incident button (#4479)
# What this PR does

Removes "Simulate Incident" button which is replaced by "Send Demo
Alert" button

Co-authored-by: Joey Orlando <joey.orlando@grafana.com>
2024-06-07 13:54:45 +00:00
Ildar Iskhakov
a9ff1cbc33
Handle SlackAPIRatelimitError in perform_notification (#4486)
# What this PR does

Fixes retrying perform_notification task when Slack API returns 429
(Ratelimited)
See
[thread](https://raintank-corp.slack.com/archives/C025VMT6SPK/p1717725432075029)
for more details

## Which issue(s) this PR closes

Closes [issue link here]

<!--
*Note*: if you have more than one GitHub issue that this PR closes, be
sure to preface
each issue link with a [closing
keyword](https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/using-keywords-in-issues-and-pull-requests#linking-a-pull-request-to-an-issue).
This ensures that the issue(s) are auto-closed once the PR has been
merged.
-->

## Checklist

- [ ] Unit, integration, and e2e (if applicable) tests updated
- [ ] Documentation added (or `pr:no public docs` PR label added if not
required)
- [ ] Added the relevant release notes label (see labels prefixed w/
`release:`). These labels dictate how your PR will
    show up in the autogenerated release notes.
2024-06-07 13:54:45 +00:00
Vadim Stepanov
f47f9c29fd
Update resolution note message shortcut instruction (#4482)
# What this PR does

Updates the instruction that pops up when clicking the `Add Resolution
notes` button in Slack with an up-to-date GIF.

## Checklist

- [x] Unit, integration, and e2e (if applicable) tests updated
- [x] Documentation added (or `pr:no public docs` PR label added if not
required)
- [x] Added the relevant release notes label (see labels prefixed w/
`release:`). These labels dictate how your PR will
    show up in the autogenerated release notes.
2024-06-07 13:54:45 +00:00
clemthom
28190fe6b7
add exotel call provider (#4433)
# What this PR does

Added support for [Exotel](https://exotel.com/) call provider. 

Features:

- Sending verification code through SMS
- Making test call
- Making notification call


## Checklist

- [x] Unit, integration, and e2e (if applicable) tests updated
- [x] Documentation added (or `pr:no public docs` PR label added if not
required)
- [x] Added the relevant release notes label (see labels prefixed w/
`release:`). These labels dictate how your PR will
    show up in the autogenerated release notes.
2024-06-06 06:19:02 +00:00
Innokentii Konstantinov
805d4421bd
Support grafana escalate (#4453)
# What this PR does
This PR adds support for **/grafana escalate** command alongside with
**/escalate.**
2024-06-05 05:51:26 +00:00
Vadim Stepanov
f40634a6eb
only validate existing settings (#4459)
# What this PR does

Only validate live settings in `AVAILABLE_NAMES` to avoid issues when a
live setting is renamed (one of the settings was renamed in
https://github.com/grafana/oncall/pull/4287 earlier)

## Checklist

- [x] Unit, integration, and e2e (if applicable) tests updated
- [x] Documentation added (or `pr:no public docs` PR label added if not
required)
- [x] Added the relevant release notes label (see labels prefixed w/
`release:`). These labels dictate how your PR will
    show up in the autogenerated release notes.
2024-06-04 19:06:59 +00:00
Vadim Stepanov
b3a56cdffc
Reduce size of payload on /escalate Slack command (#4458) 2024-06-04 18:11:15 +00:00
Andrey Oleynik
0acb66bd1a
conditionally enable searching for alert groups via env var (#4287)
# What this PR does

re-enables the search for alert groups

## Which issue(s) this PR closes

Closes #2232

<!--
*Note*: if you have more than one GitHub issue that this PR closes, be
sure to preface
each issue link with a [closing
keyword](https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/using-keywords-in-issues-and-pull-requests#linking-a-pull-request-to-an-issue).
This ensures that the issue(s) are auto-closed once the PR has been
merged.
-->

## Checklist

- [x] Unit, integration, and e2e (if applicable) tests updated
- [x] Documentation added (or `pr:no public docs` PR label added if not
required)
- [x] Added the relevant release notes label (see labels prefixed w/
`release:`). These labels dictate how your PR will
    show up in the autogenerated release notes.

---------

Co-authored-by: Joey Orlando <joey.orlando@grafana.com>
Co-authored-by: Joey Orlando <joseph.t.orlando@gmail.com>
2024-06-04 11:51:02 +00:00
Andrey Oleynik
d0dd15453e
change zvonok call verification (#4393)
# Change zvonok call verification

After May 27, the Zvonok service will block number verification that was
not set up as part of the phone number verification campaign. This PR
modifies the number verification process.

<!--
*Note*: if you have more than one GitHub issue that this PR closes, be
sure to preface
each issue link with a [closing
keyword](https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/using-keywords-in-issues-and-pull-requests#linking-a-pull-request-to-an-issue).
This ensures that the issue(s) are auto-closed once the PR has been
merged.
-->

## Checklist

- [x] Unit, integration, and e2e (if applicable) tests updated
- [x] Documentation added (or `pr:no public docs` PR label added if not
required)
- [x] Added the relevant release notes label (see labels prefixed w/
`release:`). These labels dictate how your PR will
    show up in the autogenerated release notes.

Co-authored-by: Innokentii Konstantinov <innokenty.konstantinov@grafana.com>
2024-06-04 05:34:57 +00:00
Vadim Stepanov
fafc336795
Allow custom wait delay (#4446)
# What this PR does

Same as https://github.com/grafana/oncall/pull/4422 but returns wait
delays as strings so it's backward-compatible with the mobile app API
calls.

## Which issue(s) this PR closes

Related to https://github.com/grafana/oncall/issues/2464

## Checklist

- [x] Unit, integration, and e2e (if applicable) tests updated
- [x] Documentation added (or `pr:no public docs` PR label added if not
required)
- [x] Added the relevant release notes label (see labels prefixed w/
`release:`). These labels dictate how your PR will
    show up in the autogenerated release notes.
2024-06-03 13:06:47 +00:00
Vadim Stepanov
e4170389dc
Revert "Allow custom wait delays" (#4441)
Reverts grafana/oncall#4422
2024-06-03 10:47:42 +00:00
Innokentii Konstantinov
17f448c506
Prepare OnCall for Unified Slack App (#4232)
This PR does a bunch of changes to prepare OnCall for Unified Slack App:
1. Install Slack via Chatops-Proxy. This change contains two parts:
getting a Slack install link from chatops-proxy
([code](https://github.com/grafana/oncall/pull/4232/files#diff-437a77d49fc04b92d315651b3df5991000b1ab74cf60aabb21aa77cb2823bf52R46))
and receiving a "slack installed" event from chatops-proxy
([code](https://github.com/grafana/oncall/pull/4232/files#diff-976d106f0962be5c1de5e35582193f68435ed0c17f2defd6bd2857bf6e27f65d)).
Also it means that OnCall doesn't need to register slack_links anymore
when slack is connected/disconnected. These changes are behind
UNIFIED_SLACK_APP_ENABLED flag and should be no-op if flag is not
enabled.
2. Get rid of Multiregionatily restrictions - instrument all slack
interactions with a ProxyMeta - json data telling chatops-proxy where to
route the interaction. Note, that it doesn't apply for "Add to
resolution notes" message action - it will be handled differently in
following PR.
3. Move all chatops-proxy related stuff from common/oncall-gateway to
apps/chatops-proxy

Minor changes:
1. Remove usage of **CHATOPS_V3** flag. Chatops v3 is already released
(It's a refactoring from previous quarter)

---------

Co-authored-by: Vadim Stepanov <vadimkerr@gmail.com>
Co-authored-by: Rares Mardare <rares.mardare@grafana.com>
2024-06-03 09:07:10 +00:00
Matias Bordese
2aa8639e2a
Update escalation auditor logs to expose succeeding count (#4431)
Related to https://github.com/grafana/oncall-private/issues/2619
(we need the succeeding number to make the SLO query happy with
cluster/namespace filtering)
2024-05-31 18:29:31 +00:00
Vadim Stepanov
d8e1a1dfae
Allow custom wait delays (#4422)
# What this PR does

Allows custom wait durations for:
* `Wait` escalation policy
* `>X alerts per Y minutes` escalation policy
* `Wait` user notification policy

## Which issue(s) this PR closes

Related to https://github.com/grafana/oncall/issues/2464

## Checklist

- [x] Unit, integration, and e2e (if applicable) tests updated
- [x] Documentation added (or `pr:no public docs` PR label added if not
required)
- [x] Added the relevant release notes label (see labels prefixed w/
`release:`). These labels dictate how your PR will
    show up in the autogenerated release notes.

---------

Co-authored-by: Rares Mardare <rares.mardare@grafana.com>
2024-05-31 13:18:59 +00:00
Matias Bordese
08d1e00430
Update escalation auditor to log total and failed escalations info (#4425)
Related to https://github.com/grafana/oncall-private/issues/2619
2024-05-30 18:53:53 +00:00
Matias Bordese
5291feeb51
Fix update slack group to not raise if group is not found (#4423)
Fixes https://github.com/grafana/oncall-private/issues/2664
2024-05-30 11:27:25 +00:00
Matias Bordese
8160482b5e
Fix team uniqueness db migration (#4416) 2024-05-28 19:41:42 +00:00
Vadim Stepanov
ef47e54f24
fix bad redirects (#4413) 2024-05-28 18:24:57 +00:00
Matias Bordese
6acbb71fad
Do not retry on SlackAPICantUpdateMessageError errors (#4405)
Related to https://github.com/grafana/oncall/pull/4329
2024-05-28 17:46:15 +00:00
Matias Bordese
7e3008ba0f
Setup team uniqueness at DB level (#4396)
Avoid potential duplicated teams. Also it should help ensuring
`sync_organization` idempotency.
2024-05-27 17:41:20 +00:00
Michael Derynck
357857faca
Add endpoint to get a single user group (#4395)
# What this PR does
Add endpoint to return slack user group from public primary key

## Which issue(s) this PR closes

<!--
*Note*: if you have more than one GitHub issue that this PR closes, be
sure to preface
each issue link with a [closing
keyword](https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/using-keywords-in-issues-and-pull-requests#linking-a-pull-request-to-an-issue).
This ensures that the issue(s) are auto-closed once the PR has been
merged.
-->

## Checklist

- [x] Unit, integration, and e2e (if applicable) tests updated
- [x] Documentation added (or `pr:no public docs` PR label added if not
required)
- [x] Added the relevant release notes label (see labels prefixed w/
`release:`). These labels dictate how your PR will
    show up in the autogenerated release notes.
2024-05-24 20:26:28 +00:00
Joey Orlando
a92203e71c
remove unnecessary CI step bash command (#4397)
# What this PR does

This command is no longer necessary. Currently it doesn't seem to be
working (see screenshot 👇). Presumably `netcat-traditional` is installed
on the `ubuntu-latest-8-cores` runner.

![Screenshot 2024-05-24 at 14 42
23](https://github.com/grafana/oncall/assets/9406895/dcb80711-6168-4885-a7b8-a05e323c03bf)
2024-05-24 15:13:38 -04:00
Joey Orlando
93ab3407ff
rename settings/ci-test.py to settings/ci_test.py (#4391)
# What this PR does

Related to Drone -> GitHub Actions migration
2024-05-24 13:55:08 +00:00
Matias Bordese
d316c9121e
Fix order filtering when executing notify all/group steps from snapshot (#4381)
Fixes https://github.com/grafana/oncall-private/issues/2708
2024-05-23 12:36:28 +00:00
Vadim Stepanov
f9f5ae9042
fix silence_options schema (#4384) 2024-05-23 11:06:00 +00:00
Vadim Stepanov
ce887e4b6f
Fix Slack user group warning false positives (#4367)
# What this PR does

Fixes Slack user group warning false positives on the schedule detail
page

## Checklist

- [x] Unit, integration, and e2e (if applicable) tests updated
- [x] Documentation added (or `pr:no public docs` PR label added if not
required)
- [x] Added the relevant release notes label (see labels prefixed w/
`release:`). These labels dictate how your PR will
    show up in the autogenerated release notes.
2024-05-22 15:43:59 +00:00
Joey Orlando
a3187953ec
remove deprecated rbac workaround (#4377)
## Checklist

- [x] Unit, integration, and e2e (if applicable) tests updated
- [x] Documentation added (or `pr:no public docs` PR label added if not
required)
- [x] Added the relevant release notes label (see labels prefixed w/
`release:`). These labels dictate how your PR will
    show up in the autogenerated release notes.
2024-05-22 15:27:16 +00:00
Yulya Artyukhina
f583da5b56
Add service_name label to insight metrics (#4300)
# What this PR does
Adds `service_name` label to insight metrics
NOTE: It is related to [this
PR](https://github.com/grafana/oncall/pull/4227) and should be merged no
sooner than two days after the next release (current release version is
1.4.4), because we need to wait for the metrics cache to be updated for
all organizations (uses the new cache structure with `services`)

## Which issue(s) this PR closes
Related to https://github.com/grafana/oncall-private/issues/2610

## Checklist

- [x] Unit, integration, and e2e (if applicable) tests updated
- [x] Documentation added (or `pr:no public docs` PR label added if not
required)
- [x] Added the relevant release notes label (see labels prefixed w/
`release:`). These labels dictate how your PR will
    show up in the autogenerated release notes.
2024-05-22 14:17:42 +00:00
Maxim Mordasov
a2859553ce
Fix AG date range based filters default values (#4354)
# What this PR does

Fix AG date range based filters default values

## Which issue(s) this PR closes


## Checklist

- [ ] Unit, integration, and e2e (if applicable) tests updated
- [x] Documentation added (or `pr:no public docs` PR label added if not
required)
- [x] Added the relevant release notes label (see labels prefixed w/
`release:`). These labels dictate how your PR will
    show up in the autogenerated release notes.

---------

Co-authored-by: Michael Derynck <michael.derynck@grafana.com>
2024-05-22 12:02:56 +00:00
Matias Bordese
3c58c2f6f8
Make type required when creating an escalation policy step (#4356)
Related to https://github.com/grafana/oncall-private/issues/2689
2024-05-20 13:49:19 +00:00
Joey Orlando
bd6d8f1aaf
fix typo 2024-05-15 11:10:04 -04:00
Joey Orlando
2582a1b1dc
Refactor how RBAC enabled/disabled status is determined for Grafana Cloud stacks (#4279)
# What this PR does

In cloud we are currently (somewhat) improperly determining whether or
not a Grafana stack had the `accessControlOnCall` feature flag enabled.
At first things worked fine. We would enable this feature toggle via the
Grafana Admin UI, and then the OnCall backend would read this value from
GCOM's `GET /instance/<stack_id>` endpoint (via
`config.feature_toggles`), and everything worked as expected.

There was a recent change made in `grafana/deployment_tools` to set this
feature flag to True for all stacks. However, for some reason, the GCOM
endpoint above doesn't return the `accessControlOnCall` feature toggle
value in `config.feature_toggles` if it is set in this manner (it only
returns the value if it is set via the Grafana Admin UI).

So what we should instead be doing is such instead of asking GCOM for
this feature toggle, infer whether RBAC is enabled on the stack by doing
a `HEAD /api/access-control/users/permissions/search` (this endpoint _is
only_ available on a Grafana stack if `accessControlOnCall` is enabled).

**Few caveats to this ☝️**
1. we first have to make sure that the cloud stack is in an `active`
state (ie. not paused). This is because, no matter if the
`accessControlOnCall` is enabled or not, if the stack is in a `paused`
state it will ALWAYS return `HTTP 200` which can be misleading and lead
to bugs (this feels like a bug on the Grafana API, will follow up with
core grafana team)
2. Once we roll out this change we will effectively **actually** be
enabling RBAC for OnCall for all orgs. The Identity Access team would
prefer a progressive rollout, which is why I decided to introduce the
concept of
[`settings.CLOUD_RBAC_ROLLOUT_PERCENTAGE`](https://github.com/grafana/oncall/pull/4279/files#diff-3383aef931e41e44d95829ad971641eeb98fe001be2f5da92217446d300ea1b3R918)
(see also [`Organization.
should_be_considered_for_rbac_permissioning`](https://github.com/grafana/oncall/pull/4279/files#diff-2ca9917f4f56349be39545ee8abd459be5076295d02ca3a7ec545152fcddccdfR348-R362))

## Which issue(s) this PR closes

Related to https://github.com/grafana/identity-access-team/issues/667

## Checklist

- [x] Unit, integration, and e2e (if applicable) tests updated
- [x] Documentation added (or `pr:no public docs` PR label added if not
required)
- [x] Added the relevant release notes label (see labels prefixed w/
`release:`). These labels dictate how your PR will
    show up in the autogenerated release notes.
2024-05-14 16:30:16 +00:00
Matias Bordese
b07b140383
Avoid generating response time value metrics for empty integrations (#4339)
This should help with ongoing issue generating too big metrics payloads
(issue introduced when including service name labels).
2024-05-13 17:23:22 +00:00
Matias Bordese
d70eeb12df
Improve query performance when fetching alert payload for templating (#4338)
Related to https://github.com/grafana/support-escalations/issues/10505
(getting only `id` is enough here and the query performs **much**
better)
2024-05-13 17:07:06 +00:00
Matias Bordese
d4ba57b68b
Avoid retrying to update Slack log message if cant_update_message (#4329)
Do not retry updating a message if Slack returns `cant_update_message`
API [error](https://api.slack.com/methods/chat.update#errors) (meaning
bot user has no permission to update the message).
2024-05-09 16:16:53 +00:00
Matias Bordese
832d044829
Update out of office task to not retry on HttpError (#4328)
Do not keep retrying on HttpErrors (eg. 403). Also, we will re-queued
periodically later.
2024-05-09 16:16:46 +00:00
Salvatore Giordano
720bcf983a
Update deep link URL for Slack messages (#4317)
# What this PR does

It updates the slack deep link url to respect the [correct
format](https://api.slack.com/reference/deep-linking#app_or_bot)
requested [here](https://github.com/grafana/oncall/issues/4122)

## Checklist

- [x] Unit, integration, and e2e (if applicable) tests updated
- [x] Documentation added (or `pr:no public docs` PR label added if not
required)
- [x] Added the relevant release notes label (see labels prefixed w/
`release:`). These labels dictate how your PR will
    show up in the autogenerated release notes.

---------

Co-authored-by: Ildar Iskhakov <Ildar.iskhakov@grafana.com>
2024-05-09 10:18:48 +00:00
Matias Bordese
01cb87cd62
Minor query optimizations (#4325)
Related to some API latency issues we were noticing.
2024-05-08 17:27:36 +00:00
Michael Derynck
8db285e4e8
Fix escalation chain webhooks executing when disabled (#4319)
# What this PR does
Fixes issue where custom webhooks that are part of an escalation chain
were still being executed even though they were disabled. Now the
attempt will be logged in the escalation log and noted that the webhook
was disabled.

## Which issue(s) this PR closes

<!--
*Note*: if you have more than one GitHub issue that this PR closes, be
sure to preface
each issue link with a [closing
keyword](https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/using-keywords-in-issues-and-pull-requests#linking-a-pull-request-to-an-issue).
This ensures that the issue(s) are auto-closed once the PR has been
merged.
-->

## Checklist

- [x] Unit, integration, and e2e (if applicable) tests updated
- [x] Documentation added (or `pr:no public docs` PR label added if not
required)
- [x] Added the relevant release notes label (see labels prefixed w/
`release:`). These labels dictate how your PR will
    show up in the autogenerated release notes.
2024-05-07 19:58:49 +00:00
Matias Bordese
d4095d8131
Set a timeout for mobile app incident proxy requests (#4306) 2024-05-03 13:00:06 +00:00
Maxim Mordasov
713c51ce07
Display human readable time ranges in AG filters (#4288)
# What this PR does

Display human readable time ranges in AG filters

## Which issue(s) this PR closes

Closes https://github.com/grafana/oncall/issues/4272

## Checklist

- [ ] Unit, integration, and e2e (if applicable) tests updated
- [x] Documentation added (or `pr:no public docs` PR label added if not
required)
- [x] Added the relevant release notes label (see labels prefixed w/
`release:`). These labels dictate how your PR will
    show up in the autogenerated release notes.

---------

Co-authored-by: Michael Derynck <michael.derynck@grafana.com>
2024-05-02 14:23:33 +00:00
Yulya Artyukhina
0790d45ab5
Fix calculating metrics from different services in metrics collector (#4297)
# What this PR does
Fix calculating metric values per integration from different services

## Checklist

- [x] Unit, integration, and e2e (if applicable) tests updated
- [x] Documentation added (or `pr:no public docs` PR label added if not
required)
- [x] Added the relevant release notes label (see labels prefixed w/
`release:`). These labels dictate how your PR will
    show up in the autogenerated release notes.
2024-04-29 12:08:53 +00:00
Yulya Artyukhina
d1085b718c
Prepare insight metrics structure for adding service_name label (#4227)
# What this PR does
Prepare insight metrics for adding `service_name` label.
This PR updates metrics cache structure, supporting both old and new
version of cache.
`service_name` label can be added with additional PR when all metric
cache is updated.

## Which issue(s) this PR closes
https://github.com/grafana/oncall-private/issues/2610

## Checklist

- [x] Unit, integration, and e2e (if applicable) tests updated
- [x] Documentation added (or `pr:no public docs` PR label added if not
required)
- [x] Added the relevant release notes label (see labels prefixed w/
`release:`). These labels dictate how your PR will
    show up in the autogenerated release notes.
2024-04-29 09:45:23 +00:00
Ravishankar
0e59fadf38
Add acknowledged, resolved user information on webhook payload (#4176)
# What this PR does
Adds acknowledged and resolved user information to the web hook payload

## Which issue(s) this PR closes

Closes #4126 

## Checklist

- [x] Unit, integration, and e2e (if applicable) tests updated
- [x] Documentation added (or `pr:no public docs` PR label added if not
required)
- [x] Added the relevant release notes label (see labels prefixed w/
`release:`). These labels dictate how your PR will
    show up in the autogenerated release notes.

---------

Co-authored-by: Joey Orlando <joey.orlando@grafana.com>
2024-04-26 21:50:08 +00:00