Skip to content

Commit ca17700

Browse files
authored
Merge pull request #165 from prometheus-community/better-rest-docs
Clarify documentation
2 parents 2ac7627 + 0f5fd1e commit ca17700

File tree

2 files changed

+23
-9
lines changed

2 files changed

+23
-9
lines changed

cmd/promql-langserver/promql-langserver.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ import (
2323

2424
kitlog "github.com/go-kit/kit/log"
2525
promClient "github.com/prometheus-community/promql-langserver/prometheus"
26-
"github.com/prometheus/client_golang/prometheus"
2726

2827
"github.com/prometheus-community/promql-langserver/langserver"
2928
"github.com/prometheus-community/promql-langserver/rest"
@@ -59,7 +58,7 @@ func main() {
5958

6059
logger = kitlog.NewSyncLogger(logger)
6160

62-
handler, err := rest.CreateInstHandler(context.Background(), prometheusClient, prometheus.NewRegistry(), logger)
61+
handler, err := rest.CreateInstHandler(context.Background(), prometheusClient, logger)
6362
if err != nil {
6463
log.Fatal(err)
6564
}

rest/handler.go

Lines changed: 22 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -33,36 +33,51 @@ import (
3333

3434
// CreateHandler creates an http.Handler for the PromQL langserver REST API.
3535
//
36-
// Expects a prometheus Client as a second argument.
36+
// If metadata is fetched from a remote Prometheus, the metadataService
37+
// implementation from the promql-langserver/prometheus package can be used,
38+
// otherwise you need to provide your own implementation of the interface.
39+
//
3740
// The provided Logger should be synchronized.
3841
func CreateHandler(ctx context.Context, metadataService promClient.MetadataService, logger log.Logger) (http.Handler, error) {
39-
return CreateInstHandler(ctx, metadataService, nil, logger)
42+
return createHandler(ctx, metadataService, logger, false)
4043
}
4144

4245
// CreateInstHandler creates an instrumented http.Handler for the PromQL langserver REST API.
46+
// In addition to the endpoints created with CreateHandler, a /metrics endpoint // is provided.
47+
//
48+
// If you use the REST API with some middleware that already provides its own
49+
// instrumentation, use CreateHandler instead.
50+
//
51+
// If metadata is fetched from a remote Prometheus, the metadataService
52+
// implementation from the promql-langserver/prometheus package can be used,
53+
// otherwise you need to provide your own implementation of the interface.
4354
//
44-
// Expects a prometheus Client as a second argument and a Registry as third argument.
4555
// The provided Logger should be synchronized.
46-
func CreateInstHandler(ctx context.Context, metadataService promClient.MetadataService, r *prometheus.Registry, logger log.Logger) (http.Handler, error) {
56+
func CreateInstHandler(ctx context.Context, metadataService promClient.MetadataService, logger log.Logger) (http.Handler, error) {
57+
return createHandler(ctx, metadataService, logger, true)
58+
}
59+
func createHandler(ctx context.Context, metadataService promClient.MetadataService, logger log.Logger, metricsEnpoint bool) (http.Handler, error) {
4760
lgs, err := langserver.CreateHeadlessServer(ctx, metadataService, logger)
4861
if err != nil {
4962
return nil, err
5063
}
5164

5265
ls := &langserverHandler{langserver: lgs}
5366
ls.m = make(map[string]http.Handler)
54-
ls.createHandlers(r)
67+
ls.createHandlers(metricsEnpoint)
5568

5669
return ls, nil
5770
}
5871

59-
func (h *langserverHandler) createHandlers(r *prometheus.Registry) {
72+
func (h *langserverHandler) createHandlers(metricsEndpoint bool) {
6073
diagnostics := newSubHandler(h, diagnosticsHandler)
6174
completion := newSubHandler(h, completionHandler)
6275
hover := newSubHandler(h, hoverHandler)
6376
signatureHelp := newSubHandler(h, signatureHelpHandler)
6477

65-
if r != nil {
78+
if metricsEndpoint {
79+
r := prometheus.NewRegistry()
80+
6681
httpRequestsTotal := prometheus.NewCounterVec(prometheus.CounterOpts{
6782
Name: "http_requests_total",
6883
Help: "Count of all HTTP requests",

0 commit comments

Comments
 (0)