Documentation ¶
Overview ¶
Package metricclient provides utility functions to start, stop, and talk to a metric server.
Index ¶
- type MetricClient
- func (c *MetricClient) Close()
- func (c *MetricClient) GetMetrics(ctx context.Context, urlParams map[string]string) (MetricData, error)
- func (c *MetricClient) HealthCheck(ctx context.Context) error
- func (c *MetricClient) ShutdownServer(ctx context.Context) error
- func (c *MetricClient) SpawnServer(ctx context.Context, baseConf *config.Config, extraArgs ...string) error
- type MetricData
- type WantMetric
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type MetricClient ¶
type MetricClient struct {
// contains filtered or unexported fields
}
MetricClient implements an HTTP client that can spawn and connect to a running runsc metrics server process and register/unregister sandbox metrics.
func NewMetricClient ¶
func NewMetricClient(addr, rootDir string) *MetricClient
NewMetricClient creates a new MetricClient that can talk to the metric server at address addr.
func (*MetricClient) GetMetrics ¶
func (c *MetricClient) GetMetrics(ctx context.Context, urlParams map[string]string) (MetricData, error)
GetMetrics returns the raw Prometheus-formatted metric data from the metric server. `urlParams` may contain a special parameter with the empty string as the key. If this is set, that string is used to override the request path from its default value of `/metrics`.
func (*MetricClient) HealthCheck ¶
func (c *MetricClient) HealthCheck(ctx context.Context) error
HealthCheck pokes the metrics server and checks that it is running.
func (*MetricClient) ShutdownServer ¶
func (c *MetricClient) ShutdownServer(ctx context.Context) error
ShutdownServer asks the metrics server to shut itself down. It blocks until the server process has exitted or the context expires.
func (*MetricClient) SpawnServer ¶
func (c *MetricClient) SpawnServer(ctx context.Context, baseConf *config.Config, extraArgs ...string) error
SpawnServer starts a metric server at the expected address. It blocks until it responds to healthchecks, or the context expires. Fails if the server fails to start or to bind within the context. Callers should call ShutdownServer to stop the server. A running server must be stopped before a new one can be successfully started. baseConf is used for passing other flags to the server, e.g. debug log directory.
type MetricData ¶
type MetricData string
MetricData is the raw contents returned by GetMetrics, with helper functions to extract single values out of it.
func (MetricData) GetPrometheusContainerInteger ¶
func (m MetricData) GetPrometheusContainerInteger(want WantMetric) (int64, time.Time, error)
GetPrometheusContainerInteger returns the integer value of a Prometheus metric from the given WantMetric data.
func (MetricData) GetPrometheusInteger ¶
func (m MetricData) GetPrometheusInteger(metricName string, wantLabels map[string]string) (int64, time.Time, error)
GetPrometheusInteger returns the integer value of a Prometheus metric with given name and labels.
func (MetricData) GetSandboxMetadataMetric ¶
func (m MetricData) GetSandboxMetadataMetric(want WantMetric) (map[string]string, error)
GetSandboxMetadataMetric returns the labels attached to the metadata metric for a given sandbox.
type WantMetric ¶
type WantMetric struct { // Metric is the name of the metric to get. Metric string // Sandbox is the ID of the sandbox to look up the metric for. Sandbox string // Pod and Namespace are the pod and namespace labels associated with the sandbox. // Leave empty if the sandbox metadata doesn't contain this information. Pod, Namespace string // ExtraLabels are additional key-value labels that must match. ExtraLabels map[string]string }
WantMetric designates the metadata required to select a single metric from a single sandbox.