Skip to main content
Version: Next

Monitoring

The monitoring.openeverest.io API group holds the resources that connect instances to monitoring systems. For a task-oriented guide, see Monitoring.

Work in progress

These resources were added after OpenEverest 2.0.0 Developer Preview 4. Fields may change before General Availability.

Short names: mclass, mdest, mbind.

MonitoringClass​

A cluster-scoped monitoring technology. A monitoring extension installs the class and runs the controller that claims it; you rarely create one yourself.

apiVersion: monitoring.openeverest.io/v1alpha1
kind: MonitoringClass
metadata:
name: pmm
spec:
displayName: Percona Monitoring and Management
providerManaged:
integration: pmm
agentImage: percona/pmm-client:3.8.0
agentVersion: 3.8.0
destinationParametersSchema:
openAPIV3Schema:
type: object
required: [url]
properties:
url:
type: string
authModes:
- name: ServiceAccountToken
credentials:
required: [token]
FieldDescription
displayName, descriptionShown in the UI.
providerManagedSet when providers fulfil the class with their Operator's native integration. integration is matched against the providers' spec.monitoring.integrations; agentImage and agentVersion are the agent the providers run.
extensionManagedSet when the extension fulfils the class from the endpoints providers publish. requires.metrics says the class needs metrics endpoints.
destinationParametersSchemaSchema of MonitoringDestination.spec.parameters.
instanceParametersSchemaSchema of the per-instance parameters in Instance.spec.monitoring.destinations.
authModesAuthentication modes a destination can use, and the keys its credentials Secret must contain. WorkloadIdentity and Anonymous are reserved modes that take no Secret.
uiSchemaHints for the forms in the UI.

Status:

  • The Accepted condition is set by the extension's controller when it claims the class. It stays Unknown (Pending) until then.
  • providers has one entry per installed provider: the mode its instances get (ProviderManaged or ExtensionManaged), the disruption that enabling the class causes (None or RollingRestart), or a reason and message when the provider is incompatible.

MonitoringDestination​

A monitoring server in a namespace. Instances in the same namespace can send to it.

apiVersion: monitoring.openeverest.io/v1alpha1
kind: MonitoringDestination
metadata:
name: pmm-prod
namespace: demo
spec:
classRef:
name: pmm
parameters:
url: https://pmm.example.com
authentication:
mode: ServiceAccountToken
credentialsSecretRef:
name: pmm-token
tls:
ca:
secretKeyRef:
name: pmm-ca
key: ca.crt
FieldDescription
classRef.nameRequired. The MonitoringClass. Immutable.
parametersSettings defined by the class, such as the server URL.
authentication.modeOne of the class's authModes. Defaults to Anonymous, which only some classes accept.
authentication.credentialsSecretRef.nameSecret in the same namespace with the credentials. Required for every mode except WorkloadIdentity and Anonymous.
tls.ca.secretKeyRefSecret key holding the PEM CA bundle that the server certificate is verified against.
tls.insecureSkipVerifyDon't verify the server certificate. Can't be combined with tls.ca.

Status:

  • Accepted — set by OpenEverest: the class exists, the parameters match its schema, the mode is supported and the credentials are found. Reasons include ClassNotFound, InvalidParameters, AuthModeUnsupported, CredentialsNotFound and InvalidCABundle.
  • Ready — set by the extension: the server is reachable and accepts the credentials. Reasons: Ready, Pending, Unreachable, Unauthorized, UnsupportedServerVersion, InvalidParameters.
  • serverVersion — the version the server reported.

MonitoringBinding​

Created by OpenEverest for every entry in an instance's spec.monitoring.destinations, named <instance>-<entry>-<hash>. Don't create or edit bindings yourself.

FieldDescription
spec.instanceRef, spec.destinationRef, spec.classRefThe instance, destination and class the binding links.
spec.executionModeProviderManaged or ExtensionManaged, resolved once when the binding is accepted.
spec.parametersThe per-instance parameters of the entry.

Status:

  • Accepted — set by OpenEverest: the destination and class exist and the instance's provider can send to the class. Reasons include DestinationNotFound, ClassNotFound, ClassNotAccepted, ProviderNotFound, IntegrationUnsupported, IntegrationInUse, Incompatible, InvalidParameters and AuthModeUnsupported.
  • Configured — set by whoever fulfils the binding (the provider or the extension). Reasons: Configured, AgentTLSNotVerified, Pending, MaintenancePending, Retained, NotAccepted, RenderFailed, ApplyFailed, AgentNotReady, EndpointNotServing, ServerTooOld, NotSelected.

Instance and Provider fields​

FieldDescription
Instance.spec.monitoring.destinations[]Up to 8 entries, each with a name, a destinationRef.name in the instance's namespace and optional parameters. Each destination can be listed once.
Instance.status.monitoring.destinations[]Per entry: the resolved mode and the configured status, reason and message from the binding.
Instance.status.monitoring.sourcesThe metrics endpoints and credentials the instance publishes for extension-managed classes.
Instance condition MonitoringConfiguredTrue when every destination is configured.
Provider.spec.monitoring.integrationsOperator-native integrations the provider can render, keyed by name (for example pmm), with the supported agentVersions and authModes.
Provider.spec.monitoring.componentTypesWhat each component type exposes: its engine kind (for example postgresql) and whether metrics are Native, through an Exporter, or None.