Metrics
GitOps Promoter produces metrics counter and histogram metrics for all network-bound operations.
Important
The metrics produced by GitOps Promoter are subject to change as the project evolves until the 1.0 release. Please refer to this document for the latest metrics.
git_operations_total
A counter of git clone operations.
Labels:
git_repository: The name of the GitRepository resource associated with the operation.scm_provider: The name of the referenced SCM provider resource (spec.scmProviderRef.name).scm_provider_kind: The kind of that reference:ScmProvider(namespaced) orClusterScmProvider(cluster-scoped).operation: The type of git operation (clone, fetch, pull, push, ls-remote).result: Whether the operation succeeded (success, failure).
git_operations_duration_seconds
A histogram of the duration of git clone operations.
Labels:
git_repository: The name of the GitRepository resource associated with the operation.scm_provider: The name of the referenced SCM provider resource (spec.scmProviderRef.name).scm_provider_kind: The kind of that reference:ScmProviderorClusterScmProvider.operation: The type of git operation (clone, fetch, pull, push, ls-remote).result: Whether the operation succeeded (success, failure).
scm_calls_total
A counter of SCM API calls.
Labels:
git_repository: The name of the GitRepository resource associated with the operation.scm_provider: The name of the referenced SCM provider resource (spec.scmProviderRef.name).scm_provider_kind: The kind of that reference:ScmProviderorClusterScmProvider.api: The SCM API being called (CommitStatus, PullRequest)operation: The type of SCM operation.- For CommitStatus, this is always create.
- For PullRequest, this is create, update, merge, close, or list.
response_code: The HTTP response code.
scm_calls_duration_seconds
A histogram of the duration of SCM API calls.
Labels:
git_repository: The name of the GitRepository resource associated with the operation.scm_provider: The name of the referenced SCM provider resource (spec.scmProviderRef.name).scm_provider_kind: The kind of that reference:ScmProviderorClusterScmProvider.api: The SCM API being called (CommitStatus, PullRequest)operation: The type of SCM operation.- For CommitStatus, this is always create.
- For PullRequest, this is create, update, merge, close, or list.
response_code: The HTTP response code.
webrequest_commit_status_http_requests_total
A counter of completed outbound HTTP round-trips from WebRequestCommitStatus reconciliation. It increments once after http.Client.Do succeeds. There is no increment when Do fails, the response is nil, the body read fails, or reconciliation fails before Do (for example during template rendering or authentication setup).
Labels:
namespace: Namespace of theWebRequestCommitStatusresource.name: Name of theWebRequestCommitStatusresource.response_code: The HTTP status code on the response (for example200,404,500).
Each distinct combination of labels is its own Prometheus time series. Clusters with very many WebRequestCommitStatus objects or many different status codes should expect proportionally more series.
webrequest_commit_status_http_request_duration_seconds
A histogram of elapsed time from http.Client.Do through finishing io.ReadAll on the response body, for the same successful round-trips counted by webrequest_commit_status_http_requests_total.
Labels:
namespace: Namespace of theWebRequestCommitStatusresource.name: Name of theWebRequestCommitStatusresource.response_code: Same semantics as forwebrequest_commit_status_http_requests_total.
scm_calls_rate_limit_limit
A gauge for the rate limit of SCM API calls.
This metric is currently only produced for GitHub.
Labels:
scm_provider: The name of the referenced SCM provider resource (spec.scmProviderRef.name).scm_provider_kind: The kind of that reference:ScmProviderorClusterScmProvider.
scm_calls_rate_limit_remaining
A gauge for the remaining rate limit of SCM API calls.
This metric is currently only produced for GitHub.
Labels:
scm_provider: The name of the referenced SCM provider resource (spec.scmProviderRef.name).scm_provider_kind: The kind of that reference:ScmProviderorClusterScmProvider.
scm_calls_rate_limit_reset_remaining_seconds
A gauge for the remaining seconds until the SCM API rate limit resets.
This metric is currently only produced for GitHub.
Labels:
scm_provider: The name of the referenced SCM provider resource (spec.scmProviderRef.name).scm_provider_kind: The kind of that reference:ScmProviderorClusterScmProvider.
webhook_processing_duration_seconds
A histogram of the duration of webhook processing.
"Processing" refers to the time taken to handle a webhook request, including any logic to find a ChangeTransferPolicy. It excludes the time taken to call the k8s API to set the reconcile annotation on the ChangeTransferPolicy, since that isn't in the webhook server's control.
Labels:
ctp_found: Whether a ChangeTransferPolicy was found for the webhook (true, false). May be false for error conditions, so check the response code.response_code: The HTTP response code of the webhook processing. 204 is the success code, which may be returned even if no ChangeTransferPolicy was found.
promoter_finalizer_dependent_resources
A gauge of the current number of dependent resources preventing deletion of a resource.
This metric is set when a deletion is blocked and shows how many dependent resources are preventing the deletion. The gauge is automatically cleared (deleted) when the finalizer is successfully removed.
Labels:
resource_type: The type of resource being deleted (GitRepository, ScmProvider, ClusterScmProvider).resource_name: The name of the resource being deleted.namespace: The namespace of the resource being deleted (empty for cluster-scoped resources).
application_watch_events_handled_total
A counter for the number of times the ArgoCD application watch event handler is called. This metric increments each time the controller processes an Argo CD application event.
No labels.
promoter_kubernetes_resources
A gauge of how many promoter.argoproj.io custom resources currently exist in the local Kubernetes cluster, broken out by API kind and readiness (for example PromotionStrategy, GitRepository).
The controller refreshes this metric on a fixed interval (30 seconds) by reading from the controller informer stores (no per-tick API list calls). It does not count resources on remote clusters that are reconciled only through multicluster configuration.
If reading from the informer store fails for a kind, that kind's gauge is set to 0 for all readiness values and an error is logged.
Labels:
kind: Kubernetes API kind of the custom resource (matches the thirteen root CRDs reconciled by GitOps Promoter, such asArgoCDCommitStatus,ChangeTransferPolicy,ClusterScmProvider,CommitStatus,ControllerConfiguration,GitCommitStatus,GitRepository,PromotionStrategy,PullRequest,RevertCommit,ScmProvider,TimedCommitStatus,WebRequestCommitStatus).readiness: Status of theReadycondition on the resource. One ofTrue,False,Unknown, or""(empty string, when theReadycondition is not present on the resource).