mirror of
https://github.com/prometheus/prometheus.git
synced 2024-12-24 05:04:05 -08:00
* Add VM size label to azure service discovery (#11575) Signed-off-by: davidifr <davidfr.mail@gmail.com> * Add VM size label to azure service discovery (#11575) Signed-off-by: davidifr <davidfr.mail@gmail.com> * Add VM size label to azure service discovery (#11575) Signed-off-by: davidifr <davidfr.mail@gmail.com> Signed-off-by: davidifr <davidfr.mail@gmail.com>
This commit is contained in:
parent
fc06260d88
commit
52adf55631
|
@ -55,6 +55,7 @@ const (
|
||||||
azureLabelMachinePublicIP = azureLabel + "machine_public_ip"
|
azureLabelMachinePublicIP = azureLabel + "machine_public_ip"
|
||||||
azureLabelMachineTag = azureLabel + "machine_tag_"
|
azureLabelMachineTag = azureLabel + "machine_tag_"
|
||||||
azureLabelMachineScaleSet = azureLabel + "machine_scale_set"
|
azureLabelMachineScaleSet = azureLabel + "machine_scale_set"
|
||||||
|
azureLabelMachineSize = azureLabel + "machine_size"
|
||||||
|
|
||||||
authMethodOAuth = "OAuth"
|
authMethodOAuth = "OAuth"
|
||||||
authMethodManagedIdentity = "ManagedIdentity"
|
authMethodManagedIdentity = "ManagedIdentity"
|
||||||
|
@ -261,6 +262,7 @@ type virtualMachine struct {
|
||||||
ScaleSet string
|
ScaleSet string
|
||||||
Tags map[string]*string
|
Tags map[string]*string
|
||||||
NetworkInterfaces []string
|
NetworkInterfaces []string
|
||||||
|
Size string
|
||||||
}
|
}
|
||||||
|
|
||||||
// Create a new azureResource object from an ID string.
|
// Create a new azureResource object from an ID string.
|
||||||
|
@ -343,6 +345,7 @@ func (d *Discovery) refresh(ctx context.Context) ([]*targetgroup.Group, error) {
|
||||||
azureLabelMachineOSType: model.LabelValue(vm.OsType),
|
azureLabelMachineOSType: model.LabelValue(vm.OsType),
|
||||||
azureLabelMachineLocation: model.LabelValue(vm.Location),
|
azureLabelMachineLocation: model.LabelValue(vm.Location),
|
||||||
azureLabelMachineResourceGroup: model.LabelValue(r.ResourceGroup),
|
azureLabelMachineResourceGroup: model.LabelValue(r.ResourceGroup),
|
||||||
|
azureLabelMachineSize: model.LabelValue(vm.Size),
|
||||||
}
|
}
|
||||||
|
|
||||||
if vm.ScaleSet != "" {
|
if vm.ScaleSet != "" {
|
||||||
|
@ -514,6 +517,7 @@ func mapFromVM(vm compute.VirtualMachine) virtualMachine {
|
||||||
tags := map[string]*string{}
|
tags := map[string]*string{}
|
||||||
networkInterfaces := []string{}
|
networkInterfaces := []string{}
|
||||||
var computerName string
|
var computerName string
|
||||||
|
var size string
|
||||||
|
|
||||||
if vm.Tags != nil {
|
if vm.Tags != nil {
|
||||||
tags = vm.Tags
|
tags = vm.Tags
|
||||||
|
@ -525,10 +529,13 @@ func mapFromVM(vm compute.VirtualMachine) virtualMachine {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if vm.VirtualMachineProperties != nil &&
|
if vm.VirtualMachineProperties != nil {
|
||||||
vm.VirtualMachineProperties.OsProfile != nil &&
|
if vm.VirtualMachineProperties.OsProfile != nil && vm.VirtualMachineProperties.OsProfile.ComputerName != nil {
|
||||||
vm.VirtualMachineProperties.OsProfile.ComputerName != nil {
|
computerName = *(vm.VirtualMachineProperties.OsProfile.ComputerName)
|
||||||
computerName = *(vm.VirtualMachineProperties.OsProfile.ComputerName)
|
}
|
||||||
|
if vm.VirtualMachineProperties.HardwareProfile != nil {
|
||||||
|
size = string(vm.VirtualMachineProperties.HardwareProfile.VMSize)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return virtualMachine{
|
return virtualMachine{
|
||||||
|
@ -541,6 +548,7 @@ func mapFromVM(vm compute.VirtualMachine) virtualMachine {
|
||||||
ScaleSet: "",
|
ScaleSet: "",
|
||||||
Tags: tags,
|
Tags: tags,
|
||||||
NetworkInterfaces: networkInterfaces,
|
NetworkInterfaces: networkInterfaces,
|
||||||
|
Size: size,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -549,6 +557,7 @@ func mapFromVMScaleSetVM(vm compute.VirtualMachineScaleSetVM, scaleSetName strin
|
||||||
tags := map[string]*string{}
|
tags := map[string]*string{}
|
||||||
networkInterfaces := []string{}
|
networkInterfaces := []string{}
|
||||||
var computerName string
|
var computerName string
|
||||||
|
var size string
|
||||||
|
|
||||||
if vm.Tags != nil {
|
if vm.Tags != nil {
|
||||||
tags = vm.Tags
|
tags = vm.Tags
|
||||||
|
@ -560,8 +569,13 @@ func mapFromVMScaleSetVM(vm compute.VirtualMachineScaleSetVM, scaleSetName strin
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if vm.VirtualMachineScaleSetVMProperties != nil && vm.VirtualMachineScaleSetVMProperties.OsProfile != nil {
|
if vm.VirtualMachineScaleSetVMProperties != nil {
|
||||||
computerName = *(vm.VirtualMachineScaleSetVMProperties.OsProfile.ComputerName)
|
if vm.VirtualMachineScaleSetVMProperties.OsProfile != nil && vm.VirtualMachineScaleSetVMProperties.OsProfile.ComputerName != nil {
|
||||||
|
computerName = *(vm.VirtualMachineScaleSetVMProperties.OsProfile.ComputerName)
|
||||||
|
}
|
||||||
|
if vm.VirtualMachineScaleSetVMProperties.HardwareProfile != nil {
|
||||||
|
size = string(vm.VirtualMachineScaleSetVMProperties.HardwareProfile.VMSize)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return virtualMachine{
|
return virtualMachine{
|
||||||
|
@ -574,6 +588,7 @@ func mapFromVMScaleSetVM(vm compute.VirtualMachineScaleSetVM, scaleSetName strin
|
||||||
ScaleSet: scaleSetName,
|
ScaleSet: scaleSetName,
|
||||||
Tags: tags,
|
Tags: tags,
|
||||||
NetworkInterfaces: networkInterfaces,
|
NetworkInterfaces: networkInterfaces,
|
||||||
|
Size: size,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -28,6 +28,7 @@ func TestMain(m *testing.M) {
|
||||||
func TestMapFromVMWithEmptyTags(t *testing.T) {
|
func TestMapFromVMWithEmptyTags(t *testing.T) {
|
||||||
id := "test"
|
id := "test"
|
||||||
name := "name"
|
name := "name"
|
||||||
|
size := "size"
|
||||||
vmType := "type"
|
vmType := "type"
|
||||||
location := "westeurope"
|
location := "westeurope"
|
||||||
computerName := "computer_name"
|
computerName := "computer_name"
|
||||||
|
@ -44,6 +45,9 @@ func TestMapFromVMWithEmptyTags(t *testing.T) {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
NetworkProfile: &networkProfile,
|
NetworkProfile: &networkProfile,
|
||||||
|
HardwareProfile: &compute.HardwareProfile{
|
||||||
|
VMSize: compute.VirtualMachineSizeTypes(size),
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
testVM := compute.VirtualMachine{
|
testVM := compute.VirtualMachine{
|
||||||
|
@ -64,6 +68,7 @@ func TestMapFromVMWithEmptyTags(t *testing.T) {
|
||||||
OsType: "Linux",
|
OsType: "Linux",
|
||||||
Tags: map[string]*string{},
|
Tags: map[string]*string{},
|
||||||
NetworkInterfaces: []string{},
|
NetworkInterfaces: []string{},
|
||||||
|
Size: size,
|
||||||
}
|
}
|
||||||
|
|
||||||
actualVM := mapFromVM(testVM)
|
actualVM := mapFromVM(testVM)
|
||||||
|
@ -74,6 +79,7 @@ func TestMapFromVMWithEmptyTags(t *testing.T) {
|
||||||
func TestMapFromVMWithTags(t *testing.T) {
|
func TestMapFromVMWithTags(t *testing.T) {
|
||||||
id := "test"
|
id := "test"
|
||||||
name := "name"
|
name := "name"
|
||||||
|
size := "size"
|
||||||
vmType := "type"
|
vmType := "type"
|
||||||
location := "westeurope"
|
location := "westeurope"
|
||||||
computerName := "computer_name"
|
computerName := "computer_name"
|
||||||
|
@ -93,6 +99,9 @@ func TestMapFromVMWithTags(t *testing.T) {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
NetworkProfile: &networkProfile,
|
NetworkProfile: &networkProfile,
|
||||||
|
HardwareProfile: &compute.HardwareProfile{
|
||||||
|
VMSize: compute.VirtualMachineSizeTypes(size),
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
testVM := compute.VirtualMachine{
|
testVM := compute.VirtualMachine{
|
||||||
|
@ -113,6 +122,7 @@ func TestMapFromVMWithTags(t *testing.T) {
|
||||||
OsType: "Linux",
|
OsType: "Linux",
|
||||||
Tags: tags,
|
Tags: tags,
|
||||||
NetworkInterfaces: []string{},
|
NetworkInterfaces: []string{},
|
||||||
|
Size: size,
|
||||||
}
|
}
|
||||||
|
|
||||||
actualVM := mapFromVM(testVM)
|
actualVM := mapFromVM(testVM)
|
||||||
|
@ -123,6 +133,7 @@ func TestMapFromVMWithTags(t *testing.T) {
|
||||||
func TestMapFromVMScaleSetVMWithEmptyTags(t *testing.T) {
|
func TestMapFromVMScaleSetVMWithEmptyTags(t *testing.T) {
|
||||||
id := "test"
|
id := "test"
|
||||||
name := "name"
|
name := "name"
|
||||||
|
size := "size"
|
||||||
vmType := "type"
|
vmType := "type"
|
||||||
location := "westeurope"
|
location := "westeurope"
|
||||||
computerName := "computer_name"
|
computerName := "computer_name"
|
||||||
|
@ -139,6 +150,9 @@ func TestMapFromVMScaleSetVMWithEmptyTags(t *testing.T) {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
NetworkProfile: &networkProfile,
|
NetworkProfile: &networkProfile,
|
||||||
|
HardwareProfile: &compute.HardwareProfile{
|
||||||
|
VMSize: compute.VirtualMachineSizeTypes(size),
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
testVM := compute.VirtualMachineScaleSetVM{
|
testVM := compute.VirtualMachineScaleSetVM{
|
||||||
|
@ -161,6 +175,7 @@ func TestMapFromVMScaleSetVMWithEmptyTags(t *testing.T) {
|
||||||
Tags: map[string]*string{},
|
Tags: map[string]*string{},
|
||||||
NetworkInterfaces: []string{},
|
NetworkInterfaces: []string{},
|
||||||
ScaleSet: scaleSet,
|
ScaleSet: scaleSet,
|
||||||
|
Size: size,
|
||||||
}
|
}
|
||||||
|
|
||||||
actualVM := mapFromVMScaleSetVM(testVM, scaleSet)
|
actualVM := mapFromVMScaleSetVM(testVM, scaleSet)
|
||||||
|
@ -171,6 +186,7 @@ func TestMapFromVMScaleSetVMWithEmptyTags(t *testing.T) {
|
||||||
func TestMapFromVMScaleSetVMWithTags(t *testing.T) {
|
func TestMapFromVMScaleSetVMWithTags(t *testing.T) {
|
||||||
id := "test"
|
id := "test"
|
||||||
name := "name"
|
name := "name"
|
||||||
|
size := "size"
|
||||||
vmType := "type"
|
vmType := "type"
|
||||||
location := "westeurope"
|
location := "westeurope"
|
||||||
computerName := "computer_name"
|
computerName := "computer_name"
|
||||||
|
@ -190,6 +206,9 @@ func TestMapFromVMScaleSetVMWithTags(t *testing.T) {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
NetworkProfile: &networkProfile,
|
NetworkProfile: &networkProfile,
|
||||||
|
HardwareProfile: &compute.HardwareProfile{
|
||||||
|
VMSize: compute.VirtualMachineSizeTypes(size),
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
testVM := compute.VirtualMachineScaleSetVM{
|
testVM := compute.VirtualMachineScaleSetVM{
|
||||||
|
@ -212,6 +231,7 @@ func TestMapFromVMScaleSetVMWithTags(t *testing.T) {
|
||||||
Tags: tags,
|
Tags: tags,
|
||||||
NetworkInterfaces: []string{},
|
NetworkInterfaces: []string{},
|
||||||
ScaleSet: scaleSet,
|
ScaleSet: scaleSet,
|
||||||
|
Size: size,
|
||||||
}
|
}
|
||||||
|
|
||||||
actualVM := mapFromVMScaleSetVM(testVM, scaleSet)
|
actualVM := mapFromVMScaleSetVM(testVM, scaleSet)
|
||||||
|
|
|
@ -452,6 +452,7 @@ The following meta labels are available on targets during [relabeling](#relabel_
|
||||||
* `__meta_azure_machine_resource_group`: the machine's resource group
|
* `__meta_azure_machine_resource_group`: the machine's resource group
|
||||||
* `__meta_azure_machine_tag_<tagname>`: each tag value of the machine
|
* `__meta_azure_machine_tag_<tagname>`: each tag value of the machine
|
||||||
* `__meta_azure_machine_scale_set`: the name of the scale set which the vm is part of (this value is only set if you are using a [scale set](https://docs.microsoft.com/en-us/azure/virtual-machine-scale-sets/))
|
* `__meta_azure_machine_scale_set`: the name of the scale set which the vm is part of (this value is only set if you are using a [scale set](https://docs.microsoft.com/en-us/azure/virtual-machine-scale-sets/))
|
||||||
|
* `__meta_azure_machine_size`: the machine size
|
||||||
* `__meta_azure_subscription_id`: the subscription ID
|
* `__meta_azure_subscription_id`: the subscription ID
|
||||||
* `__meta_azure_tenant_id`: the tenant ID
|
* `__meta_azure_tenant_id`: the tenant ID
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue