Skip to content

Commit

Permalink
Update azure exporter for ValidateDimension support
Browse files Browse the repository at this point in the history
  • Loading branch information
kgeckhart committed Dec 21, 2023
1 parent d113bc7 commit 63cabfb
Show file tree
Hide file tree
Showing 5 changed files with 87 additions and 67 deletions.
6 changes: 6 additions & 0 deletions component/prometheus/exporter/azure/azure.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ type Arguments struct {
MetricNameTemplate string `river:"metric_name_template,attr,optional"`
MetricHelpTemplate string `river:"metric_help_template,attr,optional"`
AzureCloudEnvironment string `river:"azure_cloud_environment,attr,optional"`
ValidateDimensions bool `river:"validate_dimensions,attr,optional"`
}

var DefaultArguments = Arguments{
Expand All @@ -43,6 +44,10 @@ var DefaultArguments = Arguments{
MetricHelpTemplate: "Azure metric {metric} for {type} with aggregation {aggregation} as {unit}",
IncludedResourceTags: []string{"owner"},
AzureCloudEnvironment: "azurecloud",
// Dimensions do not always apply to all metrics for a service, which requires you to configure multiple exporters
// to fully monitor a service which is tedious. Turning off validation eliminates this complexity. The underlying
// sdk will only give back the dimensions which are valid for particular metrics.
ValidateDimensions: false,
}

// SetToDefault implements river.Defaulter.
Expand Down Expand Up @@ -72,5 +77,6 @@ func (a *Arguments) Convert() *azure_exporter.Config {
MetricNameTemplate: a.MetricNameTemplate,
MetricHelpTemplate: a.MetricHelpTemplate,
AzureCloudEnvironment: a.AzureCloudEnvironment,
ValidateDimensions: a.ValidateDimensions,
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -25,5 +25,6 @@ func toAzureExporter(config *azure_exporter.Config) *azure.Arguments {
MetricNameTemplate: config.MetricNameTemplate,
MetricHelpTemplate: config.MetricHelpTemplate,
AzureCloudEnvironment: config.AzureCloudEnvironment,
ValidateDimensions: config.ValidateDimensions,
}
}
42 changes: 22 additions & 20 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ go 1.21.0

require (
cloud.google.com/go/pubsub v1.33.0
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.7.0
github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.3.0
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.9.0-beta.1
github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.4.0
github.com/Azure/go-autorest/autorest v0.11.29
github.com/IBM/sarama v1.42.1
github.com/Lusitaniae/apache_exporter v0.11.1-0.20220518131644-f9522724dab4
Expand Down Expand Up @@ -49,7 +49,7 @@ require (
github.com/google/go-jsonnet v0.18.0
github.com/google/pprof v0.0.0-20230926050212-f7f687d19a98
github.com/google/renameio/v2 v2.0.0
github.com/google/uuid v1.3.1
github.com/google/uuid v1.4.0
github.com/gorilla/mux v1.8.0
github.com/grafana/ckit v0.0.0-20230906125525-c046c99a5c04
github.com/grafana/cloudflare-go v0.0.0-20230110200409-c627cf6792f2
Expand Down Expand Up @@ -149,7 +149,7 @@ require (
github.com/prometheus/memcached_exporter v0.13.0
github.com/prometheus/mysqld_exporter v0.14.0
github.com/prometheus/node_exporter v1.6.0
github.com/prometheus/procfs v0.11.1
github.com/prometheus/procfs v0.12.0
github.com/prometheus/prometheus v1.99.0
github.com/prometheus/snmp_exporter v0.24.1
github.com/prometheus/statsd_exporter v0.22.8
Expand All @@ -165,8 +165,8 @@ require (
github.com/testcontainers/testcontainers-go/modules/k3s v0.0.0-20230615142642-c175df34bd1d
github.com/uber/jaeger-client-go v2.30.0+incompatible
github.com/vincent-petithory/dataurl v1.0.0
github.com/webdevops/azure-metrics-exporter v0.0.0-20230502203721-b2bfd97b5313
github.com/webdevops/go-common v0.0.0-20230612205735-2ee45347be15
github.com/webdevops/azure-metrics-exporter v0.0.0-20230717202958-8701afc2b013
github.com/webdevops/go-common v0.0.0-20231022162947-a6adfb05a7e9
github.com/wk8/go-ordered-map v0.2.0
github.com/xdg-go/scram v1.1.2
github.com/zeebo/xxh3 v1.0.2
Expand Down Expand Up @@ -225,13 +225,13 @@ require (
gopkg.in/yaml.v2 v2.4.0
gopkg.in/yaml.v3 v3.0.1
gotest.tools v2.2.0+incompatible
k8s.io/api v0.28.2
k8s.io/api v0.28.3
k8s.io/apiextensions-apiserver v0.28.0
k8s.io/apimachinery v0.28.2
k8s.io/client-go v0.28.2
k8s.io/apimachinery v0.28.3
k8s.io/client-go v0.28.3
k8s.io/component-base v0.28.1
k8s.io/klog/v2 v2.100.1
k8s.io/utils v0.0.0-20230711102312-30195339c3c7
k8s.io/utils v0.0.0-20230726121419-3b25d923346b
sigs.k8s.io/controller-runtime v0.16.2
sigs.k8s.io/yaml v1.3.0
)
Expand All @@ -246,12 +246,12 @@ require (
github.com/99designs/keyring v1.2.2 // indirect
github.com/AlekSi/pointer v1.1.0 // indirect
github.com/Azure/azure-sdk-for-go v66.0.0+incompatible // indirect
github.com/Azure/azure-sdk-for-go/sdk/internal v1.3.0 // indirect
github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/monitor/armmonitor v0.9.1 // indirect
github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph v0.7.1 // indirect
github.com/Azure/azure-sdk-for-go/sdk/internal v1.4.0 // indirect
github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/monitor/armmonitor v0.10.2 // indirect
github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph v0.8.2 // indirect
github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armresources v1.1.1 // indirect
github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armsubscriptions v1.2.0 // indirect
github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.0.0 // indirect
github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.2.0 // indirect
github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 // indirect
github.com/Azure/go-autorest v14.2.0+incompatible // indirect
github.com/Azure/go-autorest/autorest/adal v0.9.23 // indirect
Expand All @@ -262,9 +262,8 @@ require (
github.com/Azure/go-autorest/autorest/validation v0.3.1 // indirect
github.com/Azure/go-autorest/logger v0.2.1 // indirect
github.com/Azure/go-autorest/tracing v0.6.0 // indirect
github.com/AzureAD/microsoft-authentication-library-for-go v1.0.0 // indirect
github.com/AzureAD/microsoft-authentication-library-for-go v1.2.0 // indirect
github.com/BurntSushi/toml v1.2.1 // indirect
github.com/ChannelMeter/iso8601duration v0.0.0-20150204201828-8da3af7a2a61 // indirect
github.com/ClickHouse/clickhouse-go v1.5.4 // indirect
github.com/GehirnInc/crypt v0.0.0-20200316065508-bb7000b8a962 // indirect
github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c // indirect
Expand Down Expand Up @@ -343,7 +342,7 @@ require (
github.com/elastic/go-sysinfo v1.8.1 // indirect
github.com/elastic/go-windows v1.0.1 // indirect
github.com/ema/qdisc v1.0.0 // indirect
github.com/emicklei/go-restful/v3 v3.10.2 // indirect
github.com/emicklei/go-restful/v3 v3.11.0 // indirect
github.com/emirpasic/gods v1.12.0 // indirect
github.com/envoyproxy/go-control-plane v0.11.1 // indirect
github.com/envoyproxy/protoc-gen-validate v1.0.2 // indirect
Expand Down Expand Up @@ -590,7 +589,7 @@ require (
golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect
gomodules.xyz/jsonpatch/v2 v2.4.0 // indirect
gonum.org/v1/gonum v0.14.0 // indirect
google.golang.org/appengine v1.6.7 // indirect
google.golang.org/appengine v1.6.8 // indirect
google.golang.org/genproto v0.0.0-20231012201019-e917dd12ba7a // indirect
google.golang.org/genproto/googleapis/api v0.0.0-20231002182017-d307bd883b97 // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b // indirect
Expand All @@ -601,7 +600,7 @@ require (
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect
gopkg.in/warnings.v0 v0.1.2 // indirect
howett.net/plist v1.0.0 // indirect
k8s.io/kube-openapi v0.0.0-20230717233707-2695361300d9 // indirect
k8s.io/kube-openapi v0.0.0-20231010175941-2dd684a91f00 // indirect
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect
sigs.k8s.io/structured-merge-diff/v4 v4.3.0 // indirect
)
Expand All @@ -615,15 +614,18 @@ require (
github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor v0.87.0
github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.87.0
github.com/open-telemetry/opentelemetry-collector-contrib/receiver/vcenterreceiver v0.87.0
github.com/prometheus/tsdb v0.10.0
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v0.42.0
)

require (
dario.cat/mergo v1.0.0 // indirect
github.com/Shopify/sarama v1.38.1 // indirect
github.com/Workiva/go-datastructures v1.1.0 // indirect
github.com/channelmeter/iso8601duration v0.0.0-20150204201828-8da3af7a2a61 // indirect
github.com/drone/envsubst v1.0.3 // indirect
github.com/go-jose/go-jose/v3 v3.0.1 // indirect
github.com/go-jose/go-jose/v3 v3.0.0 // indirect
github.com/golang-jwt/jwt/v5 v5.0.0 // indirect
github.com/google/gnostic-models v0.6.8 // indirect
github.com/hetznercloud/hcloud-go/v2 v2.0.0 // indirect
github.com/julienschmidt/httprouter v1.3.0 // indirect
Expand Down
Loading

0 comments on commit 63cabfb

Please sign in to comment.