mirror of
https://github.com/grafana/grafana.git
synced 2025-01-09 23:53:25 -06:00
41d432b5ae
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
36 lines
1.1 KiB
Go
36 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)
|
|
}
|