Metrics
Prometheus Metrics
Some Prow components expose Prometheus metrics that can be used for monitoring and alerting. The following table describes the metrics that are currently available.
| Component | Type | Metric | Labels | Description | 
|---|---|---|---|---|
| Tide | Gauge | pooledprs | org, repo, branch | The number of PRs in each Tide pool. | 
| Gauge | updatetime | org, repo, branch | The last time each Tide pool was synced. | |
| Gauge | syncdur | The Tide sync controller loop duration. | ||
| Gauge | statusupdatedur | The Tide status controller loop duration. | ||
| Histogram | merges | org, repo, branch | A histogram of the number of PRs in each merge. | |
| Counter | tidepoolerrors | org, repo, branch | Count of Tide pool sync errors. | |
| Counter | tidequeryresults | query_index, org_shard, result | Count of Tide queries by query index, org shard, and result (success/error). | |
| Counter | tidesyncheartbeat | controller | Count of Tide syncs per controller. | |
| Hook | Counter | prow_webhook_counter | event_type | The number of GitHub webhooks received by Prow. | 
| Plank/Jenkins-Operator | Gauge | prowjobs | job_name, type, state | The number of ProwJobs. | 
| Jenkins-Operator | Counter | jenkins_requests | verb, handler, code | The number of jenkins requests made by Prow. | 
| Counter | jenkins_request_retries | The number of jenkins request retries Prow has made. | ||
| Histogram | jenkins_request_latency | verb, handler | A histogram of round trip times between Prow and Jenkins. | |
| Histogram | resync_period_seconds | A histogram of the jenkins controller loop duration. | ||
| Bugzilla | Histogram | bugzilla_request_duration | method, status | Bugzilla request duration by API path. | 
| Sinker | Gauge | sinker_pods_existing | Number of the existing pods in each sinker cleaning. | |
| Gauge | sinker_loop_duration_seconds | Time used in each sinker cleaning. | ||
| Gauge | sinker_pods_removed | reason | Number of pods removed in each sinker cleaning. | |
| Gauge | sinker_pod_removal_errors | reason | Number of errors which occurred in each sinker pod cleaning. | |
| Gauge | sinker_prow_jobs_existing | Number of the existing prow jobs in each sinker cleaning. | ||
| Gauge | sinker_prow_jobs_cleaned | reason | Number of prow jobs cleaned in each sinker cleaning. | |
| Gauge | sinker_prow_jobs_cleaning_errors | reason | Number of errors which occurred in each sinker prow job cleaning. | |
| Crier | Histogram | crier_report_latency | reporter | Histogram of time spent reporting, calculated by the time difference between job completion and end of reporting. | 
| Counter | crier_reporting_results | reporter, result | Count of successful and failed reporting attempts by reporter. | |
| Flagutil | Counter | kubernetes_failed_client_creations | cluster | The number of clusters for which we failed to create a client. | 
| Gerrit/Adapter | Counter | gerrit_processing_results | instance, repo, result | Count of change processing by instance, repo, and result. | 
| Histogram | gerrit_trigger_latency | instance | Histogram of seconds between triggering event and ProwJob creation time. | |
| Gerrit/Client | Counter | gerrit_query_results | instance, repo, result | Count of Gerrit API queries by instance, repo, and result. | 
| GitHub | Gauge | github_user_info | token_hash, login, email | Metadata about a user, tied to their token hash. | 
| GitHub-Server | Counter | prow_webhook_counter | event_type | A counter of the webhooks made to prow. | 
| Counter | prow_webhook_response_codes | response_code | A counter of the different responses hook has responded to webhooks with. | |
| Histogram | prow_plugin_handle_duration_seconds | event_type, action, plugin, took_action | How long Prow took to handle an event by plugin, event type and action. | |
| Counter | prow_plugin_handle_errors | event_type, action, plugin, took_action | Prow errors handling an event by plugin, event type and action. | |
| Jenkins | Counter | jenkins_requests | verb, handler, code | Number of Jenkins requests made from prow. | 
| Counter | jenkins_request_retries | Number of Jenkins request retries made from prow. | ||
| Histogram | jenkins_request_latency | verb, handler | Time for a request to roundtrip between prow and Jenkins. | |
| Histogram | resync_period_seconds | Time the controller takes to complete one reconciliation loop. | ||
| Jira | Histogram | jira_request_duration_seconds | method, path, status | |
| Kube | Gauge | prowjobs | job_namespace, job_name, type, state, org, repo, base_ref, cluster, retest | Number of prowjobs in the system. | 
| Counter | prowjob_state_transitions | job_namespace, job_name, type, state, org, repo, base_ref, cluster, retest | Number of prowjobs transitioning states. | |
| Plugins | Gauge | prow_configmap_size_bytes | name, namespace | Size of data fields in ConfigMaps updated automatically by Prow in bytes. | 
| Pubsub/Subscriber | Counter | prow_pubsub_message_counter | subscription | A counter of the webhooks made to prow. | 
| Counter | prow_pubsub_error_counter | subscription, error_type | A counter of the webhooks made to prow. | |
| Counter | prow_pubsub_ack_counter | subscription | A counter for message acked made to prow. | |
| Counter | prow_pubsub_nack_counter | subscription | A counter for message nacked made to prow. | |
| Counter | prow_pubsub_response_codes | response_code, subscription | A counter of the different responses server has responded to Push Events with. | |
| Version | Gauge | prow_version | Prow Version. | 
Pushgateway and Proxy
To support metric collection from ephemeral tasks like request handling and to
provide a single scrape endpoint, Prow’s prometheus metrics are pushed to a
Prometheus pushgateway that is scraped instead of the metric source. A proxy is
used to limit cluster external requests to GET requests since Prometheus doesn’t
provide any form of authentication. The pushgateway and proxy deployment are
defined in pushgateway_deployment.yaml.
Kubernetes Prow Metrics
Prometheus metrics from the Kubernetes Prow instance are used to create the graphs at http://monitoring.prow.k8s.io
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.