phlare

package
v0.0.0-...-fb7f86c Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 18, 2023 License: AGPL-3.0 Imports: 28 Imported by: 0

Documentation

Index

Constants

View Source
const ITEM_OFFSET = 4

ITEM_OFFSET Next bar. Each bar of the profile is represented by 4 number in a flat array.

View Source
const NAME_OFFSET = 3

NAME_OFFSET is index into the names array

View Source
const SELF_OFFSET = 2

SELF_OFFSET is self value of the bar

View Source
const START_OFFSET = 0

START_OFFSET is offset of the bar relative to previous sibling

View Source
const VALUE_OFFSET = 1

VALUE_OFFSET is value or width of the bar

Variables

This section is empty.

Functions

func NewPhlareDatasource

func NewPhlareDatasource(httpClientProvider httpclient.Provider, settings backend.DataSourceInstanceSettings, ac accesscontrol.AccessControl) (instancemgmt.Instance, error)

NewPhlareDatasource creates a new datasource instance.

Types

type App

type App struct {
	Name string `json:"name"`
}

type BackendTypeRespBody

type BackendTypeRespBody struct {
	BackendType string `json:"backendType"` // "phlare" or "pyroscope"
}

type CustomMeta

type CustomMeta struct {
	ProfileTypeID string
}

type EnumField

type EnumField struct {
	// contains filtered or unexported fields
}

func NewEnumField

func NewEnumField(name string, labels data.Labels) *EnumField

func (*EnumField) Append

func (e *EnumField) Append(value string)

func (*EnumField) GetField

func (e *EnumField) GetField() *data.Field

type Flamebearer

type Flamebearer struct {
	Names   []string
	Levels  []*Level
	Total   int64
	MaxSelf int64
}

type Function

type Function struct {
	FunctionName string
	FileName     string // optional
	Line         int64  // optional
}

func (Function) String

func (f Function) String() string

type Group

type Group struct {
	StartTime     int64   `json:"startTime"`
	Samples       []int64 `json:"samples"`
	DurationDelta int64   `json:"durationDelta"`
}

type JsonData

type JsonData struct {
	BackendType string `json:"backendType"`
}

type LabelPair

type LabelPair struct {
	Name  string
	Value string
}

type LabelValuesPayload

type LabelValuesPayload struct {
	Query string
	Label string
	Start int64
	End   int64
}

type Level

type Level struct {
	Values []int64
}

type Metadata

type Metadata struct {
	Units string `json:"units"`
}

type PhlareClient

type PhlareClient struct {
	// contains filtered or unexported fields
}

func NewPhlareClient

func NewPhlareClient(httpClient *http.Client, url string) *PhlareClient

func (*PhlareClient) GetProfile

func (c *PhlareClient) GetProfile(ctx context.Context, profileTypeID, labelSelector string, start, end int64, maxNodes *int64) (*ProfileResponse, error)

func (*PhlareClient) GetSeries

func (c *PhlareClient) GetSeries(ctx context.Context, profileTypeID string, labelSelector string, start int64, end int64, groupBy []string, step float64) (*SeriesResponse, error)

func (*PhlareClient) LabelNames

func (c *PhlareClient) LabelNames(ctx context.Context, query string, start int64, end int64) ([]string, error)

func (*PhlareClient) LabelValues

func (c *PhlareClient) LabelValues(ctx context.Context, query string, label string, start int64, end int64) ([]string, error)

func (*PhlareClient) ProfileTypes

func (c *PhlareClient) ProfileTypes(ctx context.Context) ([]*ProfileType, error)

type PhlareDatasource

type PhlareDatasource struct {
	// contains filtered or unexported fields
}

PhlareDatasource is a datasource for querying application performance profiles.

func (*PhlareDatasource) CallResource

func (*PhlareDatasource) CheckHealth

CheckHealth handles health checks sent from Grafana to the plugin. The main use case for these health checks is the test button on the datasource configuration page which allows users to verify that a datasource is working as expected.

func (*PhlareDatasource) PublishStream

PublishStream is called when a client sends a message to the stream.

func (*PhlareDatasource) QueryData

