a6a939cfd3
* fix: azuremonitor adds multi-sub support to alerting
* fix: AzureMonitor missing parameter in metadata func
getMetricMetadata function when called in the query ctrl
was missing a parameter for Subscription Id.
Also, made some tweaks to what happens when a chained
dropdown is changed to not reset all the fields that
are dependent on it.
(cherry picked from commit fa9ffe38d2)
37 lines
1.1 KiB
Go
37 lines
1.1 KiB
Go
package azuremonitor
|
|
|
|
import (
|
|
"fmt"
|
|
"strings"
|
|
)
|
|
|
|
// urlBuilder builds the URL for calling the Azure Monitor API
|
|
type urlBuilder struct {
|
|
DefaultSubscription string
|
|
Subscription string
|
|
ResourceGroup string
|
|
MetricDefinition string
|
|
ResourceName string
|
|
}
|
|
|
|
// Build checks the metric definition property to see which form of the url
|
|
// should be returned
|
|
func (ub *urlBuilder) Build() string {
|
|
|
|
subscription := ub.Subscription
|
|
|
|
if ub.Subscription == "" {
|
|
subscription = ub.DefaultSubscription
|
|
}
|
|
|
|
if strings.Count(ub.MetricDefinition, "/") > 1 {
|
|
rn := strings.Split(ub.ResourceName, "/")
|
|
lastIndex := strings.LastIndex(ub.MetricDefinition, "/")
|
|
service := ub.MetricDefinition[lastIndex+1:]
|
|
md := ub.MetricDefinition[0:lastIndex]
|
|
return fmt.Sprintf("%s/resourceGroups/%s/providers/%s/%s/%s/%s/providers/microsoft.insights/metrics", subscription, ub.ResourceGroup, md, rn[0], service, rn[1])
|
|
}
|
|
|
|
return fmt.Sprintf("%s/resourceGroups/%s/providers/%s/%s/providers/microsoft.insights/metrics", subscription, ub.ResourceGroup, ub.MetricDefinition, ub.ResourceName)
|
|
}
|