Documentation
¶
Index ¶
- Constants
- func SetConfigDefaults(config *rest.Config)
- func UnstructuredFromAlertmanager(a *Alertmanager) (*unstructured.Unstructured, error)
- func UnstructuredFromPrometheus(p *Prometheus) (*unstructured.Unstructured, error)
- func UnstructuredFromServiceMonitor(s *ServiceMonitor) (*unstructured.Unstructured, error)
- type AlertingSpec
- type Alertmanager
- type AlertmanagerEndpoints
- type AlertmanagerInterface
- type AlertmanagerList
- type AlertmanagerSpec
- type AlertmanagerStatus
- type AlertmanagersGetter
- type BasicAuth
- type Endpoint
- type MonitoringV1alpha1Client
- func (c *MonitoringV1alpha1Client) Alertmanagers(namespace string) AlertmanagerInterface
- func (c *MonitoringV1alpha1Client) Prometheuses(namespace string) PrometheusInterface
- func (c *MonitoringV1alpha1Client) RESTClient() rest.Interface
- func (c *MonitoringV1alpha1Client) ServiceMonitors(namespace string) ServiceMonitorInterface
- type MonitoringV1alpha1Interface
- type NamespaceSelector
- type Prometheus
- type PrometheusInterface
- type PrometheusList
- type PrometheusSpec
- type PrometheusStatus
- type PrometheusesGetter
- type ServiceMonitor
- type ServiceMonitorInterface
- type ServiceMonitorList
- type ServiceMonitorSpec
- type ServiceMonitorsGetter
- type StorageSpec
- type TLSConfig
Constants ¶
const ( AlertmanagersKind = "Alertmanager" AlertmanagerName = "alertmanagers" )
const ( Group = "monitoring.coreos.com" Version = "v1alpha1" )
const ( PrometheusesKind = "Prometheus" PrometheusName = "prometheuses" )
const ( ServiceMonitorsKind = "ServiceMonitor" ServiceMonitorName = "servicemonitors" )
Variables ¶
This section is empty.
Functions ¶
func SetConfigDefaults ¶ added in v0.12.0
func UnstructuredFromAlertmanager ¶
func UnstructuredFromAlertmanager(a *Alertmanager) (*unstructured.Unstructured, error)
UnstructuredFromAlertmanager marshals an Alertmanager object into dynamic client's unstructured
func UnstructuredFromPrometheus ¶
func UnstructuredFromPrometheus(p *Prometheus) (*unstructured.Unstructured, error)
UnstructuredFromPrometheus marshals a Prometheus object into dynamic client's unstructured
func UnstructuredFromServiceMonitor ¶
func UnstructuredFromServiceMonitor(s *ServiceMonitor) (*unstructured.Unstructured, error)
UnstructuredFromServiceMonitor marshals a ServiceMonitor object into dynamic client's unstructured
Types ¶
type AlertingSpec ¶
type AlertingSpec struct {
// AlertmanagerEndpoints Prometheus should fire alerts against.
Alertmanagers []AlertmanagerEndpoints `json:"alertmanagers"`
}
AlertingSpec defines parameters for alerting configuration of Prometheus servers.
type Alertmanager ¶
type Alertmanager struct {
metav1.TypeMeta `json:",inline"`
// Standard object’s metadata. More info:
// http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata
metav1.ObjectMeta `json:"metadata,omitempty"`
// Specification of the desired behavior of the Alertmanager cluster. More info:
// http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status
Spec AlertmanagerSpec `json:"spec"`
// Most recent observed status of the Alertmanager cluster. Read-only. Not
// included when requesting from the apiserver, only from the Prometheus
// Operator API itself. More info:
// http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status
Status *AlertmanagerStatus `json:"status,omitempty"`
}
Alertmanager describes an Alertmanager cluster.
func AlertmanagerFromUnstructured ¶
func AlertmanagerFromUnstructured(r *unstructured.Unstructured) (*Alertmanager, error)
AlertmanagerFromUnstructured unmarshals an Alertmanager object from dynamic client's unstructured
func (*Alertmanager) DeepCopyObject ¶ added in v0.16.0
func (l *Alertmanager) DeepCopyObject() runtime.Object
DeepCopyObject implements the runtime.Object interface.
type AlertmanagerEndpoints ¶
type AlertmanagerEndpoints struct {
// Namespace of Endpoints object.
Namespace string `json:"namespace"`
// Name of Endpoints object in Namespace.
Name string `json:"name"`
// Port the Alertmanager API is exposed on.
Port intstr.IntOrString `json:"port"`
// Scheme to use when firing alerts.
Scheme string `json:"scheme,omitempty"`
// Prefix for the HTTP path alerts are pushed to.
PathPrefix string `json:"pathPrefix,omitempty"`
}
AlertmanagerEndpoints defines a selection of a single Endpoints object containing alertmanager IPs to fire alerts against.
type AlertmanagerInterface ¶
type AlertmanagerInterface interface {
Create(*Alertmanager) (*Alertmanager, error)
Get(name string, opts metav1.GetOptions) (*Alertmanager, error)
Update(*Alertmanager) (*Alertmanager, error)
Delete(name string, options *metav1.DeleteOptions) error
List(opts metav1.ListOptions) (runtime.Object, error)
Watch(opts metav1.ListOptions) (watch.Interface, error)
DeleteCollection(dopts *metav1.DeleteOptions, lopts metav1.ListOptions) error
}
type AlertmanagerList ¶
type AlertmanagerList struct {
metav1.TypeMeta `json:",inline"`
// Standard list metadata
// More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata
metav1.ListMeta `json:"metadata,omitempty"`
// List of Alertmanagers
Items []Alertmanager `json:"items"`
}
AlertmanagerList is a list of Alertmanagers.
func (*AlertmanagerList) DeepCopyObject ¶ added in v0.16.0
func (l *AlertmanagerList) DeepCopyObject() runtime.Object
DeepCopyObject implements the runtime.Object interface.
type AlertmanagerSpec ¶
type AlertmanagerSpec struct {
// Standard object’s metadata. More info:
// http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata
// Metadata Labels and Annotations gets propagated to the prometheus pods.
PodMetadata *metav1.ObjectMeta `json:"podMetadata,omitempty"`
// Version the cluster should be on.
Version string `json:"version,omitempty"`
// Base image that is used to deploy pods.
BaseImage string `json:"baseImage,omitempty"`
// An optional list of references to secrets in the same namespace
// to use for pulling prometheus and alertmanager images from registries
// see http://kubernetes.io/docs/user-guide/images#specifying-imagepullsecrets-on-a-pod
ImagePullSecrets []v1.LocalObjectReference `json:"imagePullSecrets,omitempty"`
// Size is the expected size of the alertmanager cluster. The controller will
// eventually make the size of the running cluster equal to the expected
// size.
Replicas *int32 `json:"replicas,omitempty"`
// Storage is the definition of how storage will be used by the Alertmanager
// instances.
Storage *StorageSpec `json:"storage,omitempty"`
// The external URL the Alertmanager instances will be available under. This is
// necessary to generate correct URLs. This is necessary if Alertmanager is not
// served from root of a DNS name.
ExternalURL string `json:"externalUrl,omitempty"`
// The route prefix Alertmanager registers HTTP handlers for. This is useful,
// if using ExternalURL and a proxy is rewriting HTTP routes of a request,
// and the actual ExternalURL is still true, but the server serves requests
// under a different route prefix. For example for use with `kubectl proxy`.
RoutePrefix string `json:"routePrefix,omitempty"`
// If set to true all actions on the underlaying managed objects are not
// goint to be performed, except for delete actions.
Paused bool `json:"paused,omitempty"`
// Define which Nodes the Pods are scheduled on.
NodeSelector map[string]string `json:"nodeSelector,omitempty"`
// Define resources requests and limits for single Pods.
Resources v1.ResourceRequirements `json:"resources,omitempty"`
// Priority class assigned to the Pods
PriorityClassName string `json:"priorityClassName,omitempty"`
}
AlertmanagerSpec is the specification of the desired behavior of the Alertmanager cluster. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status
type AlertmanagerStatus ¶
type AlertmanagerStatus struct {
// Represents whether any actions on the underlaying managed objects are
// being performed. Only delete actions will be performed.
Paused bool `json:"paused"`
// Total number of non-terminated pods targeted by this Alertmanager
// cluster (their labels match the selector).
Replicas int32 `json:"replicas"`
// Total number of non-terminated pods targeted by this Alertmanager
// cluster that have the desired version spec.
UpdatedReplicas int32 `json:"updatedReplicas"`
// Total number of available pods (ready for at least minReadySeconds)
// targeted by this Alertmanager cluster.
AvailableReplicas int32 `json:"availableReplicas"`
UnavailableReplicas int32 `json:"unavailableReplicas"`
}
AlertmanagerStatus is the most recent observed status of the Alertmanager cluster. Read-only. Not included when requesting from the apiserver, only from the Prometheus Operator API itself. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status
type AlertmanagersGetter ¶
type AlertmanagersGetter interface {
Alertmanagers(namespace string) AlertmanagerInterface
}
type BasicAuth ¶ added in v0.9.0
type BasicAuth struct {
// The secret that contains the username for authenticate
Username v1.SecretKeySelector `json:"username,omitempty"`
// The secret that contains the password for authenticate
Password v1.SecretKeySelector `json:"password,omitempty"`
}
BasicAuth allow an endpoint to authenticate over basic authentication More info: https://prometheus.io/docs/operating/configuration/#endpoints
type Endpoint ¶
type Endpoint struct {
// Name of the service port this endpoint refers to. Mutually exclusive with targetPort.
Port string `json:"port,omitempty"`
// Name or number of the target port of the endpoint. Mutually exclusive with port.
TargetPort intstr.IntOrString `json:"targetPort,omitempty"`
// HTTP path to scrape for metrics.
Path string `json:"path,omitempty"`
// HTTP scheme to use for scraping.
Scheme string `json:"scheme,omitempty"`
// Interval at which metrics should be scraped
Interval string `json:"interval,omitempty"`
// Timeout after which the scrape is ended
ScrapeTimeout string `json:"scrapeTimeout,omitempty"`
// TLS configuration to use when scraping the endpoint
TLSConfig *TLSConfig `json:"tlsConfig,omitempty"`
// File to read bearer token for scraping targets.
BearerTokenFile string `json:"bearerTokenFile,omitempty"`
// HonorLabels chooses the metric's labels on collisions with target labels.
HonorLabels bool `json:"honorLabels,omitempty"`
// BasicAuth allow an endpoint to authenticate over basic authentication
// More info: https://prometheus.io/docs/operating/configuration/#endpoints
BasicAuth *BasicAuth `json:"basicAuth,omitempty"`
// ProxyURL eg http://proxyserver:2195 Directs scrapes to proxy through this endpoint.
ProxyURL *string `json:"proxyUrl,omitempty"`
}
Endpoint defines a scrapeable endpoint serving Prometheus metrics.
type MonitoringV1alpha1Client ¶
type MonitoringV1alpha1Client struct {
// contains filtered or unexported fields
}
func NewForConfig ¶
func NewForConfig(c *rest.Config) (*MonitoringV1alpha1Client, error)
func (*MonitoringV1alpha1Client) Alertmanagers ¶
func (c *MonitoringV1alpha1Client) Alertmanagers(namespace string) AlertmanagerInterface
func (*MonitoringV1alpha1Client) Prometheuses ¶
func (c *MonitoringV1alpha1Client) Prometheuses(namespace string) PrometheusInterface
func (*MonitoringV1alpha1Client) RESTClient ¶
func (c *MonitoringV1alpha1Client) RESTClient() rest.Interface
func (*MonitoringV1alpha1Client) ServiceMonitors ¶
func (c *MonitoringV1alpha1Client) ServiceMonitors(namespace string) ServiceMonitorInterface
type MonitoringV1alpha1Interface ¶
type MonitoringV1alpha1Interface interface {
RESTClient() rest.Interface
PrometheusesGetter
AlertmanagersGetter
ServiceMonitorsGetter
}
type NamespaceSelector ¶
type NamespaceSelector struct {
// Boolean describing whether all namespaces are selected in contrast to a
// list restricting them.
Any bool `json:"any,omitempty"`
// List of namespace names.
MatchNames []string `json:"matchNames,omitempty"`
}
NamespaceSelector is a selector for selecting either all namespaces or a list of namespaces.
type Prometheus ¶
type Prometheus struct {
metav1.TypeMeta `json:",inline"`
// Standard object’s metadata. More info:
// http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata
metav1.ObjectMeta `json:"metadata,omitempty"`
// Specification of the desired behavior of the Prometheus cluster. More info:
// http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status
Spec PrometheusSpec `json:"spec"`
// Most recent observed status of the Prometheus cluster. Read-only. Not
// included when requesting from the apiserver, only from the Prometheus
// Operator API itself. More info:
// http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status
Status *PrometheusStatus `json:"status,omitempty"`
}
Prometheus defines a Prometheus deployment.
func PrometheusFromUnstructured ¶
func PrometheusFromUnstructured(r *unstructured.Unstructured) (*Prometheus, error)
PrometheusFromUnstructured unmarshals a Prometheus object from dynamic client's unstructured
func (*Prometheus) DeepCopyObject ¶ added in v0.16.0
func (l *Prometheus) DeepCopyObject() runtime.Object
DeepCopyObject implements the runtime.Object interface.
type PrometheusInterface ¶
type PrometheusInterface interface {
Create(*Prometheus) (*Prometheus, error)
Get(name string, opts metav1.GetOptions) (*Prometheus, error)
Update(*Prometheus) (*Prometheus, error)
Delete(name string, options *metav1.DeleteOptions) error
List(opts metav1.ListOptions) (runtime.Object, error)
Watch(opts metav1.ListOptions) (watch.Interface, error)
DeleteCollection(dopts *metav1.DeleteOptions, lopts metav1.ListOptions) error
}
type PrometheusList ¶
type PrometheusList struct {
metav1.TypeMeta `json:",inline"`
// Standard list metadata
// More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata
metav1.ListMeta `json:"metadata,omitempty"`
// List of Prometheuses
Items []*Prometheus `json:"items"`
}
PrometheusList is a list of Prometheuses.
func (*PrometheusList) DeepCopyObject ¶ added in v0.16.0
func (l *PrometheusList) DeepCopyObject() runtime.Object
DeepCopyObject implements the runtime.Object interface.
type PrometheusSpec ¶
type PrometheusSpec struct {
// Standard object’s metadata. More info:
// http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata
// Metadata Labels and Annotations gets propagated to the prometheus pods.
PodMetadata *metav1.ObjectMeta `json:"podMetadata,omitempty"`
// ServiceMonitors to be selected for target discovery.
ServiceMonitorSelector *metav1.LabelSelector `json:"serviceMonitorSelector,omitempty"`
// Version of Prometheus to be deployed.
Version string `json:"version,omitempty"`
// When a Prometheus deployment is paused, no actions except for deletion
// will be performed on the underlying objects.
Paused bool `json:"paused,omitempty"`
// Base image to use for a Prometheus deployment.
BaseImage string `json:"baseImage,omitempty"`
// An optional list of references to secrets in the same namespace
// to use for pulling prometheus and alertmanager images from registries
// see http://kubernetes.io/docs/user-guide/images#specifying-imagepullsecrets-on-a-pod
ImagePullSecrets []v1.LocalObjectReference `json:"imagePullSecrets,omitempty"`
// Number of instances to deploy for a Prometheus deployment.
Replicas *int32 `json:"replicas,omitempty"`
// Time duration Prometheus shall retain data for.
Retention string `json:"retention,omitempty"`
// Interval between consecutive evaluations.
EvaluationInterval string `json:"evaluationInterval,omitempty"`
// The labels to add to any time series or alerts when communicating with
// external systems (federation, remote storage, Alertmanager).
ExternalLabels map[string]string `json:"externalLabels,omitempty"`
// The external URL the Prometheus instances will be available under. This is
// necessary to generate correct URLs. This is necessary if Prometheus is not
// served from root of a DNS name.
ExternalURL string `json:"externalUrl,omitempty"`
// The route prefix Prometheus registers HTTP handlers for. This is useful,
// if using ExternalURL and a proxy is rewriting HTTP routes of a request,
// and the actual ExternalURL is still true, but the server serves requests
// under a different route prefix. For example for use with `kubectl proxy`.
RoutePrefix string `json:"routePrefix,omitempty"`
// Storage spec to specify how storage shall be used.
Storage *StorageSpec `json:"storage,omitempty"`
// A selector to select which ConfigMaps to mount for loading rule files from.
RuleSelector *metav1.LabelSelector `json:"ruleSelector,omitempty"`
// Define details regarding alerting.
Alerting AlertingSpec `json:"alerting,omitempty"`
// Define resources requests and limits for single Pods.
Resources v1.ResourceRequirements `json:"resources,omitempty"`
// Define which Nodes the Pods are scheduled on.
NodeSelector map[string]string `json:"nodeSelector,omitempty"`
// ServiceAccountName is the name of the ServiceAccount to use to run the
// Prometheus Pods.
ServiceAccountName string `json:"serviceAccountName,omitempty"`
// Secrets is a list of Secrets in the same namespace as the Prometheus
// object, which shall be mounted into the Prometheus Pods.
// The Secrets are mounted into /etc/prometheus/secrets/<secret-name>.
// Secrets changes after initial creation of a Prometheus object are not
// reflected in the running Pods. To change the secrets mounted into the
// Prometheus Pods, the object must be deleted and recreated with the new list
// of secrets.
Secrets []string `json:"secrets,omitempty"`
// EvaluationInterval string `json:"evaluationInterval"`
// Remote RemoteSpec `json:"remote"`
// Sharding...
// Priority class assigned to the Pods
PriorityClassName string `json:"priorityClassName,omitempty"`
}
PrometheusSpec is the specification of the desired behavior of the Prometheus cluster. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status
type PrometheusStatus ¶
type PrometheusStatus struct {
// Represents whether any actions on the underlaying managed objects are
// being performed. Only delete actions will be performed.
Paused bool `json:"paused"`
// Total number of non-terminated pods targeted by this Prometheus deployment
// (their labels match the selector).
Replicas int32 `json:"replicas"`
// Total number of non-terminated pods targeted by this Prometheus deployment
// that have the desired version spec.
UpdatedReplicas int32 `json:"updatedReplicas"`
// Total number of available pods (ready for at least minReadySeconds)
// targeted by this Prometheus deployment.
AvailableReplicas int32 `json:"availableReplicas"`
UnavailableReplicas int32 `json:"unavailableReplicas"`
}
PrometheusStatus is the most recent observed status of the Prometheus cluster. Read-only. Not included when requesting from the apiserver, only from the Prometheus Operator API itself. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status
type PrometheusesGetter ¶
type PrometheusesGetter interface {
Prometheuses(namespace string) PrometheusInterface
}
type ServiceMonitor ¶
type ServiceMonitor struct {
metav1.TypeMeta `json:",inline"`
// Standard object’s metadata. More info:
// http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata
metav1.ObjectMeta `json:"metadata,omitempty"`
// Specification of desired Service selection for target discrovery by
// Prometheus.
Spec ServiceMonitorSpec `json:"spec"`
}
ServiceMonitor defines monitoring for a set of services.
func ServiceMonitorFromUnstructured ¶
func ServiceMonitorFromUnstructured(r *unstructured.Unstructured) (*ServiceMonitor, error)
ServiceMonitorFromUnstructured unmarshals a ServiceMonitor object from dynamic client's unstructured
func (*ServiceMonitor) DeepCopyObject ¶ added in v0.16.0
func (l *ServiceMonitor) DeepCopyObject() runtime.Object
DeepCopyObject implements the runtime.Object interface.
type ServiceMonitorInterface ¶
type ServiceMonitorInterface interface {
Create(*ServiceMonitor) (*ServiceMonitor, error)
Get(name string, opts metav1.GetOptions) (*ServiceMonitor, error)
Update(*ServiceMonitor) (*ServiceMonitor, error)
Delete(name string, options *metav1.DeleteOptions) error
List(opts metav1.ListOptions) (runtime.Object, error)
Watch(opts metav1.ListOptions) (watch.Interface, error)
DeleteCollection(dopts *metav1.DeleteOptions, lopts metav1.ListOptions) error
}
type ServiceMonitorList ¶
type ServiceMonitorList struct {
metav1.TypeMeta `json:",inline"`
// Standard list metadata
// More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata
metav1.ListMeta `json:"metadata,omitempty"`
// List of ServiceMonitors
Items []*ServiceMonitor `json:"items"`
}
ServiceMonitorList is a list of ServiceMonitors.
func (*ServiceMonitorList) DeepCopyObject ¶ added in v0.16.0
func (l *ServiceMonitorList) DeepCopyObject() runtime.Object
DeepCopyObject implements the runtime.Object interface.
type ServiceMonitorSpec ¶
type ServiceMonitorSpec struct {
// The label to use to retrieve the job name from.
JobLabel string `json:"jobLabel,omitempty"`
// A list of endpoints allowed as part of this ServiceMonitor.
Endpoints []Endpoint `json:"endpoints"`
// Selector to select Endpoints objects.
Selector metav1.LabelSelector `json:"selector"`
// Selector to select which namespaces the Endpoints objects are discovered from.
NamespaceSelector NamespaceSelector `json:"namespaceSelector,omitempty"`
}
ServiceMonitorSpec contains specification parameters for a ServiceMonitor.
type ServiceMonitorsGetter ¶
type ServiceMonitorsGetter interface {
ServiceMonitors(namespace string) ServiceMonitorInterface
}
type StorageSpec ¶
type StorageSpec struct {
// Name of the StorageClass to use when requesting storage provisioning. More
// info: https://kubernetes.io/docs/user-guide/persistent-volumes/#storageclasses
// DEPRECATED
Class string `json:"class"`
// A label query over volumes to consider for binding.
// DEPRECATED
Selector *metav1.LabelSelector `json:"selector"`
// Resources represents the minimum resources the volume should have. More
// info: http://kubernetes.io/docs/user-guide/persistent-volumes#resources
// DEPRECATED
Resources v1.ResourceRequirements `json:"resources"`
// A PVC spec to be used by the Prometheus StatefulSets.
VolumeClaimTemplate v1.PersistentVolumeClaim `json:"volumeClaimTemplate,omitempty"`
}
StorageSpec defines the configured storage for a group Prometheus servers.
type TLSConfig ¶
type TLSConfig struct {
// The CA cert to use for the targets.
CAFile string `json:"caFile,omitempty"`
// The client cert file for the targets.
CertFile string `json:"certFile,omitempty"`
// The client key file for the targets.
KeyFile string `json:"keyFile,omitempty"`
// Used to verify the hostname for the targets.
ServerName string `json:"serverName,omitempty"`
// Disable target certificate validation.
InsecureSkipVerify bool `json:"insecureSkipVerify,omitempty"`
}
TLSConfig specifies TLS configuration parameters.