Upgrade Advisory

This documentation is for Flux (v1) and Helm Operator (v1). Both projects are in maintenance mode and will soon reach end-of-life. We strongly recommend you familiarise yourself with the newest Flux and start looking at your migration path.

For documentation regarding the latest Flux, please refer to this section.

Monitoring Flux

The Flux daemon exposes /metrics endpoints which can be scraped for monitoring data in Prometheus format; exact metric names and help are available from the endpoints themselves.

The following metrics are exposed:

metric description
flux_cache_request_duration_seconds Duration of cache requests, in seconds.
flux_client_fetch_duration_seconds Duration of remote image metadata requests
flux_daemon_job_duration_seconds Duration of job execution, in seconds
flux_daemon_queue_duration_seconds Duration of time spent in the job queue before execution
flux_daemon_queue_length_count Count of jobs waiting in the queue to be run
flux_daemon_sync_duration_seconds Duration of git-to-cluster synchronisation
flux_daemon_sync_manifests Number of manifests being synced to cluster
flux_registry_fetch_duration_seconds Duration of image metadata requests (from cache)
flux_fluxd_connection_duration_seconds Duration in seconds of the current connection to fluxsvc
flux_git_ready Status of the git repository

Flux sync state can be obtained by using the following PromQL expressions:

  • delta(flux_daemon_sync_duration_seconds_count{success='true'}[6m]) < 1 - for general flux sync errors - usually if that is true then there are some problems with infrastructure or there are manifests parse error or there are manifests with duplicate ids.

  • flux_daemon_sync_manifests{success='false'} > 0 - for git manifests errors - if true then there are either some problems with applying git manifests to kubernetes - e.g. configmap size is too big to fit in annotations or immutable field (like label selector) was changed.

  • flux_git_ready < 1 - for git clone/fetch/push errors. If true then there are some problems in the git repository, or the repository cannot be reached.