mirror of
https://github.com/prometheus/prometheus.git
synced 2025-02-21 03:16:00 -08:00
feat(scaleway-sd): add labels for multiple routed IPs
Signed-off-by: Jules Casteran <jcasteran@scaleway.com>
This commit is contained in:
parent
f5eff89811
commit
05713e9c63
|
@ -35,28 +35,30 @@ import (
|
||||||
const (
|
const (
|
||||||
instanceLabelPrefix = metaLabelPrefix + "instance_"
|
instanceLabelPrefix = metaLabelPrefix + "instance_"
|
||||||
|
|
||||||
instanceBootTypeLabel = instanceLabelPrefix + "boot_type"
|
instanceBootTypeLabel = instanceLabelPrefix + "boot_type"
|
||||||
instanceHostnameLabel = instanceLabelPrefix + "hostname"
|
instanceHostnameLabel = instanceLabelPrefix + "hostname"
|
||||||
instanceIDLabel = instanceLabelPrefix + "id"
|
instanceIDLabel = instanceLabelPrefix + "id"
|
||||||
instanceImageArchLabel = instanceLabelPrefix + "image_arch"
|
instanceImageArchLabel = instanceLabelPrefix + "image_arch"
|
||||||
instanceImageIDLabel = instanceLabelPrefix + "image_id"
|
instanceImageIDLabel = instanceLabelPrefix + "image_id"
|
||||||
instanceImageNameLabel = instanceLabelPrefix + "image_name"
|
instanceImageNameLabel = instanceLabelPrefix + "image_name"
|
||||||
instanceLocationClusterID = instanceLabelPrefix + "location_cluster_id"
|
instanceLocationClusterID = instanceLabelPrefix + "location_cluster_id"
|
||||||
instanceLocationHypervisorID = instanceLabelPrefix + "location_hypervisor_id"
|
instanceLocationHypervisorID = instanceLabelPrefix + "location_hypervisor_id"
|
||||||
instanceLocationNodeID = instanceLabelPrefix + "location_node_id"
|
instanceLocationNodeID = instanceLabelPrefix + "location_node_id"
|
||||||
instanceNameLabel = instanceLabelPrefix + "name"
|
instanceNameLabel = instanceLabelPrefix + "name"
|
||||||
instanceOrganizationLabel = instanceLabelPrefix + "organization_id"
|
instanceOrganizationLabel = instanceLabelPrefix + "organization_id"
|
||||||
instancePrivateIPv4Label = instanceLabelPrefix + "private_ipv4"
|
instancePrivateIPv4Label = instanceLabelPrefix + "private_ipv4"
|
||||||
instanceProjectLabel = instanceLabelPrefix + "project_id"
|
instanceProjectLabel = instanceLabelPrefix + "project_id"
|
||||||
instancePublicIPv4Label = instanceLabelPrefix + "public_ipv4"
|
instancePublicIPv4Label = instanceLabelPrefix + "public_ipv4"
|
||||||
instancePublicIPv6Label = instanceLabelPrefix + "public_ipv6"
|
instancePublicIPv6Label = instanceLabelPrefix + "public_ipv6"
|
||||||
instanceSecurityGroupIDLabel = instanceLabelPrefix + "security_group_id"
|
instancePublicIPv4AddressesLabel = instanceLabelPrefix + "public_ipv4_addresses"
|
||||||
instanceSecurityGroupNameLabel = instanceLabelPrefix + "security_group_name"
|
instancePublicIPv6AddressesLabel = instanceLabelPrefix + "public_ipv6_addresses"
|
||||||
instanceStateLabel = instanceLabelPrefix + "status"
|
instanceSecurityGroupIDLabel = instanceLabelPrefix + "security_group_id"
|
||||||
instanceTagsLabel = instanceLabelPrefix + "tags"
|
instanceSecurityGroupNameLabel = instanceLabelPrefix + "security_group_name"
|
||||||
instanceTypeLabel = instanceLabelPrefix + "type"
|
instanceStateLabel = instanceLabelPrefix + "status"
|
||||||
instanceZoneLabel = instanceLabelPrefix + "zone"
|
instanceTagsLabel = instanceLabelPrefix + "tags"
|
||||||
instanceRegionLabel = instanceLabelPrefix + "region"
|
instanceTypeLabel = instanceLabelPrefix + "type"
|
||||||
|
instanceZoneLabel = instanceLabelPrefix + "zone"
|
||||||
|
instanceRegionLabel = instanceLabelPrefix + "region"
|
||||||
)
|
)
|
||||||
|
|
||||||
type instanceDiscovery struct {
|
type instanceDiscovery struct {
|
||||||
|
@ -175,6 +177,34 @@ func (d *instanceDiscovery) refresh(ctx context.Context) ([]*targetgroup.Group,
|
||||||
}
|
}
|
||||||
|
|
||||||
addr := ""
|
addr := ""
|
||||||
|
if len(server.PublicIPs) > 0 {
|
||||||
|
var ipv4Addresses []string
|
||||||
|
var ipv6Addresses []string
|
||||||
|
|
||||||
|
for _, ip := range server.PublicIPs {
|
||||||
|
if ip.Family == instance.ServerIPIPFamilyInet {
|
||||||
|
ipv4Addresses = append(ipv4Addresses, ip.Address.String())
|
||||||
|
} else if ip.Family == instance.ServerIPIPFamilyInet6 {
|
||||||
|
ipv6Addresses = append(ipv6Addresses, ip.Address.String())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(ipv6Addresses) > 0 {
|
||||||
|
addr = ipv6Addresses[0]
|
||||||
|
labels[instancePublicIPv6AddressesLabel] = model.LabelValue(
|
||||||
|
separator +
|
||||||
|
strings.Join(ipv6Addresses, separator) +
|
||||||
|
separator)
|
||||||
|
}
|
||||||
|
if len(ipv4Addresses) > 0 {
|
||||||
|
addr = ipv4Addresses[0]
|
||||||
|
labels[instancePublicIPv4AddressesLabel] = model.LabelValue(
|
||||||
|
separator +
|
||||||
|
strings.Join(ipv4Addresses, separator) +
|
||||||
|
separator)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if server.IPv6 != nil { //nolint:staticcheck
|
if server.IPv6 != nil { //nolint:staticcheck
|
||||||
labels[instancePublicIPv6Label] = model.LabelValue(server.IPv6.Address.String()) //nolint:staticcheck
|
labels[instancePublicIPv6Label] = model.LabelValue(server.IPv6.Address.String()) //nolint:staticcheck
|
||||||
addr = server.IPv6.Address.String() //nolint:staticcheck
|
addr = server.IPv6.Address.String() //nolint:staticcheck
|
||||||
|
|
|
@ -125,6 +125,8 @@ api_url: %s
|
||||||
"__meta_scaleway_instance_organization_id": "20b3d507-96ac-454c-a795-bc731b46b12f",
|
"__meta_scaleway_instance_organization_id": "20b3d507-96ac-454c-a795-bc731b46b12f",
|
||||||
"__meta_scaleway_instance_project_id": "20b3d507-96ac-454c-a795-bc731b46b12f",
|
"__meta_scaleway_instance_project_id": "20b3d507-96ac-454c-a795-bc731b46b12f",
|
||||||
"__meta_scaleway_instance_public_ipv4": "51.158.183.115",
|
"__meta_scaleway_instance_public_ipv4": "51.158.183.115",
|
||||||
|
"__meta_scaleway_instance_public_ipv4_addresses": ",51.158.183.115,",
|
||||||
|
"__meta_scaleway_instance_public_ipv6_addresses": ",2001:bc8:1640:1568:dc00:ff:fe21:91b,",
|
||||||
"__meta_scaleway_instance_region": "nl-ams",
|
"__meta_scaleway_instance_region": "nl-ams",
|
||||||
"__meta_scaleway_instance_security_group_id": "984414da-9fc2-49c0-a925-fed6266fe092",
|
"__meta_scaleway_instance_security_group_id": "984414da-9fc2-49c0-a925-fed6266fe092",
|
||||||
"__meta_scaleway_instance_security_group_name": "Default security group",
|
"__meta_scaleway_instance_security_group_name": "Default security group",
|
||||||
|
|
Loading…
Reference in a new issue