github.com/grafana/pyroscope@v1.18.0/pkg/operations/v2/admin.go (about)

     1  package v2
     2  
     3  import (
     4  	"context"
     5  	"net/http"
     6  
     7  	"github.com/go-kit/log"
     8  	"github.com/grafana/dskit/services"
     9  
    10  	"github.com/grafana/pyroscope/pkg/objstore"
    11  )
    12  
    13  type Admin struct {
    14  	services.Service
    15  	logger   log.Logger
    16  	handlers *Handlers
    17  }
    18  
    19  func NewAdmin(metastoreClient MetastoreClient, bucket objstore.Bucket, logger log.Logger) (*Admin, error) {
    20  	a := &Admin{
    21  		logger: logger,
    22  		handlers: &Handlers{
    23  			Logger:          logger,
    24  			MetastoreClient: metastoreClient,
    25  			Bucket:          bucket,
    26  		},
    27  	}
    28  	a.Service = services.NewBasicService(nil, a.running, nil)
    29  	return a, nil
    30  }
    31  
    32  func (a *Admin) running(ctx context.Context) error {
    33  	<-ctx.Done()
    34  	return nil
    35  }
    36  
    37  func (a *Admin) TenantsHandler(w http.ResponseWriter, r *http.Request) {
    38  	a.handlers.CreateIndexHandler()(w, r)
    39  }
    40  
    41  func (a *Admin) BlocksHandler(w http.ResponseWriter, r *http.Request) {
    42  	a.handlers.CreateBlocksHandler()(w, r)
    43  }
    44  
    45  func (a *Admin) BlockHandler(w http.ResponseWriter, r *http.Request) {
    46  	a.handlers.CreateBlockDetailsHandler()(w, r)
    47  }
    48  
    49  func (a *Admin) DatasetHandler(w http.ResponseWriter, r *http.Request) {
    50  	a.handlers.CreateDatasetDetailsHandler()(w, r)
    51  }
    52  
    53  func (a *Admin) DatasetProfilesHandler(w http.ResponseWriter, r *http.Request) {
    54  	a.handlers.CreateDatasetProfilesHandler()(w, r)
    55  }
    56  
    57  func (a *Admin) ProfileDownloadHandler(w http.ResponseWriter, r *http.Request) {
    58  	a.handlers.CreateDatasetProfileDownloadHandler()(w, r)
    59  }
    60  
    61  func (a *Admin) ProfileCallTreeHandler(w http.ResponseWriter, r *http.Request) {
    62  	a.handlers.CreateDatasetProfileCallTreeHandler()(w, r)
    63  }
    64  
    65  func (a *Admin) DatasetTSDBIndexHandler(w http.ResponseWriter, r *http.Request) {
    66  	a.handlers.CreateDatasetTSDBIndexHandler()(w, r)
    67  }
    68  
    69  func (a *Admin) DatasetSymbolsHandler(w http.ResponseWriter, r *http.Request) {
    70  	a.handlers.CreateDatasetSymbolsHandler()(w, r)
    71  }