Skip to content

Commit ffb7f82

Browse files
authored
Merge pull request prometheus#4730 from prometheus/release-2.4
Release 2.4
2 parents 193ebe7 + 1625c9c commit ffb7f82

File tree

7 files changed

+60
-12
lines changed

7 files changed

+60
-12
lines changed

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
## 2.4.3 / 2018-10-04
2+
3+
* [BUGFIX] Fix panic when using custom EC2 API for SD #4672
4+
* [BUGFIX] Fix panic when Zookeeper SD cannot connect to servers #4669
5+
* [BUGFIX] Make the skip_head an optional parameter for snapshot API #4674
6+
17
## 2.4.2 / 2018-09-21
28

39
The last release didn't have bugfix included due to a vendoring error.

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
2.4.2
1+
2.4.3

discovery/ec2/ec2.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -241,9 +241,13 @@ func (d *Discovery) refresh() (tg *targetgroup.Group, err error) {
241241
continue
242242
}
243243
labels := model.LabelSet{
244-
ec2LabelOwnerID: model.LabelValue(*r.OwnerId),
245244
ec2LabelInstanceID: model.LabelValue(*inst.InstanceId),
246245
}
246+
247+
if r.OwnerId != nil {
248+
labels[ec2LabelOwnerID] = model.LabelValue(*r.OwnerId)
249+
}
250+
247251
labels[ec2LabelPrivateIP] = model.LabelValue(*inst.PrivateIpAddress)
248252
addr := net.JoinHostPort(*inst.PrivateIpAddress, fmt.Sprintf("%d", d.port))
249253
labels[model.AddressLabel] = model.LabelValue(addr)

discovery/manager.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -345,12 +345,12 @@ func (m *Manager) registerProviders(cfg sd_config.ServiceDiscoveryConfig, setNam
345345
}
346346
for _, c := range cfg.ServersetSDConfigs {
347347
add(c, func() (Discoverer, error) {
348-
return zookeeper.NewServersetDiscovery(c, log.With(m.logger, "discovery", "zookeeper")), nil
348+
return zookeeper.NewServersetDiscovery(c, log.With(m.logger, "discovery", "zookeeper"))
349349
})
350350
}
351351
for _, c := range cfg.NerveSDConfigs {
352352
add(c, func() (Discoverer, error) {
353-
return zookeeper.NewNerveDiscovery(c, log.With(m.logger, "discovery", "nerve")), nil
353+
return zookeeper.NewNerveDiscovery(c, log.With(m.logger, "discovery", "nerve"))
354354
})
355355
}
356356
for _, c := range cfg.EC2SDConfigs {

discovery/zookeeper/zookeeper.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -115,12 +115,12 @@ type Discovery struct {
115115
}
116116

117117
// NewNerveDiscovery returns a new Discovery for the given Nerve config.
118-
func NewNerveDiscovery(conf *NerveSDConfig, logger log.Logger) *Discovery {
118+
func NewNerveDiscovery(conf *NerveSDConfig, logger log.Logger) (*Discovery, error) {
119119
return NewDiscovery(conf.Servers, time.Duration(conf.Timeout), conf.Paths, logger, parseNerveMember)
120120
}
121121

122122
// NewServersetDiscovery returns a new Discovery for the given serverset config.
123-
func NewServersetDiscovery(conf *ServersetSDConfig, logger log.Logger) *Discovery {
123+
func NewServersetDiscovery(conf *ServersetSDConfig, logger log.Logger) (*Discovery, error) {
124124
return NewDiscovery(conf.Servers, time.Duration(conf.Timeout), conf.Paths, logger, parseServersetMember)
125125
}
126126

@@ -132,7 +132,7 @@ func NewDiscovery(
132132
paths []string,
133133
logger log.Logger,
134134
pf func(data []byte, path string) (model.LabelSet, error),
135-
) *Discovery {
135+
) (*Discovery, error) {
136136
if logger == nil {
137137
logger = log.NewNopLogger()
138138
}
@@ -143,7 +143,7 @@ func NewDiscovery(
143143
c.SetLogger(treecache.NewZookeeperLogger(logger))
144144
})
145145
if err != nil {
146-
return nil
146+
return nil, err
147147
}
148148
updates := make(chan treecache.ZookeeperTreeCacheEvent)
149149
sd := &Discovery{
@@ -156,7 +156,7 @@ func NewDiscovery(
156156
for _, path := range paths {
157157
sd.treeCaches = append(sd.treeCaches, treecache.NewZookeeperTreeCache(conn, path, updates, logger))
158158
}
159-
return sd
159+
return sd, nil
160160
}
161161

162162
// Run implements the Discoverer interface.

discovery/zookeeper/zookeeper_test.go

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
// Copyright 2018 The Prometheus Authors
2+
// Licensed under the Apache License, Version 2.0 (the "License");
3+
// you may not use this file except in compliance with the License.
4+
// You may obtain a copy of the License at
5+
//
6+
// http://www.apache.org/licenses/LICENSE-2.0
7+
//
8+
// Unless required by applicable law or agreed to in writing, software
9+
// distributed under the License is distributed on an "AS IS" BASIS,
10+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11+
// See the License for the specific language governing permissions and
12+
// limitations under the License.
13+
14+
package zookeeper
15+
16+
import (
17+
"testing"
18+
"time"
19+
20+
"github.com/prometheus/common/model"
21+
)
22+
23+
func TestNewDiscoveryError(t *testing.T) {
24+
_, err := NewDiscovery(
25+
[]string{"unreachable.test"},
26+
time.Second, []string{"/"},
27+
nil,
28+
func(data []byte, path string) (model.LabelSet, error) { return nil, nil })
29+
if err == nil {
30+
t.Fatalf("expected error, got nil")
31+
}
32+
}

web/api/v1/api.go

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -926,9 +926,15 @@ func (api *API) snapshot(r *http.Request) (interface{}, *apiError, func()) {
926926
if !api.enableAdmin {
927927
return nil, &apiError{errorUnavailable, errors.New("Admin APIs disabled")}, nil
928928
}
929-
skipHead, err := strconv.ParseBool(r.FormValue("skip_head"))
930-
if err != nil {
931-
return nil, &apiError{errorUnavailable, fmt.Errorf("unable to parse boolean 'skip_head' argument: %v", err)}, nil
929+
var (
930+
skipHead bool
931+
err error
932+
)
933+
if r.FormValue("skip_head") != "" {
934+
skipHead, err = strconv.ParseBool(r.FormValue("skip_head"))
935+
if err != nil {
936+
return nil, &apiError{errorUnavailable, fmt.Errorf("unable to parse boolean 'skip_head' argument: %v", err)}, nil
937+
}
932938
}
933939

934940
db := api.db()

0 commit comments

Comments
 (0)