mirror of
https://github.com/prometheus/prometheus.git
synced 2025-01-12 06:17:27 -08:00
Merge pull request #13314 from prometheus/cut-2.49-rc.1
Cut 2.49 rc.1 + cherry pick Azure fix
This commit is contained in:
commit
1e306856a6
|
@ -1,5 +1,9 @@
|
|||
# Changelog
|
||||
|
||||
## 2.49.0-rc.1 / 2023-12-19
|
||||
|
||||
* [BUGFIX] SD: Fix Azure VM Scale Set NIC issue. #13283
|
||||
|
||||
## 2.49.0-rc.0 / 2023-12-12
|
||||
|
||||
* [FEATURE] Promtool: Add `--run` flag promtool test rules command. #12206
|
||||
|
|
|
@ -106,7 +106,7 @@ func CloudConfigurationFromName(name string) (cloud.Configuration, error) {
|
|||
name = strings.ToUpper(name)
|
||||
env, ok := environments[name]
|
||||
if !ok {
|
||||
return env, fmt.Errorf("There is no cloud configuration matching the name %q", name)
|
||||
return env, fmt.Errorf("there is no cloud configuration matching the name %q", name)
|
||||
}
|
||||
|
||||
return env, nil
|
||||
|
@ -305,6 +305,7 @@ type virtualMachine struct {
|
|||
Location string
|
||||
OsType string
|
||||
ScaleSet string
|
||||
InstanceID string
|
||||
Tags map[string]*string
|
||||
NetworkInterfaces []string
|
||||
Size string
|
||||
|
@ -405,17 +406,31 @@ func (d *Discovery) refresh(ctx context.Context) ([]*targetgroup.Group, error) {
|
|||
networkInterface = v
|
||||
cacheHitCount.Add(1)
|
||||
} else {
|
||||
networkInterface, err = client.getNetworkInterfaceByID(ctx, nicID)
|
||||
if err != nil {
|
||||
if errors.Is(err, errorNotFound) {
|
||||
level.Warn(d.logger).Log("msg", "Network interface does not exist", "name", nicID, "err", err)
|
||||
} else {
|
||||
ch <- target{labelSet: nil, err: err}
|
||||
if vm.ScaleSet == "" {
|
||||
networkInterface, err = client.getVMNetworkInterfaceByID(ctx, nicID)
|
||||
if err != nil {
|
||||
if errors.Is(err, errorNotFound) {
|
||||
level.Warn(d.logger).Log("msg", "Network interface does not exist", "name", nicID, "err", err)
|
||||
} else {
|
||||
ch <- target{labelSet: nil, err: err}
|
||||
}
|
||||
// Get out of this routine because we cannot continue without a network interface.
|
||||
return
|
||||
}
|
||||
// Get out of this routine because we cannot continue without a network interface.
|
||||
return
|
||||
d.addToCache(nicID, networkInterface)
|
||||
} else {
|
||||
networkInterface, err = client.getVMScaleSetVMNetworkInterfaceByID(ctx, nicID, vm.ScaleSet, vm.InstanceID)
|
||||
if err != nil {
|
||||
if errors.Is(err, errorNotFound) {
|
||||
level.Warn(d.logger).Log("msg", "Network interface does not exist", "name", nicID, "err", err)
|
||||
} else {
|
||||
ch <- target{labelSet: nil, err: err}
|
||||
}
|
||||
// Get out of this routine because we cannot continue without a network interface.
|
||||
return
|
||||
}
|
||||
d.addToCache(nicID, networkInterface)
|
||||
}
|
||||
d.addToCache(nicID, networkInterface)
|
||||
}
|
||||
|
||||
if networkInterface.Properties == nil {
|
||||
|
@ -623,6 +638,7 @@ func mapFromVMScaleSetVM(vm armcompute.VirtualMachineScaleSetVM, scaleSetName st
|
|||
Location: *(vm.Location),
|
||||
OsType: osType,
|
||||
ScaleSet: scaleSetName,
|
||||
InstanceID: *(vm.InstanceID),
|
||||
Tags: tags,
|
||||
NetworkInterfaces: networkInterfaces,
|
||||
Size: size,
|
||||
|
@ -631,9 +647,9 @@ func mapFromVMScaleSetVM(vm armcompute.VirtualMachineScaleSetVM, scaleSetName st
|
|||
|
||||
var errorNotFound = errors.New("network interface does not exist")
|
||||
|
||||
// getNetworkInterfaceByID gets the network interface.
|
||||
// getVMNetworkInterfaceByID gets the network interface.
|
||||
// If a 404 is returned from the Azure API, `errorNotFound` is returned.
|
||||
func (client *azureClient) getNetworkInterfaceByID(ctx context.Context, networkInterfaceID string) (*armnetwork.Interface, error) {
|
||||
func (client *azureClient) getVMNetworkInterfaceByID(ctx context.Context, networkInterfaceID string) (*armnetwork.Interface, error) {
|
||||
r, err := newAzureResourceFromID(networkInterfaceID, client.logger)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("could not parse network interface ID: %w", err)
|
||||
|
@ -645,7 +661,27 @@ func (client *azureClient) getNetworkInterfaceByID(ctx context.Context, networkI
|
|||
if errors.As(err, &responseError) && responseError.StatusCode == http.StatusNotFound {
|
||||
return nil, errorNotFound
|
||||
}
|
||||
return nil, fmt.Errorf("Failed to retrieve Interface %v with error: %w", networkInterfaceID, err)
|
||||
return nil, fmt.Errorf("failed to retrieve Interface %v with error: %w", networkInterfaceID, err)
|
||||
}
|
||||
|
||||
return &resp.Interface, nil
|
||||
}
|
||||
|
||||
// getVMScaleSetVMNetworkInterfaceByID gets the network interface.
|
||||
// If a 404 is returned from the Azure API, `errorNotFound` is returned.
|
||||
func (client *azureClient) getVMScaleSetVMNetworkInterfaceByID(ctx context.Context, networkInterfaceID, scaleSetName, instanceID string) (*armnetwork.Interface, error) {
|
||||
r, err := newAzureResourceFromID(networkInterfaceID, client.logger)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("could not parse network interface ID: %w", err)
|
||||
}
|
||||
|
||||
resp, err := client.nic.GetVirtualMachineScaleSetNetworkInterface(ctx, r.ResourceGroupName, scaleSetName, instanceID, r.Name, &armnetwork.InterfacesClientGetVirtualMachineScaleSetNetworkInterfaceOptions{Expand: to.Ptr("IPConfigurations/PublicIPAddress")})
|
||||
if err != nil {
|
||||
var responseError *azcore.ResponseError
|
||||
if errors.As(err, &responseError) && responseError.StatusCode == http.StatusNotFound {
|
||||
return nil, errorNotFound
|
||||
}
|
||||
return nil, fmt.Errorf("failed to retrieve Interface %v with error: %w", networkInterfaceID, err)
|
||||
}
|
||||
|
||||
return &resp.Interface, nil
|
||||
|
|
|
@ -142,6 +142,7 @@ func TestMapFromVMScaleSetVMWithEmptyTags(t *testing.T) {
|
|||
vmSize := armcompute.VirtualMachineSizeTypes(size)
|
||||
osType := armcompute.OperatingSystemTypesLinux
|
||||
vmType := "type"
|
||||
instanceID := "123"
|
||||
location := "westeurope"
|
||||
computerName := "computer_name"
|
||||
networkProfile := armcompute.NetworkProfile{
|
||||
|
@ -166,6 +167,7 @@ func TestMapFromVMScaleSetVMWithEmptyTags(t *testing.T) {
|
|||
ID: &id,
|
||||
Name: &name,
|
||||
Type: &vmType,
|
||||
InstanceID: &instanceID,
|
||||
Location: &location,
|
||||
Tags: nil,
|
||||
Properties: properties,
|
||||
|
@ -182,6 +184,7 @@ func TestMapFromVMScaleSetVMWithEmptyTags(t *testing.T) {
|
|||
Tags: map[string]*string{},
|
||||
NetworkInterfaces: []string{},
|
||||
ScaleSet: scaleSet,
|
||||
InstanceID: instanceID,
|
||||
Size: size,
|
||||
}
|
||||
|
||||
|
@ -197,6 +200,7 @@ func TestMapFromVMScaleSetVMWithTags(t *testing.T) {
|
|||
vmSize := armcompute.VirtualMachineSizeTypes(size)
|
||||
osType := armcompute.OperatingSystemTypesLinux
|
||||
vmType := "type"
|
||||
instanceID := "123"
|
||||
location := "westeurope"
|
||||
computerName := "computer_name"
|
||||
tags := map[string]*string{
|
||||
|
@ -224,6 +228,7 @@ func TestMapFromVMScaleSetVMWithTags(t *testing.T) {
|
|||
ID: &id,
|
||||
Name: &name,
|
||||
Type: &vmType,
|
||||
InstanceID: &instanceID,
|
||||
Location: &location,
|
||||
Tags: tags,
|
||||
Properties: properties,
|
||||
|
@ -240,6 +245,7 @@ func TestMapFromVMScaleSetVMWithTags(t *testing.T) {
|
|||
Tags: tags,
|
||||
NetworkInterfaces: []string{},
|
||||
ScaleSet: scaleSet,
|
||||
InstanceID: instanceID,
|
||||
Size: size,
|
||||
}
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "@prometheus-io/codemirror-promql",
|
||||
"version": "0.49.0-rc.0",
|
||||
"version": "0.49.0-rc.1",
|
||||
"description": "a CodeMirror mode for the PromQL language",
|
||||
"types": "dist/esm/index.d.ts",
|
||||
"module": "dist/esm/index.js",
|
||||
|
@ -29,7 +29,7 @@
|
|||
},
|
||||
"homepage": "https://github.com/prometheus/prometheus/blob/main/web/ui/module/codemirror-promql/README.md",
|
||||
"dependencies": {
|
||||
"@prometheus-io/lezer-promql": "0.49.0-rc.0",
|
||||
"@prometheus-io/lezer-promql": "0.49.0-rc.1",
|
||||
"lru-cache": "^7.18.3"
|
||||
},
|
||||
"devDependencies": {
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "@prometheus-io/lezer-promql",
|
||||
"version": "0.49.0-rc.0",
|
||||
"version": "0.49.0-rc.1",
|
||||
"description": "lezer-based PromQL grammar",
|
||||
"main": "dist/index.cjs",
|
||||
"type": "module",
|
||||
|
|
18
web/ui/package-lock.json
generated
18
web/ui/package-lock.json
generated
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
"name": "prometheus-io",
|
||||
"version": "0.49.0-rc.0",
|
||||
"version": "0.49.0-rc.1",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "prometheus-io",
|
||||
"version": "0.49.0-rc.0",
|
||||
"version": "0.49.0-rc.1",
|
||||
"workspaces": [
|
||||
"react-app",
|
||||
"module/*"
|
||||
|
@ -30,10 +30,10 @@
|
|||
},
|
||||
"module/codemirror-promql": {
|
||||
"name": "@prometheus-io/codemirror-promql",
|
||||
"version": "0.49.0-rc.0",
|
||||
"version": "0.49.0-rc.1",
|
||||
"license": "Apache-2.0",
|
||||
"dependencies": {
|
||||
"@prometheus-io/lezer-promql": "0.49.0-rc.0",
|
||||
"@prometheus-io/lezer-promql": "0.49.0-rc.1",
|
||||
"lru-cache": "^7.18.3"
|
||||
},
|
||||
"devDependencies": {
|
||||
|
@ -70,7 +70,7 @@
|
|||
},
|
||||
"module/lezer-promql": {
|
||||
"name": "@prometheus-io/lezer-promql",
|
||||
"version": "0.49.0-rc.0",
|
||||
"version": "0.49.0-rc.1",
|
||||
"license": "Apache-2.0",
|
||||
"devDependencies": {
|
||||
"@lezer/generator": "^1.5.1",
|
||||
|
@ -20844,7 +20844,7 @@
|
|||
},
|
||||
"react-app": {
|
||||
"name": "@prometheus-io/app",
|
||||
"version": "0.49.0-rc.0",
|
||||
"version": "0.49.0-rc.1",
|
||||
"dependencies": {
|
||||
"@codemirror/autocomplete": "^6.11.1",
|
||||
"@codemirror/commands": "^6.3.2",
|
||||
|
@ -20862,7 +20862,7 @@
|
|||
"@lezer/lr": "^1.3.14",
|
||||
"@nexucis/fuzzy": "^0.4.1",
|
||||
"@nexucis/kvsearch": "^0.8.1",
|
||||
"@prometheus-io/codemirror-promql": "0.49.0-rc.0",
|
||||
"@prometheus-io/codemirror-promql": "0.49.0-rc.1",
|
||||
"bootstrap": "^4.6.2",
|
||||
"css.escape": "^1.5.1",
|
||||
"downshift": "^7.6.2",
|
||||
|
@ -23551,7 +23551,7 @@
|
|||
"@lezer/lr": "^1.3.14",
|
||||
"@nexucis/fuzzy": "^0.4.1",
|
||||
"@nexucis/kvsearch": "^0.8.1",
|
||||
"@prometheus-io/codemirror-promql": "0.49.0-rc.0",
|
||||
"@prometheus-io/codemirror-promql": "0.49.0-rc.1",
|
||||
"@testing-library/react-hooks": "^7.0.2",
|
||||
"@types/enzyme": "^3.10.18",
|
||||
"@types/flot": "0.0.36",
|
||||
|
@ -23602,7 +23602,7 @@
|
|||
"@lezer/common": "^1.1.1",
|
||||
"@lezer/highlight": "^1.2.0",
|
||||
"@lezer/lr": "^1.3.14",
|
||||
"@prometheus-io/lezer-promql": "0.49.0-rc.0",
|
||||
"@prometheus-io/lezer-promql": "0.49.0-rc.1",
|
||||
"isomorphic-fetch": "^3.0.0",
|
||||
"lru-cache": "^7.18.3",
|
||||
"nock": "^13.4.0"
|
||||
|
|
|
@ -28,5 +28,5 @@
|
|||
"ts-jest": "^29.1.1",
|
||||
"typescript": "^4.9.5"
|
||||
},
|
||||
"version": "0.49.0-rc.0"
|
||||
"version": "0.49.0-rc.1"
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "@prometheus-io/app",
|
||||
"version": "0.49.0-rc.0",
|
||||
"version": "0.49.0-rc.1",
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"@codemirror/autocomplete": "^6.11.1",
|
||||
|
@ -19,7 +19,7 @@
|
|||
"@lezer/lr": "^1.3.14",
|
||||
"@nexucis/fuzzy": "^0.4.1",
|
||||
"@nexucis/kvsearch": "^0.8.1",
|
||||
"@prometheus-io/codemirror-promql": "0.49.0-rc.0",
|
||||
"@prometheus-io/codemirror-promql": "0.49.0-rc.1",
|
||||
"bootstrap": "^4.6.2",
|
||||
"css.escape": "^1.5.1",
|
||||
"downshift": "^7.6.2",
|
||||
|
|
Loading…
Reference in a new issue