Skip to content

Commit bcb5898

Browse files
puppetdb: handle cases when targets or labels are empty
1 parent f769bdb commit bcb5898

File tree

4 files changed

+49
-1
lines changed

4 files changed

+49
-1
lines changed

go.mod

+2
Original file line numberDiff line numberDiff line change
@@ -35,3 +35,5 @@ require (
3535
k8s.io/client-go v0.0.0-20190325145348-5392b64e5c0b
3636
k8s.io/kube-openapi v0.0.0-20190502190224-411b2483e503 // indirect
3737
)
38+
39+
go 1.13

internal/puppetdb/puppetdb.go

+8
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,14 @@ func (p *PuppetDB) GetScrapeConfigs(cfg *config.PrometheusSDConfig) (scrapeConfi
101101
targets := parameters.Targets
102102
labels := parameters.Labels
103103

104+
if targets == nil {
105+
continue
106+
}
107+
108+
if labels == nil {
109+
labels = map[string]string{}
110+
}
111+
104112
scrapeConfig, ok := scrapeConfigMap[jobName]
105113
if !ok {
106114
scrapeConfig = &types.ScrapeConfig{

internal/puppetdb/puppetdb_test.go

+38
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,21 @@ var fakeResponse = `
5555
"team": "team-1"
5656
}
5757
}
58+
},
59+
{
60+
"certname": "server-3.example.com",
61+
"parameters": {
62+
"job_name": "node-exporter",
63+
"targets": [
64+
"server-3.example.com:9100"
65+
]
66+
}
67+
},
68+
{
69+
"certname": "server-4.example.com",
70+
"parameters": {
71+
"job_name": "node-exporter"
72+
}
5873
}
5974
]
6075
`
@@ -210,6 +225,21 @@ func TestGetResources(t *testing.T) {
210225
},
211226
},
212227
},
228+
{
229+
Certname: "server-3.example.com",
230+
Parameters: types.Parameters{
231+
JobName: "node-exporter",
232+
Targets: []string{
233+
"server-3.example.com:9100",
234+
},
235+
},
236+
},
237+
{
238+
Certname: "server-4.example.com",
239+
Parameters: types.Parameters{
240+
JobName: "node-exporter",
241+
},
242+
},
213243
}
214244

215245
// Mock http server
@@ -266,6 +296,14 @@ func TestGetScrapeConfigs(t *testing.T) {
266296
"team": "team-1",
267297
},
268298
},
299+
{
300+
Targets: []string{
301+
"server-3.example.com:9100",
302+
},
303+
Labels: map[string]string{
304+
"certname": "server-3.example.com",
305+
},
306+
},
269307
},
270308
},
271309
{

prometheus-puppetdb-sd.1

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
.TH prometheus-puppetdb-sd 1 "7 August 2019"
1+
.TH prometheus-puppetdb-sd 1 "16 September 2019"
22
.SH NAME
33
prometheus-puppetdb-sd \- PuppetDB based service discovery for Prometheus
44
.SH SYNOPSIS

0 commit comments

Comments
 (0)