mirror of
https://github.com/grafana/grafana.git
synced 2025-02-11 16:15:42 -06:00
AzureMonitor: fix the encoding of the metrics query deep link to Azure Portal (#48139)
This commit is contained in:
parent
c1c94f478a
commit
9829195829
@ -368,6 +368,10 @@ func getQueryUrl(query *types.AzureMonitorQuery, azurePortalUrl string) (string,
|
||||
return "", err
|
||||
}
|
||||
escapedChart := url.QueryEscape(string(chartDef))
|
||||
// Azure Portal will timeout if the chart definition includes a space character encoded as '+'.
|
||||
// url.QueryEscape encodes spaces as '+'.
|
||||
// Note: this will not encode '+' literals as those are already encoded as '%2B' by url.QueryEscape
|
||||
escapedChart = strings.ReplaceAll(escapedChart, "+", "%20")
|
||||
|
||||
return fmt.Sprintf("%s/#blade/Microsoft_Azure_MonitoringMetrics/Metrics.ReactView/Referer/MetricsExplorer/TimeContext/%s/ChartDefinition/%s", azurePortalUrl, escapedTime, escapedChart), nil
|
||||
}
|
||||
|
@ -188,7 +188,7 @@ func TestAzureMonitorBuildQueries(t *testing.T) {
|
||||
expected := `http://ds/#blade/Microsoft_Azure_MonitoringMetrics/Metrics.ReactView/Referer/MetricsExplorer/` +
|
||||
`TimeContext/%7B%22absolute%22%3A%7B%22startTime%22%3A%222018-03-15T13%3A00%3A00Z%22%2C%22endTime%22%3A%222018-03-15T13%3A34%3A00Z%22%7D%7D/` +
|
||||
`ChartDefinition/%7B%22v2charts%22%3A%5B%7B%22metrics%22%3A%5B%7B%22resourceMetadata%22%3A%7B%22id%22%3A%22%2Fsubscriptions%2F12345678-aaaa-bbbb-cccc-123456789abc%2FresourceGroups%2Fgrafanastaging%2Fproviders%2FMicrosoft.Compute%2FvirtualMachines%2Fgrafana%22%7D%2C` +
|
||||
`%22name%22%3A%22Percentage+CPU%22%2C%22aggregationType%22%3A4%2C%22namespace%22%3A%22Microsoft.Compute-virtualMachines%22%2C%22metricVisualization%22%3A%7B%22displayName%22%3A%22Percentage+CPU%22%2C%22resourceDisplayName%22%3A%22grafana%22%7D%7D%5D%7D%5D%7D`
|
||||
`%22name%22%3A%22Percentage%20CPU%22%2C%22aggregationType%22%3A4%2C%22namespace%22%3A%22Microsoft.Compute-virtualMachines%22%2C%22metricVisualization%22%3A%7B%22displayName%22%3A%22Percentage%20CPU%22%2C%22resourceDisplayName%22%3A%22grafana%22%7D%7D%5D%7D%5D%7D`
|
||||
actual, err := getQueryUrl(queries[0], "http://ds")
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, expected, actual)
|
||||
|
Loading…
Reference in New Issue
Block a user