QueryData handles multiple queries and returns multiple responses. req contains the queries []DataQuery (where each query contains RefID as a unique identifier). The QueryDataResponse contains a map of RefID to the response for each query, and each response contains Frames ([]*Frame).

func (*PhlareDatasource) RunStream

RunStream is called once for any open channel. Results are shared with everyone subscribed to the same channel.

func (*PhlareDatasource) SubscribeStream

SubscribeStream is called when a client wants to connect to a stream. This callback allows sending the first message.

type Point

type Point struct {
	Value float64
	// Milliseconds unix timestamp
	Timestamp int64
}

type ProfileResponse

type ProfileResponse struct {
	Flamebearer *Flamebearer
	Units       string
}

type ProfileTree

type ProfileTree struct {
	Start int64
	Value int64
	Self  int64
	Level int
	Name  string
	Nodes []*ProfileTree
}

func (*ProfileTree) String

func (pt *ProfileTree) String() string

type ProfileType

type ProfileType struct {
	ID    string `json:"id"`
	Label string `json:"label"`
}

type ProfilingClient

type ProfilingClient interface {
	ProfileTypes(context.Context) ([]*ProfileType, error)
	LabelNames(ctx context.Context, query string, start int64, end int64) ([]string, error)
	LabelValues(ctx context.Context, query string, label string, start int64, end int64) ([]string, error)
	GetSeries(ctx context.Context, profileTypeID string, labelSelector string, start int64, end int64, groupBy []string, step float64) (*SeriesResponse, error)
	GetProfile(ctx context.Context, profileTypeID string, labelSelector string, start int64, end int64, maxNodes *int64) (*ProfileResponse, error)
}

type PyroFlamebearer

type PyroFlamebearer struct {
	Levels   [][]int64 `json:"levels"`
	MaxSelf  int64     `json:"maxSelf"`
	NumTicks int64     `json:"numTicks"`
	Names    []string  `json:"names"`
}

type PyroscopeClient

type PyroscopeClient struct {
	URL string
	// contains filtered or unexported fields
}

func NewPyroscopeClient

func NewPyroscopeClient(httpClient *http.Client, url string) *PyroscopeClient

func (*PyroscopeClient) GetProfile

func (c *PyroscopeClient) GetProfile(ctx context.Context, profileTypeID, labelSelector string, start, end int64, maxNodes *int64) (*ProfileResponse, error)

func (*PyroscopeClient) GetSeries

func (c *PyroscopeClient) GetSeries(ctx context.Context, profileTypeID string, labelSelector string, start, end int64, groupBy []string, step float64) (*SeriesResponse, error)

func (*PyroscopeClient) LabelNames

func (c *PyroscopeClient) LabelNames(ctx context.Context, query string, start int64, end int64) ([]string, error)

func (*PyroscopeClient) LabelValues

func (c *PyroscopeClient) LabelValues(ctx context.Context, query string, label string, start int64, end int64) ([]string, error)

func (*PyroscopeClient) ProfileTypes

func (c *PyroscopeClient) ProfileTypes(ctx context.Context) ([]*ProfileType, error)

type PyroscopeProfileResponse

type PyroscopeProfileResponse struct {
	Flamebearer *PyroFlamebearer  `json:"flamebearer"`
	Metadata    *Metadata         `json:"metadata"`
	Groups      map[string]*Group `json:"groups"`
}

type Series

type Series struct {
	Labels []*LabelPair
	Points []*Point
}

type SeriesResponse

type SeriesResponse struct {
	Series []*Series
	Units  string
	Label  string
}

type Service

type Service struct {
	// contains filtered or unexported fields
}

func ProvideService

func ProvideService(httpClientProvider httpclient.Provider, ac accesscontrol.AccessControl) *Service

func (*Service) CallResource

func (*Service) CheckHealth

func (*Service) PublishStream

PublishStream is called when a client sends a message to the stream.

func (*Service) QueryData

func (*Service) RunStream

func (s *Service) RunStream(ctx context.Context, req *backend.RunStreamRequest, sender *backend.StreamSender) error

func (*Service) SubscribeStream

Directories

Path Synopsis
kinds

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL