MCPcopy
hub / github.com/prometheus/pushgateway / TestMetricsAPI

Function TestMetricsAPI

api/v1/api_test.go:236–446  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

234}
235
236func TestMetricsAPI(t *testing.T) {
237 dms := storage.NewDiskMetricStore("", 100*time.Millisecond, nil, logger)
238 testAPI := New(logger, dms, testFlags, testBuildInfo)
239
240 req, err := http.NewRequest("GET", "http://example.org/", &bytes.Buffer{})
241 if err != nil {
242 t.Fatal(err)
243 }
244
245 w := httptest.NewRecorder()
246
247 testAPI.metrics(w, req)
248
249 if expected, got := http.StatusOK, w.Code; expected != got {
250 t.Errorf("Wanted status code %v, got %v.", expected, got)
251 }
252
253 requiredResponse := `{"status":"success","data":[]}`
254
255 if expected, got := requiredResponse, w.Body.String(); expected != got {
256 t.Errorf("Wanted response %q, got %q.", requiredResponse, w.Body.String())
257 }
258
259 testTime, _ := time.Parse(time.RFC3339Nano, "2020-03-10T00:54:08.025744841+05:30")
260
261 errCh := make(chan error, 1)
262
263 dms.SubmitWriteRequest(storage.WriteRequest{
264 Labels: grouping1,
265 Timestamp: testTime,
266 MetricFamilies: testutil.MetricFamiliesMap(mf1, mfh),
267 Done: errCh,
268 })
269
270 for err := range errCh {
271 t.Fatal("Unexpected error:", err)
272 }
273
274 w = httptest.NewRecorder()
275
276 testAPI.metrics(w, req)
277
278 var prettyJSON bytes.Buffer
279 json.Indent(&prettyJSON, w.Body.Bytes(), "", "\t")
280
281 requiredResponse = `{
282 "status": "success",
283 "data": [
284 {
285 "labels": {
286 "instance": "inst'a\"n\\ce1",
287 "job": "Björn"
288 },
289 "last_push_successful": true,
290 "mf1": {
291 "time_stamp": "2020-03-10T00:54:08.025744841+05:30",
292 "type": "SUMMARY",
293 "metrics": [

Callers

nothing calls this directly

Calls 5

SubmitWriteRequestMethod · 0.95
NewDiskMetricStoreFunction · 0.92
MetricFamiliesMapFunction · 0.92
NewFunction · 0.85
metricsMethod · 0.80

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…