Skip to content

Commit f6b5711

Browse files
committed
Add warning/critical values to perfdata output
1 parent 2812591 commit f6b5711

File tree

2 files changed

+7
-5
lines changed

2 files changed

+7
-5
lines changed

cmd/query.go

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,11 +34,13 @@ func generateMetricOutput(rc int, metric string, value string) string {
3434
return fmt.Sprintf(" \\_[%s] %s - value: %s\n", check.StatusText(rc), metric, value)
3535
}
3636

37-
func generatePerfdata(metric string, value string) perfdata.Perfdata {
37+
func generatePerfdata(metric, value string, warning, critical *check.Threshold) perfdata.Perfdata {
3838
// We trim the trailing "} from the string, so that the Perfdata won't have a trailing _
3939
return perfdata.Perfdata{
4040
Label: replacer.Replace(metric),
4141
Value: value,
42+
Warn: warning,
43+
Crit: critical,
4244
}
4345
}
4446

@@ -136,7 +138,7 @@ Note: Time range values e.G. 'go_memstats_alloc_bytes_total[0s]' only the latest
136138
metricOutput.WriteString(generateMetricOutput(rc, sample.Metric.String(), sample.Value.String()))
137139

138140
// Generate Perfdata from API return
139-
perf := generatePerfdata(sample.Metric.String(), sample.Value.String())
141+
perf := generatePerfdata(sample.Metric.String(), sample.Value.String(), warn, crit)
140142
perfList.Add(&perf)
141143
}
142144
states = vStates
@@ -170,7 +172,7 @@ Note: Time range values e.G. 'go_memstats_alloc_bytes_total[0s]' only the latest
170172
metricOutput.WriteString(generateMetricOutput(rc, samplepair.String(), samplepair.Value.String()))
171173

172174
// Generate Perfdata from API return
173-
perf := generatePerfdata(samplestream.Metric.String(), samplepair.Value.String())
175+
perf := generatePerfdata(samplestream.Metric.String(), samplepair.Value.String(), warn, crit)
174176
perfList.Add(&perf)
175177
}
176178
states = mStates

cmd/query_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ func TestQueryCmd(t *testing.T) {
9797
w.Write([]byte(`{"status":"success","data":{"resultType":"matrix","result":[{"metric":{"__name__":"up","instance":"localhost","job":"node"},"values":[[1670340712.988,"1"],[1670340772.988,"1"],[1670340832.990,"1"],[1670340892.990,"1"],[1670340952.990,"1"]]}]}}`))
9898
})),
9999
args: []string{"run", "../main.go", "query", "--query", "up{job=\"prometheus\"}[5m]"},
100-
expected: "[OK] - 1 Metrics OK | up_instance_localhost_job_node=1\n",
100+
expected: "[OK] - 1 Metrics OK | up_instance_localhost_job_node=1;10;20\n",
101101
},
102102
{
103103
name: "query-metric-exists",
@@ -106,7 +106,7 @@ func TestQueryCmd(t *testing.T) {
106106
w.Write([]byte(`{"status":"success","data":{"resultType":"vector","result":[{"metric":{"__name__":"up","instance":"localhost","job":"prometheus"},"value":[1668782473.835,"1"]}]}}`))
107107
})),
108108
args: []string{"run", "../main.go", "query", "--query", "up{job=\"prometheus\"}"},
109-
expected: "[OK] - 1 Metrics OK | up_instance_localhost_job_prometheus=1\n",
109+
expected: "[OK] - 1 Metrics OK | up_instance_localhost_job_prometheus=1;10;20\n",
110110
},
111111
}
112112

0 commit comments

Comments
 (0)