From 8ff0cfddf453848446f5ddfd60e0def90994843b Mon Sep 17 00:00:00 2001 From: Andrew Hackmann <5140848+bossinc@users.noreply.github.com> Date: Wed, 20 Dec 2023 09:24:44 -0600 Subject: [PATCH] Azure Monitor: Fix multi-resource bug "Missing required region params, requested QueryParams: api-version:2017-12-01-preview..." (#79669) * actually fix the bug * prettier --- .../azure_monitor/url_builder.test.ts | 16 ++++++++++++++++ .../azuremonitor/azure_monitor/url_builder.ts | 6 +++--- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/public/app/plugins/datasource/azuremonitor/azure_monitor/url_builder.test.ts b/public/app/plugins/datasource/azuremonitor/azure_monitor/url_builder.test.ts index bcb86a35b5c..fddceba7918 100644 --- a/public/app/plugins/datasource/azuremonitor/azure_monitor/url_builder.test.ts +++ b/public/app/plugins/datasource/azuremonitor/azure_monitor/url_builder.test.ts @@ -174,6 +174,22 @@ describe('AzureMonitorUrlBuilder', () => { '/subscriptions/sub/resource-uri/resource/providers/microsoft.insights/metricdefinitions?api-version=2017-05-01-preview&metricnamespace=custom%2Fnamespace' ); }); + + it('adds a region with multiple resources', () => { + const url = UrlBuilder.buildAzureMonitorGetMetricNamesUrl( + 'baseUrl', + 'apiVersion', + { + resourceUri: '/subscriptions/sub/resource-uri/resource', + }, + templateSrv, + true, + 'region' + ); + expect(url).toBe( + 'baseUrl/subscriptions/sub/resource-uri/resource/providers/microsoft.insights/metricdefinitions?api-version=apiVersion®ion=region' + ); + }); }); describe('Legacy query object', () => { diff --git a/public/app/plugins/datasource/azuremonitor/azure_monitor/url_builder.ts b/public/app/plugins/datasource/azuremonitor/azure_monitor/url_builder.ts index 1b5aae85712..15230fb526e 100644 --- a/public/app/plugins/datasource/azuremonitor/azure_monitor/url_builder.ts +++ b/public/app/plugins/datasource/azuremonitor/azure_monitor/url_builder.ts @@ -104,10 +104,10 @@ export default class UrlBuilder { if (multipleResources && !customNamespace && metricNamespace) { url += `&metricnamespace=${encodeURIComponent(metricNamespace)}`; + } - if (region) { - url += `®ion=${region}`; - } + if (region && multipleResources) { + url += `®ion=${region}`; } return url;