Skip to content

Commit b5c0f51

Browse files
committed
update api doc
Signed-off-by: Ben Ye <[email protected]>
1 parent 0c607ab commit b5c0f51

File tree

3 files changed

+85
-65
lines changed

3 files changed

+85
-65
lines changed

docs/api/_index.md

Lines changed: 70 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -15,63 +15,64 @@ For the sake of clarity, in this document we have grouped API endpoints by servi
1515

1616
## Endpoints
1717

18-
| API | Service | Endpoint |
19-
| --- | ------- | -------- |
20-
| [Index page](#index-page) | _All services_ | `GET /` |
21-
| [Configuration](#configuration) | _All services_ | `GET /config` |
22-
| [Runtime Configuration](#runtime-configuration) | _All services_ | `GET /runtime_config` |
23-
| [Services status](#services-status) | _All services_ | `GET /services` |
24-
| [Readiness probe](#readiness-probe) | _All services_ | `GET /ready` |
25-
| [Metrics](#metrics) | _All services_ | `GET /metrics` |
26-
| [Pprof](#pprof) | _All services_ | `GET /debug/pprof` |
27-
| [Fgprof](#fgprof) | _All services_ | `GET /debug/fgprof` |
28-
| [Remote write](#remote-write) | Distributor | `POST /api/v1/push` |
29-
| [Tenants stats](#tenants-stats) | Distributor | `GET /distributor/all_user_stats` |
30-
| [HA tracker status](#ha-tracker-status) | Distributor | `GET /distributor/ha_tracker` |
31-
| [Flush blocks](#flush-blocks) | Ingester | `GET,POST /ingester/flush` |
32-
| [Shutdown](#shutdown) | Ingester | `GET,POST /ingester/shutdown` |
33-
| [Ingesters ring status](#ingesters-ring-status) | Ingester | `GET /ingester/ring` |
34-
| [Instant query](#instant-query) | Querier, Query-frontend | `GET,POST <prometheus-http-prefix>/api/v1/query` |
35-
| [Range query](#range-query) | Querier, Query-frontend | `GET,POST <prometheus-http-prefix>/api/v1/query_range` |
36-
| [Exemplar query](#exemplar-query) | Querier, Query-frontend | `GET,POST <prometheus-http-prefix>/api/v1/query_exemplars` |
37-
| [Get series by label matchers](#get-series-by-label-matchers) | Querier, Query-frontend | `GET,POST <prometheus-http-prefix>/api/v1/series` |
38-
| [Get label names](#get-label-names) | Querier, Query-frontend | `GET,POST <prometheus-http-prefix>/api/v1/labels` |
39-
| [Get label values](#get-label-values) | Querier, Query-frontend | `GET <prometheus-http-prefix>/api/v1/label/{name}/values` |
40-
| [Get metric metadata](#get-metric-metadata) | Querier, Query-frontend | `GET <prometheus-http-prefix>/api/v1/metadata` |
41-
| [Remote read](#remote-read) | Querier, Query-frontend | `POST <prometheus-http-prefix>/api/v1/read` |
42-
| [Get tenant ingestion stats](#get-tenant-ingestion-stats) | Querier | `GET /api/v1/user_stats` |
43-
| [Ruler ring status](#ruler-ring-status) | Ruler | `GET /ruler/ring` |
44-
| [Ruler rules ](#ruler-rule-groups) | Ruler | `GET /ruler/rule_groups` |
45-
| [List rules](#list-rules) | Ruler | `GET <prometheus-http-prefix>/api/v1/rules` |
46-
| [List alerts](#list-alerts) | Ruler | `GET <prometheus-http-prefix>/api/v1/alerts` |
47-
| [List rule groups](#list-rule-groups) | Ruler | `GET /api/v1/rules` |
48-
| [Get rule groups by namespace](#get-rule-groups-by-namespace) | Ruler | `GET /api/v1/rules/{namespace}` |
49-
| [Get rule group](#get-rule-group) | Ruler | `GET /api/v1/rules/{namespace}/{groupName}` |
50-
| [Set rule group](#set-rule-group) | Ruler | `POST /api/v1/rules/{namespace}` |
51-
| [Delete rule group](#delete-rule-group) | Ruler | `DELETE /api/v1/rules/{namespace}/{groupName}` |
52-
| [Delete namespace](#delete-namespace) | Ruler | `DELETE /api/v1/rules/{namespace}` |
53-
| [Delete tenant configuration](#delete-tenant-configuration) | Ruler | `POST /ruler/delete_tenant_config` |
54-
| [Alertmanager status](#alertmanager-status) | Alertmanager | `GET /multitenant_alertmanager/status` |
55-
| [Alertmanager configs](#alertmanager-configs) | Alertmanager | `GET /multitenant_alertmanager/configs` |
56-
| [Alertmanager ring status](#alertmanager-ring-status) | Alertmanager | `GET /multitenant_alertmanager/ring` |
57-
| [Alertmanager UI](#alertmanager-ui) | Alertmanager | `GET /<alertmanager-http-prefix>` |
58-
| [Alertmanager Delete Tenant Configuration](#alertmanager-delete-tenant-configuration) | Alertmanager | `POST /multitenant_alertmanager/delete_tenant_config` |
59-
| [Get Alertmanager configuration](#get-alertmanager-configuration) | Alertmanager | `GET /api/v1/alerts` |
60-
| [Set Alertmanager configuration](#set-alertmanager-configuration) | Alertmanager | `POST /api/v1/alerts` |
61-
| [Delete Alertmanager configuration](#delete-alertmanager-configuration) | Alertmanager | `DELETE /api/v1/alerts` |
62-
| [Tenant delete request](#tenant-delete-request) | Purger | `POST /purger/delete_tenant` |
63-
| [Tenant delete status](#tenant-delete-status) | Purger | `GET /purger/delete_tenant_status` |
64-
| [Store-gateway ring status](#store-gateway-ring-status) | Store-gateway | `GET /store-gateway/ring` |
65-
| [Compactor ring status](#compactor-ring-status) | Compactor | `GET /compactor/ring` |
66-
| [Get rule files](#get-rule-files) | Configs API (deprecated) | `GET /api/prom/configs/rules` |
67-
| [Set rule files](#set-rule-files) | Configs API (deprecated) | `POST /api/prom/configs/rules` |
68-
| [Get template files](#get-template-files) | Configs API (deprecated) | `GET /api/prom/configs/templates` |
69-
| [Set template files](#set-template-files) | Configs API (deprecated) | `POST /api/prom/configs/templates` |
70-
| [Get Alertmanager config file](#get-alertmanager-config-file) | Configs API (deprecated) | `GET /api/prom/configs/alertmanager` |
71-
| [Set Alertmanager config file](#set-alertmanager-config-file) | Configs API (deprecated) | `POST /api/prom/configs/alertmanager` |
72-
| [Validate Alertmanager config](#validate-alertmanager-config-file) | Configs API (deprecated) | `POST /api/prom/configs/alertmanager/validate` |
73-
| [Deactivate configs](#deactivate-configs) | Configs API (deprecated) | `DELETE /api/prom/configs/deactivate` |
74-
| [Restore configs](#restore-configs) | Configs API (deprecated) | `POST /api/prom/configs/restore` |
18+
| API | Service | Endpoint |
19+
|---------------------------------------------------------------------------------------| ------- |------------------------------------------------------------|
20+
| [Index page](#index-page) | _All services_ | `GET /` |
21+
| [Configuration](#configuration) | _All services_ | `GET /config` |
22+
| [Runtime Configuration](#runtime-configuration) | _All services_ | `GET /runtime_config` |
23+
| [Services status](#services-status) | _All services_ | `GET /services` |
24+
| [Readiness probe](#readiness-probe) | _All services_ | `GET /ready` |
25+
| [Metrics](#metrics) | _All services_ | `GET /metrics` |
26+
| [Pprof](#pprof) | _All services_ | `GET /debug/pprof` |
27+
| [Fgprof](#fgprof) | _All services_ | `GET /debug/fgprof` |
28+
| [Remote write](#remote-write) | Distributor | `POST /api/v1/push` |
29+
| [Tenants stats](#tenants-stats) | Distributor | `GET /distributor/all_user_stats` |
30+
| [HA tracker status](#ha-tracker-status) | Distributor | `GET /distributor/ha_tracker` |
31+
| [Flush blocks](#flush-blocks) | Ingester | `GET,POST /ingester/flush` |
32+
| [Shutdown](#shutdown) | Ingester | `GET,POST /ingester/shutdown` |
33+
| [Ingesters ring status](#ingesters-ring-status) | Ingester | `GET /ingester/ring` |
34+
| [Instant query](#instant-query) | Querier, Query-frontend | `GET,POST <prometheus-http-prefix>/api/v1/query` |
35+
| [Range query](#range-query) | Querier, Query-frontend | `GET,POST <prometheus-http-prefix>/api/v1/query_range` |
36+
| [Exemplar query](#exemplar-query) | Querier, Query-frontend | `GET,POST <prometheus-http-prefix>/api/v1/query_exemplars` |
37+
| [Get series by label matchers](#get-series-by-label-matchers) | Querier, Query-frontend | `GET,POST <prometheus-http-prefix>/api/v1/series` |
38+
| [Get label names](#get-label-names) | Querier, Query-frontend | `GET,POST <prometheus-http-prefix>/api/v1/labels` |
39+
| [Get label values](#get-label-values) | Querier, Query-frontend | `GET <prometheus-http-prefix>/api/v1/label/{name}/values` |
40+
| [Get metric metadata](#get-metric-metadata) | Querier, Query-frontend | `GET <prometheus-http-prefix>/api/v1/metadata` |
41+
| [Remote read](#remote-read) | Querier, Query-frontend | `POST <prometheus-http-prefix>/api/v1/read` |
42+
| [Build information](#build-information) | Querier, Query-frontend | `POST <prometheus-http-prefix>/api/v1/status/buildinfo` |
43+
| [Get tenant ingestion stats](#get-tenant-ingestion-stats) | Querier | `GET /api/v1/user_stats` |
44+
| [Ruler ring status](#ruler-ring-status) | Ruler | `GET /ruler/ring` |
45+
| [Ruler rules ](#ruler-rule-groups) | Ruler | `GET /ruler/rule_groups` |
46+
| [List rules](#list-rules) | Ruler | `GET <prometheus-http-prefix>/api/v1/rules` |
47+
| [List alerts](#list-alerts) | Ruler | `GET <prometheus-http-prefix>/api/v1/alerts` |
48+
| [List rule groups](#list-rule-groups) | Ruler | `GET /api/v1/rules` |
49+
| [Get rule groups by namespace](#get-rule-groups-by-namespace) | Ruler | `GET /api/v1/rules/{namespace}` |
50+
| [Get rule group](#get-rule-group) | Ruler | `GET /api/v1/rules/{namespace}/{groupName}` |
51+
| [Set rule group](#set-rule-group) | Ruler | `POST /api/v1/rules/{namespace}` |
52+
| [Delete rule group](#delete-rule-group) | Ruler | `DELETE /api/v1/rules/{namespace}/{groupName}` |
53+
| [Delete namespace](#delete-namespace) | Ruler | `DELETE /api/v1/rules/{namespace}` |
54+
| [Delete tenant configuration](#delete-tenant-configuration) | Ruler | `POST /ruler/delete_tenant_config` |
55+
| [Alertmanager status](#alertmanager-status) | Alertmanager | `GET /multitenant_alertmanager/status` |
56+
| [Alertmanager configs](#alertmanager-configs) | Alertmanager | `GET /multitenant_alertmanager/configs` |
57+
| [Alertmanager ring status](#alertmanager-ring-status) | Alertmanager | `GET /multitenant_alertmanager/ring` |
58+
| [Alertmanager UI](#alertmanager-ui) | Alertmanager | `GET /<alertmanager-http-prefix>` |
59+
| [Alertmanager Delete Tenant Configuration](#alertmanager-delete-tenant-configuration) | Alertmanager | `POST /multitenant_alertmanager/delete_tenant_config` |
60+
| [Get Alertmanager configuration](#get-alertmanager-configuration) | Alertmanager | `GET /api/v1/alerts` |
61+
| [Set Alertmanager configuration](#set-alertmanager-configuration) | Alertmanager | `POST /api/v1/alerts` |
62+
| [Delete Alertmanager configuration](#delete-alertmanager-configuration) | Alertmanager | `DELETE /api/v1/alerts` |
63+
| [Tenant delete request](#tenant-delete-request) | Purger | `POST /purger/delete_tenant` |
64+
| [Tenant delete status](#tenant-delete-status) | Purger | `GET /purger/delete_tenant_status` |
65+
| [Store-gateway ring status](#store-gateway-ring-status) | Store-gateway | `GET /store-gateway/ring` |
66+
| [Compactor ring status](#compactor-ring-status) | Compactor | `GET /compactor/ring` |
67+
| [Get rule files](#get-rule-files) | Configs API (deprecated) | `GET /api/prom/configs/rules` |
68+
| [Set rule files](#set-rule-files) | Configs API (deprecated) | `POST /api/prom/configs/rules` |
69+
| [Get template files](#get-template-files) | Configs API (deprecated) | `GET /api/prom/configs/templates` |
70+
| [Set template files](#set-template-files) | Configs API (deprecated) | `POST /api/prom/configs/templates` |
71+
| [Get Alertmanager config file](#get-alertmanager-config-file) | Configs API (deprecated) | `GET /api/prom/configs/alertmanager` |
72+
| [Set Alertmanager config file](#set-alertmanager-config-file) | Configs API (deprecated) | `POST /api/prom/configs/alertmanager` |
73+
| [Validate Alertmanager config](#validate-alertmanager-config-file) | Configs API (deprecated) | `POST /api/prom/configs/alertmanager/validate` |
74+
| [Deactivate configs](#deactivate-configs) | Configs API (deprecated) | `DELETE /api/prom/configs/deactivate` |
75+
| [Restore configs](#restore-configs) | Configs API (deprecated) | `POST /api/prom/configs/restore` |
7576

7677

7778
### Path prefixes
@@ -407,6 +408,18 @@ _For more information, please check out Prometheus [Remote storage integrations]
407408

408409
_Requires [authentication](#authentication)._
409410

411+
### Build Information
412+
413+
```
414+
POST <prometheus-http-prefix>/api/v1/status/buildinfo
415+
416+
# Legacy
417+
POST <legacy-http-prefix>/api/v1/status/buildinfo
418+
```
419+
420+
Prometheus-compatible [build information](https://prometheus.io/docs/prometheus/latest/querying/api/#build-information) endpoint.
421+
422+
_Requires [authentication](#authentication)._
410423

411424
## Querier
412425

pkg/api/handlers.go

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -213,9 +213,12 @@ func NewQuerierHandler(
213213
regexp.MustCompile(".*"),
214214
func() (v1.RuntimeInfo, error) { return v1.RuntimeInfo{}, errors.New("not implemented") },
215215
&v1.PrometheusVersion{
216-
Version: version.Version,
217-
Branch: version.Branch,
218-
Revision: version.Revision,
216+
Version: version.Version,
217+
Branch: version.Branch,
218+
Revision: version.Revision,
219+
BuildUser: version.BuildUser,
220+
BuildDate: version.BuildDate,
221+
GoVersion: version.GoVersion,
219222
},
220223
// This is used for the stats API which we should not support. Or find other ways to.
221224
prometheus.GathererFunc(func() ([]*dto.MetricFamily, error) { return nil, nil }),

pkg/api/handlers_test.go

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import (
55
"io"
66
"net/http"
77
"net/http/httptest"
8+
"runtime"
89
"strings"
910
"testing"
1011

@@ -210,18 +211,21 @@ func TestBuildInfoAPI(t *testing.T) {
210211
expected buildInfo
211212
}{
212213
{
213-
name: "empty",
214-
expected: buildInfo{Status: "success"},
214+
name: "empty",
215+
expected: buildInfo{Status: "success", Data: v1.PrometheusVersion{
216+
GoVersion: runtime.Version(),
217+
}},
215218
},
216219
{
217220
name: "set versions",
218221
version: "v0.14.0",
219222
branch: "test",
220223
revision: "foo",
221224
expected: buildInfo{Status: "success", Data: v1.PrometheusVersion{
222-
Version: "v0.14.0",
223-
Branch: "test",
224-
Revision: "foo",
225+
Version: "v0.14.0",
226+
Branch: "test",
227+
Revision: "foo",
228+
GoVersion: runtime.Version(),
225229
}},
226230
},
227231
} {

0 commit comments

Comments
 (0)