mirror of
https://github.com/grafana/grafana.git
synced 2025-02-16 18:34:52 -06:00
29 lines
899 B
Go
29 lines
899 B
Go
package azuremonitor
|
|
|
|
import (
|
|
"fmt"
|
|
"strings"
|
|
)
|
|
|
|
// URLBuilder builds the URL for calling the Azure Monitor API
|
|
type URLBuilder struct {
|
|
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 {
|
|
|
|
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("resourceGroups/%s/providers/%s/%s/%s/%s/providers/microsoft.insights/metrics", ub.ResourceGroup, md, rn[0], service, rn[1])
|
|
}
|
|
|
|
return fmt.Sprintf("resourceGroups/%s/providers/%s/%s/providers/microsoft.insights/metrics", ub.ResourceGroup, ub.MetricDefinition, ub.ResourceName)
|
|
}
|