| 123456789101112131415161718192021222324252627282930313233343536 |
- 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)
- }
|