Documentation ¶
Index ¶
- type Adapter
- type AdaptersTrackerInterface
- type Grafana
- type GrafanaBoard
- type GrafanaClient
- func (g *GrafanaClient) Close()
- func (g *GrafanaClient) GetGrafanaBoards(ctx context.Context, BaseURL, APIKey, dashboardSearch string) ([]*GrafanaBoard, error)
- func (g *GrafanaClient) GrafanaQuery(ctx context.Context, BaseURL, APIKey string, queryData *url.Values) ([]byte, error)
- func (g *GrafanaClient) GrafanaQueryRange(ctx context.Context, BaseURL, APIKey string, queryData *url.Values) ([]byte, error)
- func (g *GrafanaClient) ProcessBoard(c *sdk.Client, board *sdk.Board, link *sdk.FoundBoard) (*GrafanaBoard, error)
- func (g *GrafanaClient) Validate(ctx context.Context, BaseURL, APIKey string) error
- type GrafanaDataSource
- type GrafanaPanel
- type GrafanaTemplateVars
- type HandlerConfig
- type HandlerInterface
- type K8SConfig
- type K8SContext
- type K8SNode
- type LoadGenerator
- type LoadTestOptions
- type LoadTestResponse
- type LoadTestStatus
- type MesheryResult
- type Prometheus
- type PrometheusClient
- func (p *PrometheusClient) Close()
- func (p *PrometheusClient) ComputeStep(ctx context.Context, start, end time.Time) time.Duration
- func (p *PrometheusClient) GetClusterStaticBoard(ctx context.Context, promURL string) (*GrafanaBoard, error)
- func (p *PrometheusClient) GetNodesStaticBoard(ctx context.Context, promURL string) (*GrafanaBoard, error)
- func (p *PrometheusClient) ImportGrafanaBoard(ctx context.Context, boardData []byte) (*GrafanaBoard, error)
- func (p *PrometheusClient) Query(ctx context.Context, promURL string, queryData *url.Values) ([]byte, error)
- func (p *PrometheusClient) QueryRange(ctx context.Context, promURL string, queryData *url.Values) ([]byte, error)
- func (p *PrometheusClient) QueryRangeUsingClient(ctx context.Context, promURL, query string, startTime, endTime time.Time, ...) (promModel.Value, error)
- func (p *PrometheusClient) Validate(ctx context.Context, promURL string) error
- type QueryTrackerInterface
- type SelectedGrafanaConfig
- type Session
- type SessionPersister
- type SubmitMetricsConfig
- type User
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Adapter ¶ added in v0.0.6
type Adapter struct { Location string `json:"adapter_location"` Name string `json:"name"` Ops []*meshes.SupportedOperation `json:"ops"` }
Adapter represents an adapter in Meshery
type AdaptersTrackerInterface ¶ added in v0.0.6
type AdaptersTrackerInterface interface { AddAdapter(context.Context, string) RemoveAdapter(context.Context, string) GetAdapters(context.Context) []string }
AdaptersTrackerInterface defines the methods a type should implement to be an adapter tracker
type Grafana ¶ added in v0.0.6
type Grafana struct { GrafanaURL string `json:"grafanaURL,omitempty"` GrafanaAPIKey string `json:"grafanaAPIKey,omitempty"` // GrafanaBoardSearch string `json:"grafanaBoardSearch,omitempty"` GrafanaBoards []*SelectedGrafanaConfig `json:"selectedBoardsConfigs,omitempty"` }
Grafana represents the Grafana session config
type GrafanaBoard ¶ added in v0.0.6
type GrafanaBoard struct { URI string `json:"uri,omitempty"` Title string `json:"title,omitempty"` Slug string `json:"slug,omitempty"` UID string `json:"uid,omitempty"` OrgID uint `json:"org_id,omitempty"` Panels []*sdk.Panel `json:"panels,omitempty"` TemplateVars []*GrafanaTemplateVars `json:"template_vars,omitempty"` }
GrafanaBoard represents a Grafana board
type GrafanaClient ¶ added in v0.2.4
type GrafanaClient struct {
// contains filtered or unexported fields
}
GrafanaClient represents a client to Grafana in Meshery
func NewGrafanaClient ¶ added in v0.2.4
func NewGrafanaClient() *GrafanaClient
NewGrafanaClient returns a new GrafanaClient
func NewGrafanaClientForPrometheusWithHTTPClient ¶ added in v0.2.4
func NewGrafanaClientForPrometheusWithHTTPClient(client *http.Client) *GrafanaClient
NewGrafanaClientForPrometheusWithHTTPClient returns a limited GrafanaClient for use with Prometheus with the given HTTP client
func NewGrafanaClientWithHTTPClient ¶ added in v0.2.4
func NewGrafanaClientWithHTTPClient(client *http.Client) *GrafanaClient
NewGrafanaClientWithHTTPClient returns a new GrafanaClient with the given HTTP Client
func (*GrafanaClient) Close ¶ added in v0.2.4
func (g *GrafanaClient) Close()
Close - closes idle connections
func (*GrafanaClient) GetGrafanaBoards ¶ added in v0.2.4
func (g *GrafanaClient) GetGrafanaBoards(ctx context.Context, BaseURL, APIKey, dashboardSearch string) ([]*GrafanaBoard, error)
GetGrafanaBoards retrieves all the Grafana boards matching a search
func (*GrafanaClient) GrafanaQuery ¶ added in v0.2.4
func (g *GrafanaClient) GrafanaQuery(ctx context.Context, BaseURL, APIKey string, queryData *url.Values) ([]byte, error)
GrafanaQuery parses the provided query data and queries Grafana and streams response
func (*GrafanaClient) GrafanaQueryRange ¶ added in v0.2.4
func (g *GrafanaClient) GrafanaQueryRange(ctx context.Context, BaseURL, APIKey string, queryData *url.Values) ([]byte, error)
GrafanaQueryRange parses the given params and performs Grafana range queries
func (*GrafanaClient) ProcessBoard ¶ added in v0.2.4
func (g *GrafanaClient) ProcessBoard(c *sdk.Client, board *sdk.Board, link *sdk.FoundBoard) (*GrafanaBoard, error)
ProcessBoard accepts raw Grafana board and returns a processed GrafanaBoard to be used in Meshery
type GrafanaDataSource ¶ added in v0.0.6
GrafanaDataSource represents a Grafana datasource like Prometheus
type GrafanaPanel ¶ added in v0.0.6
type GrafanaPanel struct { PType string `json:"type,omitempty"` ID uint `json:"id,omitempty"` Title string `json:"title,omitempty"` }
GrafanaPanel represents Grafana panel
type GrafanaTemplateVars ¶ added in v0.0.6
type GrafanaTemplateVars struct { Name string `json:"name,omitempty"` Query string `json:"query,omitempty"` Datasource *GrafanaDataSource `json:"datasource,omitempty"` Hide uint8 `json:"hide,omitempty"` Value interface{} `json:"value,omitempty"` }
GrafanaTemplateVars represents template variables in a bboard
type HandlerConfig ¶
type HandlerConfig struct { SessionName string RefCookieName string SessionStore sessions.Store SaaSTokenName string SaaSBaseURL string AdapterTracker AdaptersTrackerInterface QueryTracker QueryTrackerInterface Queue taskq.Queue SessionPersister SessionPersister KubeConfigFolder string GrafanaClient *GrafanaClient GrafanaClientForQuery *GrafanaClient PrometheusClient *PrometheusClient PrometheusClientForQuery *PrometheusClient }
HandlerConfig holds all the config pieces needed by handler methods
type HandlerInterface ¶
type HandlerInterface interface { AuthMiddleware(http.Handler) http.Handler SessionInjectorMiddleware(func(http.ResponseWriter, *http.Request, *sessions.Session, *User)) http.Handler LoginHandler(w http.ResponseWriter, r *http.Request) LogoutHandler(w http.ResponseWriter, req *http.Request) UserHandler(w http.ResponseWriter, r *http.Request, session *sessions.Session, user *User) K8SConfigHandler(w http.ResponseWriter, r *http.Request, session *sessions.Session, user *User) GetContextsFromK8SConfig(w http.ResponseWriter, req *http.Request) KubernetesPingHandler(w http.ResponseWriter, req *http.Request, session *sessions.Session, user *User) InstalledMeshesHandler(w http.ResponseWriter, req *http.Request, session *sessions.Session, user *User) LoadTestHandler(w http.ResponseWriter, req *http.Request, session *sessions.Session, user *User) CollectStaticMetrics(config *SubmitMetricsConfig) error FetchResultsHandler(w http.ResponseWriter, req *http.Request, session *sessions.Session, user *User) MeshAdapterConfigHandler(w http.ResponseWriter, req *http.Request, session *sessions.Session, user *User) MeshOpsHandler(w http.ResponseWriter, req *http.Request, session *sessions.Session, user *User) GetAllAdaptersHandler(w http.ResponseWriter, req *http.Request) EventStreamHandler(w http.ResponseWriter, req *http.Request, session *sessions.Session, user *User) AdapterPingHandler(w http.ResponseWriter, req *http.Request, session *sessions.Session, user *User) GrafanaConfigHandler(w http.ResponseWriter, req *http.Request, session *sessions.Session, user *User) GrafanaBoardsHandler(w http.ResponseWriter, req *http.Request, session *sessions.Session, user *User) GrafanaQueryHandler(w http.ResponseWriter, req *http.Request, session *sessions.Session, user *User) GrafanaQueryRangeHandler(w http.ResponseWriter, req *http.Request, session *sessions.Session, user *User) SaveSelectedGrafanaBoardsHandler(w http.ResponseWriter, req *http.Request, session *sessions.Session, user *User) PrometheusConfigHandler(w http.ResponseWriter, req *http.Request, session *sessions.Session, user *User) GrafanaBoardImportForPrometheusHandler(w http.ResponseWriter, req *http.Request, session *sessions.Session, user *User) PrometheusQueryHandler(w http.ResponseWriter, req *http.Request, session *sessions.Session, user *User) PrometheusQueryRangeHandler(w http.ResponseWriter, req *http.Request, session *sessions.Session, user *User) PrometheusStaticBoardHandler(w http.ResponseWriter, req *http.Request, session *sessions.Session, user *User) SaveSelectedPrometheusBoardsHandler(w http.ResponseWriter, req *http.Request, session *sessions.Session, user *User) SessionSyncHandler(w http.ResponseWriter, req *http.Request, session *sessions.Session, user *User) }
HandlerInterface defines the methods a Handler should define
type K8SConfig ¶ added in v0.0.6
type K8SConfig struct { InClusterConfig bool `json:"inClusterConfig,omitempty"` K8Sfile string `json:"k8sfile,omitempty"` Config []byte `json:"config,omitempty"` Server string `json:"configuredServer,omitempty"` ContextName string `json:"contextName,omitempty"` ClusterConfigured bool `json:"clusterConfigured,omitempty"` ServerVersion string `json:"server_version,omitempty"` Nodes []*K8SNode `json:"nodes,omitempty"` }
K8SConfig represents all the k8s session config
type K8SContext ¶ added in v0.0.6
type K8SContext struct { ContextName string `json:"contextName"` ClusterName string `json:"clusterName"` // ContextDisplayName string `json:"context-display-name"` IsCurrentContext bool `json:"currentContext"` }
K8SContext is just used to send contexts to the UI
type K8SNode ¶ added in v0.1.6
type K8SNode struct { InternalIP string `json:"internal_ip,omitempty"` HostName string `json:"hostname,omitempty"` AllocatableCPU string `json:"allocatable_cpu,omitempty"` AllocatableMemory string `json:"allocatable_memory,omitempty"` CapacityCPU string `json:"capacity_cpu,omitempty"` CapacityMemory string `json:"capacity_memory,omitempty"` OSImage string `json:"os_image,omitempty"` OperatingSystem string `json:"operating_system,omitempty"` KubeletVersion string `json:"kubelet_version,omitempty"` KubeProxyVersion string `json:"kubeproxy_version,omitempty"` ContainerRuntimeVersion string `json:"container_runtime_version,omitempty"` Architecture string `json:"architecture,omitempty"` }
K8SNode - represents a kubernetes node
type LoadGenerator ¶ added in v0.3.1
type LoadGenerator string
LoadGenerator - represents the load generator type
const ( // FortioLG - represents the Fortio load generator FortioLG LoadGenerator = "fortio" // Wrk2LG - represents the wrk2 load generator Wrk2LG LoadGenerator = "wrk2" )
type LoadTestOptions ¶ added in v0.0.6
type LoadTestOptions struct { Name string URL string HTTPQPS float64 HTTPNumThreads int IsInsecure bool Duration time.Duration LoadGenerator LoadGenerator Cert, Key, CACert string AllowInitialErrors bool IsGRPC bool GRPCStreamsCount int GRPCDoHealth bool GRPCHealthSvc string GRPCDoPing bool GRPCPingDelay time.Duration }
LoadTestOptions represents the load test options
type LoadTestResponse ¶ added in v0.2.0
type LoadTestResponse struct { Status LoadTestStatus `json:"status,omitempty"` Message string `json:"message,omitempty"` Result *MesheryResult `json:"result,omitempty"` }
LoadTestResponse - used to bundle the response with status to the client
type LoadTestStatus ¶ added in v0.2.0
type LoadTestStatus string
LoadTestStatus - used for representing load test status
const ( // LoadTestError - respresents an error status LoadTestError LoadTestStatus = "error" // LoadTestInfo - represents a info status LoadTestInfo LoadTestStatus = "info" // LoadTestSuccess - represents a success status LoadTestSuccess LoadTestStatus = "success" )
type MesheryResult ¶ added in v0.0.6
type MesheryResult struct { ID uuid.UUID `json:"meshery_id,omitempty"` Name string `json:"name,omitempty"` Mesh string `json:"mesh,omitempty"` Result map[string]interface{} `json:"runner_results,omitempty"` ServerMetrics interface{} `json:"server_metrics,omitempty"` ServerBoardConfig interface{} `json:"server_board_config,omitempty"` }
MesheryResult - represents the results from Meshery test run to be shipped
type Prometheus ¶ added in v0.0.6
type Prometheus struct { PrometheusURL string `json:"prometheusURL,omitempty"` SelectedPrometheusBoardsConfigs []*SelectedGrafanaConfig `json:"selectedPrometheusBoardsConfigs,omitempty"` }
Prometheus represents the prometheus session config
type PrometheusClient ¶ added in v0.2.4
type PrometheusClient struct {
// contains filtered or unexported fields
}
PrometheusClient represents a prometheus client in Meshery
func NewPrometheusClient ¶ added in v0.2.4
func NewPrometheusClient() *PrometheusClient
NewPrometheusClient returns a PrometheusClient
func NewPrometheusClientWithHTTPClient ¶ added in v0.2.4
func NewPrometheusClientWithHTTPClient(client *http.Client) *PrometheusClient
NewPrometheusClientWithHTTPClient returns a PrometheusClient with a given http.Client
func (*PrometheusClient) Close ¶ added in v0.2.4
func (p *PrometheusClient) Close()
Close - closes idle connections
func (*PrometheusClient) ComputeStep ¶ added in v0.2.4
ComputeStep computes the step size for a window
func (*PrometheusClient) GetClusterStaticBoard ¶ added in v0.2.4
func (p *PrometheusClient) GetClusterStaticBoard(ctx context.Context, promURL string) (*GrafanaBoard, error)
GetClusterStaticBoard retrieves the cluster static board config
func (*PrometheusClient) GetNodesStaticBoard ¶ added in v0.2.4
func (p *PrometheusClient) GetNodesStaticBoard(ctx context.Context, promURL string) (*GrafanaBoard, error)
GetNodesStaticBoard retrieves the per node static board config
func (*PrometheusClient) ImportGrafanaBoard ¶ added in v0.2.4
func (p *PrometheusClient) ImportGrafanaBoard(ctx context.Context, boardData []byte) (*GrafanaBoard, error)
ImportGrafanaBoard takes raw Grafana board json and returns GrafanaBoard pointer for use in Meshery
func (*PrometheusClient) Query ¶ added in v0.2.4
func (p *PrometheusClient) Query(ctx context.Context, promURL string, queryData *url.Values) ([]byte, error)
Query queries prometheus using the GrafanaClient
func (*PrometheusClient) QueryRange ¶ added in v0.2.4
func (p *PrometheusClient) QueryRange(ctx context.Context, promURL string, queryData *url.Values) ([]byte, error)
QueryRange queries prometheus using the GrafanaClient
type QueryTrackerInterface ¶ added in v0.0.6
type QueryTrackerInterface interface { AddOrFlagQuery(ctx context.Context, uuid, query string, flag bool) RemoveUUID(ctx context.Context, uuid string) GetQueriesForUUID(ctx context.Context, uuid string) map[string]bool }
QueryTrackerInterface defines the methods for working with query UUIDs
type SelectedGrafanaConfig ¶ added in v0.0.6
type SelectedGrafanaConfig struct { GrafanaBoard *GrafanaBoard `json:"board,omitempty"` GrafanaPanels []*sdk.Panel `json:"panels,omitempty"` SelectedTemplateVars []string `json:"templateVars,omitempty"` }
SelectedGrafanaConfig represents the selected boards, panels, and template variables
type Session ¶ added in v0.0.6
type Session struct { // User *User `json:"user,omitempty"` K8SConfig *K8SConfig `json:"k8sConfig,omitempty"` MeshAdapters []*Adapter `json:"meshAdapters,omitempty"` Grafana *Grafana `json:"grafana,omitempty"` Prometheus *Prometheus `json:"prometheus,omitempty"` }
Session represents the data stored in session / local DB
type SessionPersister ¶ added in v0.0.6
type SessionPersister interface { Read(userID string) (*Session, error) Write(userID string, data *Session) error Delete(userID string) error // Lock(userID string) // Unlock(userID string) Close() }
SessionPersister defines methods for a session persister