Documentation ¶
Index ¶
- type BaseMetricsQuery
- type Client
- func (in *Client) API() prom_v1.API
- func (in *Client) Address() string
- func (in *Client) FetchHistogramRange(metricName, labels, grouping string, q *BaseMetricsQuery) Histogram
- func (in *Client) FetchRange(metricName, labels, grouping, aggregator string, q *BaseMetricsQuery) *Metric
- 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) GetConfiguration() (prom_v1.ConfigResult, error)
- func (in *Client) GetFlags() (prom_v1.FlagsResult, 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) GetWorkloadRequestRates(namespace, workload, ratesInterval string, queryTime time.Time) (model.Vector, model.Vector, error)
- func (in *Client) Inject(api prom_v1.API)
- type ClientInterface
- type CustomMetricsQuery
- type Histogram
- type IstioMetricsQuery
- type Metric
- type Metrics
- type PromCache
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 { prom_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) FetchRange ¶ added in v0.14.0
func (in *Client) FetchRange(metricName, labels, grouping, aggregator string, q *BaseMetricsQuery) *Metric
FetchRange fetches a simple metric (gauge or counter) 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. Note that it does not discriminate on "reporter", so rates can be inflated due to duplication, and therefore should be used mainly for calculating ratios (e.g total rates / error rates). 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. Note that it does not discriminate on "reporter", so rates can be inflated due to duplication, and therefore should be used mainly for calculating ratios (e.g total rates / error rates). Returns (in, out, error)
func (*Client) GetConfiguration ¶ added in v0.15.0
func (in *Client) GetConfiguration() (prom_v1.ConfigResult, error)
func (*Client) GetFlags ¶ added in v0.15.0
func (in *Client) GetFlags() (prom_v1.FlagsResult, error)
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. Note that it does not discriminate on "reporter", so rates can be inflated due to duplication, and therefore should be used mainly for calculating ratios (e.g total rates / error rates). 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). Note that it does not discriminate on "reporter", so rates can be inflated due to duplication, and therefore should be used mainly for calculating ratios (e.g total rates / error rates). Returns (in, error)
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. Note that it does not discriminate on "reporter", so rates can be inflated due to duplication, and therefore should be used mainly for calculating ratios (e.g total rates / error rates). Returns (in, out, error)
type ClientInterface ¶
type ClientInterface interface { FetchHistogramRange(metricName, labels, grouping string, q *BaseMetricsQuery) Histogram FetchRange(metricName, labels, grouping, aggregator string, q *BaseMetricsQuery) *Metric FetchRateRange(metricName, labels, grouping string, q *BaseMetricsQuery) *Metric GetAllRequestRates(namespace, ratesInterval string, queryTime time.Time) (model.Vector, error) GetAppRequestRates(namespace, app, ratesInterval string, queryTime time.Time) (model.Vector, model.Vector, error) GetConfiguration() (prom_v1.ConfigResult, error) GetFlags() (prom_v1.FlagsResult, error) GetMetrics(query *IstioMetricsQuery) Metrics GetNamespaceServicesRequestRates(namespace, ratesInterval string, queryTime time.Time) (model.Vector, error) GetServiceRequestRates(namespace, service, ratesInterval string, queryTime time.Time) (model.Vector, error) GetWorkloadRequestRates(namespace, workload, ratesInterval string, queryTime time.Time) (model.Vector, model.Vector, error) }
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 RawDataAggregator 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 RequestProtocol string // e.g. http | grpc Reporter string // source | destination, defaults to source if not provided Aggregate string AggregateValue string }
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 ¶
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
type PromCache ¶ added in v1.26.0
type PromCache interface { GetAllRequestRates(namespace string, ratesInterval string, queryTime time.Time) (bool, model.Vector) GetAppRequestRates(namespace, app, ratesInterval string, queryTime time.Time) (bool, model.Vector, model.Vector) GetNamespaceServicesRequestRates(namespace string, ratesInterval string, queryTime time.Time) (bool, model.Vector) GetServiceRequestRates(namespace, service, ratesInterval string, queryTime time.Time) (bool, model.Vector) GetWorkloadRequestRates(namespace, workload, ratesInterval string, queryTime time.Time) (bool, model.Vector, model.Vector) SetAllRequestRates(namespace string, ratesInterval string, queryTime time.Time, inResult model.Vector) SetAppRequestRates(namespace, app, ratesInterval string, queryTime time.Time, inResult model.Vector, outResult model.Vector) SetNamespaceServicesRequestRates(namespace string, ratesInterval string, queryTime time.Time, inResult model.Vector) SetServiceRequestRates(namespace, service, ratesInterval string, queryTime time.Time, inResult model.Vector) SetWorkloadRequestRates(namespace, workload, ratesInterval string, queryTime time.Time, inResult model.Vector, outResult model.Vector) }
func NewPromCache ¶ added in v1.26.0
func NewPromCache() PromCache
Directories ¶
Path | Synopsis |
---|---|
Package internalmetrics provides functionality to collect Prometheus metrics.
|
Package internalmetrics provides functionality to collect Prometheus metrics. |