Skip to content

Commit 7ba0f27

Browse files
committed
add timeout to node stats
1 parent edd28cd commit 7ba0f27

File tree

2 files changed

+17
-13
lines changed

2 files changed

+17
-13
lines changed

collector/nodes.go

+16-12
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import (
2020
"net/http"
2121
"net/url"
2222
"path"
23+
"time"
2324

2425
"github.com/go-kit/log"
2526
"github.com/go-kit/log/level"
@@ -165,11 +166,12 @@ type filesystemIODeviceMetric struct {
165166

166167
// Nodes information struct
167168
type Nodes struct {
168-
logger log.Logger
169-
client *http.Client
170-
url *url.URL
171-
all bool
172-
node string
169+
logger log.Logger
170+
client *http.Client
171+
url *url.URL
172+
all bool
173+
node string
174+
timeout time.Duration
173175

174176
up prometheus.Gauge
175177
totalScrapes, jsonParseFailures prometheus.Counter
@@ -183,13 +185,14 @@ type Nodes struct {
183185
}
184186

185187
// NewNodes defines Nodes Prometheus metrics
186-
func NewNodes(logger log.Logger, client *http.Client, url *url.URL, all bool, node string) *Nodes {
188+
func NewNodes(logger log.Logger, client *http.Client, url *url.URL, all bool, node string, timeout time.Duration) *Nodes {
187189
return &Nodes{
188-
logger: logger,
189-
client: client,
190-
url: url,
191-
all: all,
192-
node: node,
190+
logger: logger,
191+
client: client,
192+
url: url,
193+
all: all,
194+
node: node,
195+
timeout: timeout,
193196

194197
up: prometheus.NewGauge(prometheus.GaugeOpts{
195198
Name: prometheus.BuildFQName(namespace, "node_stats", "up"),
@@ -1788,13 +1791,14 @@ func (c *Nodes) fetchAndDecodeNodeStats() (nodeStatsResponse, error) {
17881791
var nsr nodeStatsResponse
17891792

17901793
u := *c.url
1791-
17921794
if c.all {
17931795
u.Path = path.Join(u.Path, "/_nodes/stats")
17941796
} else {
17951797
u.Path = path.Join(u.Path, "_nodes", c.node, "stats")
17961798
}
17971799

1800+
u.RawQuery = fmt.Sprintf("timeout=%s", c.timeout.String())
1801+
17981802
res, err := c.client.Get(u.String())
17991803
if err != nil {
18001804
return nsr, fmt.Errorf("failed to get cluster health from %s://%s:%s%s: %s",

main.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,7 @@ func main() {
161161
clusterInfoRetriever := clusterinfo.New(logger, httpClient, esURL, *esClusterInfoInterval)
162162

163163
prometheus.MustRegister(collector.NewClusterHealth(logger, httpClient, esURL))
164-
prometheus.MustRegister(collector.NewNodes(logger, httpClient, esURL, *esAllNodes, *esNode))
164+
prometheus.MustRegister(collector.NewNodes(logger, httpClient, esURL, *esAllNodes, *esNode, *esTimeout))
165165

166166
if *esExportIndices || *esExportShards {
167167
iC := collector.NewIndices(logger, httpClient, esURL, *esExportShards)

0 commit comments

Comments
 (0)