github.com/grafana/pyroscope@v1.18.0/pkg/api/api_experimental.go (about) 1 package api 2 3 import ( 4 "net/http" 5 6 queryv1 "github.com/grafana/pyroscope/api/gen/proto/go/query/v1" 7 segmentwriterv1 "github.com/grafana/pyroscope/api/gen/proto/go/segmentwriter/v1" 8 metastoreadmin "github.com/grafana/pyroscope/pkg/metastore/admin" 9 "github.com/grafana/pyroscope/pkg/querybackend" 10 "github.com/grafana/pyroscope/pkg/segmentwriter" 11 ) 12 13 // TODO(kolesnikovae): Recovery interceptor. 14 15 func (a *API) RegisterSegmentWriter(svc *segmentwriter.SegmentWriterService) { 16 segmentwriterv1.RegisterSegmentWriterServiceServer(a.server.GRPC, svc) 17 } 18 19 // RegisterSegmentWriterRing registers the ring UI page associated with the distributor for writes. 20 func (a *API) RegisterSegmentWriterRing(r http.Handler) { 21 a.RegisterRoute("/ring-segment-writer", r, a.registerOptionsRingPage()...) 22 a.indexPage.AddLinks(defaultWeight, "Segment Writer", []IndexPageLink{ 23 {Desc: "Ring status", Path: "/ring-segment-writer"}, 24 }) 25 } 26 27 func (a *API) RegisterQueryBackend(svc *querybackend.QueryBackend) { 28 queryv1.RegisterQueryBackendServiceServer(a.server.GRPC, svc) 29 } 30 31 func (a *API) RegisterMetastoreAdmin(adm *metastoreadmin.Admin) { 32 a.RegisterRoute("/metastore-nodes", adm.NodeListHandler(), a.registerOptionsRingPage()...) 33 a.RegisterRoute("/metastore-client-test", adm.ClientTestHandler(), a.registerOptionsRingPage()...) 34 a.indexPage.AddLinks(defaultWeight, "Metastore", []IndexPageLink{ 35 {Desc: "Nodes", Path: "/metastore-nodes"}, 36 {Desc: "Client Test", Path: "/metastore-client-test"}, 37 }) 38 }