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  }