mirror of
https://github.com/grafana/grafana.git
synced 2024-12-01 21:19:28 -06:00
fa9ffe38d2
* 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.
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)
|
|
}
|