Documentation ¶
Index ¶
- type BaseMetricsQuery
- type Client
- func (in *Client) API() v1.API
- func (in *Client) Address() string
- func (in *Client) FetchHistogramRange(metricName, labels, grouping string, q *BaseMetricsQuery) Histogram
- func (in *Client) FetchRateRange(metricName, labels, grouping string, q *BaseMetricsQuery) *Metric
- func (in *Client) GetAllRequestRates(namespace string, ratesInterval string, queryTime time.Time) (model.Vector, error)
- func (in *Client) GetAppRequestRates(namespace, app, ratesInterval string, queryTime time.Time) (model.Vector, model.Vector, error)
- func (in *Client) GetDestinationServices(namespace string, namespaceCreationTime time.Time, workloadname string) ([]Service, error)
- func (in *Client) GetMetrics(query *IstioMetricsQuery) Metrics
- func (in *Client) GetNamespaceServicesRequestRates(namespace string, ratesInterval string, queryTime time.Time) (model.Vector, error)
- func (in *Client) GetServiceRequestRates(namespace, service, ratesInterval string, queryTime time.Time) (model.Vector, error)
- func (in *Client) GetSourceWorkloads(namespace string, namespaceCreationTime time.Time, servicename string) (map[string][]Workload, error)
- func (in *Client) GetWorkloadRequestRates(namespace, workload, ratesInterval string, queryTime time.Time) (model.Vector, model.Vector, error)
- func (in *Client) Inject(api v1.API)
- type ClientInterface
- type CustomMetricsQuery
- type Histogram
- type IstioMetricsQuery
- type Metric
- type Metrics
- type Service
- type Workload
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type BaseMetricsQuery ¶ added in v0.12.0
type BaseMetricsQuery struct { v1.Range RateInterval string RateFunc string Quantiles []string Avg bool ByLabels []string }
BaseMetricsQuery holds common parameters for all kinds of queries
type Client ¶
type Client struct { ClientInterface // contains filtered or unexported fields }
Client for Prometheus API. It hides the way we query Prometheus offering a layer with a high level defined API.
func NewClient ¶
NewClient creates a new client to the Prometheus API. It returns an error on any problem.
func (*Client) API ¶
API returns the Prometheus V1 HTTP API for performing calls not supported natively by this client
func (*Client) FetchHistogramRange ¶ added in v0.12.0
func (in *Client) FetchHistogramRange(metricName, labels, grouping string, q *BaseMetricsQuery) Histogram
FetchHistogramRange fetches bucketed metric as histogram in given range
func (*Client) FetchRateRange ¶ added in v0.12.0
func (in *Client) FetchRateRange(metricName, labels, grouping string, q *BaseMetricsQuery) *Metric
FetchRateRange fetches a counter's rate in given range
func (*Client) GetAllRequestRates ¶ added in v0.6.0
func (in *Client) GetAllRequestRates(namespace string, ratesInterval string, queryTime time.Time) (model.Vector, error)
GetAllRequestRates queries Prometheus to fetch request counter rates, over a time interval, for requests into, internal to, or out of the namespace. Returns (rates, error)
func (*Client) GetAppRequestRates ¶ added in v0.6.0
func (in *Client) GetAppRequestRates(namespace, app, ratesInterval string, queryTime time.Time) (model.Vector, model.Vector, error)
GetAppRequestRates queries Prometheus to fetch request counters rates over a time interval for a given app, both in and out. Returns (in, out, error)
func (*Client) GetDestinationServices ¶ added in v0.11.0
func (*Client) GetMetrics ¶ added in v0.6.0
func (in *Client) GetMetrics(query *IstioMetricsQuery) Metrics
GetMetrics returns the Metrics related to the provided query options.
func (*Client) GetNamespaceServicesRequestRates ¶
func (in *Client) GetNamespaceServicesRequestRates(namespace string, ratesInterval string, queryTime time.Time) (model.Vector, error)
GetNamespaceServicesRequestRates queries Prometheus to fetch request counter rates, over a time interval, limited to requests for services in the namespace. Returns (rates, error)
func (*Client) GetServiceRequestRates ¶
func (in *Client) GetServiceRequestRates(namespace, service, ratesInterval string, queryTime time.Time) (model.Vector, error)
GetServiceRequestRates queries Prometheus to fetch request counters rates over a time interval for a given service (hence only inbound). Returns (in, error)
func (*Client) GetSourceWorkloads ¶ added in v0.6.0
func (in *Client) GetSourceWorkloads(namespace string, namespaceCreationTime time.Time, servicename string) (map[string][]Workload, error)
GetSourceWorkloads returns a map of list of source workloads for a given service identified by its namespace and service name. Returned map has a destination version as a key and a list of workloads as values. It returns an error on any problem.
func (*Client) GetWorkloadRequestRates ¶ added in v0.6.0
func (in *Client) GetWorkloadRequestRates(namespace, workload, ratesInterval string, queryTime time.Time) (model.Vector, model.Vector, error)
GetWorkloadRequestRates queries Prometheus to fetch request counters rates over a time interval for a given workload, both in and out. Returns (in, out, error)
type ClientInterface ¶
type ClientInterface interface { GetAllRequestRates(namespace, ratesInterval string, queryTime time.Time) (model.Vector, error) GetNamespaceServicesRequestRates(namespace, ratesInterval string, queryTime time.Time) (model.Vector, error) GetServiceRequestRates(namespace, service, ratesInterval string, queryTime time.Time) (model.Vector, error) GetAppRequestRates(namespace, app, ratesInterval string, queryTime time.Time) (model.Vector, model.Vector, error) GetWorkloadRequestRates(namespace, workload, ratesInterval string, queryTime time.Time) (model.Vector, model.Vector, error) GetSourceWorkloads(namespace string, namespaceCreationTime time.Time, servicename string) (map[string][]Workload, error) GetDestinationServices(namespace string, namespaceCreationTime time.Time, workloadname string) ([]Service, error) FetchRateRange(metricName, labels, grouping string, q *BaseMetricsQuery) *Metric FetchHistogramRange(metricName, labels, grouping string, q *BaseMetricsQuery) Histogram GetMetrics(query *IstioMetricsQuery) Metrics }
ClientInterface for mocks (only mocked function are necessary here)
type CustomMetricsQuery ¶ added in v0.12.0
type CustomMetricsQuery struct { BaseMetricsQuery Namespace string App string Version string }
CustomMetricsQuery holds query parameters for a custom metrics query
func (*CustomMetricsQuery) FillDefaults ¶ added in v0.12.0
func (q *CustomMetricsQuery) FillDefaults()
FillDefaults fills the struct with default parameters
type IstioMetricsQuery ¶ added in v0.12.0
type IstioMetricsQuery struct { BaseMetricsQuery Filters []string Namespace string App string Workload string Service string Direction string // outbound | inbound Reporter string // source | destination, defaults to source if not provided }
IstioMetricsQuery holds query parameters for a typical metrics query
func (*IstioMetricsQuery) FillDefaults ¶ added in v0.12.0
func (q *IstioMetricsQuery) FillDefaults()
FillDefaults fills the struct with default parameters
type Metric ¶
type Metric struct { Matrix model.Matrix `json:"matrix"` // contains filtered or unexported fields }
Metric holds the Prometheus Matrix model, which contains one or more time series (depending on grouping)
type Metrics ¶
type Metrics struct { Metrics map[string]*Metric `json:"metrics"` Histograms map[string]Histogram `json:"histograms"` }
Metrics contains all simple metrics and histograms data
Directories ¶
Path | Synopsis |
---|---|
Package internalmetrics provides functionality to collect Prometheus metrics.
|
Package internalmetrics provides functionality to collect Prometheus metrics. |