Collects metrics from pg_sequences
Overview
Adds a new collector and probe to collect metrics from pg sequences. It's going to be used mainly to monitor cells sequences.
gitlab-org/gitlab#439940 (closed)
More details in this discussion: gitlab-org/gitlab!174042 (comment 2235362944)
How-to
- Configure the
gitlab-exporteras described in https://gitlab.com/gitlab-org/ruby/gems/gitlab-exporter#running-gitlab-exporter-as-a-web-exporter - Once configured, run
bin/gitlab-exporter web -c config/gitlab-exporter.ymland check http://localhost:9168/database_sequences - There will be 4 metrics available:
-
gitlab_pg_sequences_saturation_ratio: Saturation ratio from the sequence (100 * current-value/max-value) -
gitlab_pg_sequences_current_value: The current value of the sequence -
gitlab_pg_sequences_max_value: The sequence configured max value -
gitlab_pg_sequences_min_value: The sequence configured min value
- You can test with production data, using a https://console.postgres.ai/ clone and the connection string
dbname=gitlabhq_dblab host=localhost port=PORT user=USER password=PASS
Example Metrics
gitlab_pg_sequences_min_value{schemaname="public",sequencename="abuse_events_id_seq",fully_qualified_sequencename="public.abuse_events_id_seq"} 1.0
gitlab_pg_sequences_min_value{schemaname="public",sequencename="abuse_report_assignees_id_seq",fully_qualified_sequencename="public.abuse_report_assignees_id_seq"} 1.0
gitlab_pg_sequences_min_value{schemaname="public",sequencename="abuse_report_events_id_seq",fully_qualified_sequencename="public.abuse_report_events_id_seq"} 1.0
gitlab_pg_sequences_min_value{schemaname="public",sequencename="abuse_report_label_links_id_seq",fully_qualified_sequencename="public.abuse_report_label_links_id_seq"} 1.0
gitlab_pg_sequences_min_value{schemaname="public",sequencename="abuse_report_labels_id_seq",fully_qualified_sequencename="public.abuse_report_labels_id_seq"} 1.0
gitlab_pg_sequences_min_value{schemaname="public",sequencename="abuse_report_notes_id_seq",fully_qualified_sequencename="public.abuse_report_notes_id_seq"} 1.0
gitlab_pg_sequences_min_value{schemaname="public",sequencename="abuse_report_user_mentions_id_seq",fully_qualified_sequencename="public.abuse_report_user_mentions_id_seq"} 1.0
gitlab_pg_sequences_min_value{schemaname="public",sequencename="abuse_reports_id_seq",fully_qualified_sequencename="public.abuse_reports_id_seq"} 1.0
gitlab_pg_sequences_min_value{schemaname="public",sequencename="abuse_trust_scores_id_seq",fully_qualified_sequencename="public.abuse_trust_scores_id_seq"} 1.0
gitlab_pg_sequences_max_value{schemaname="public",sequencename="abuse_events_id_seq",fully_qualified_sequencename="public.abuse_events_id_seq"} 9.223372036854776e+18
gitlab_pg_sequences_max_value{schemaname="public",sequencename="abuse_report_assignees_id_seq",fully_qualified_sequencename="public.abuse_report_assignees_id_seq"} 9.223372036854776e+18
gitlab_pg_sequences_max_value{schemaname="public",sequencename="abuse_report_events_id_seq",fully_qualified_sequencename="public.abuse_report_events_id_seq"} 9.223372036854776e+18
gitlab_pg_sequences_max_value{schemaname="public",sequencename="abuse_report_label_links_id_seq",fully_qualified_sequencename="public.abuse_report_label_links_id_seq"} 9.223372036854776e+18
gitlab_pg_sequences_max_value{schemaname="public",sequencename="abuse_report_labels_id_seq",fully_qualified_sequencename="public.abuse_report_labels_id_seq"} 9.223372036854776e+18
gitlab_pg_sequences_max_value{schemaname="public",sequencename="abuse_report_notes_id_seq",fully_qualified_sequencename="public.abuse_report_notes_id_seq"} 9.223372036854776e+18
gitlab_pg_sequences_max_value{schemaname="public",sequencename="abuse_report_user_mentions_id_seq",fully_qualified_sequencename="public.abuse_report_user_mentions_id_seq"} 9.223372036854776e+18
gitlab_pg_sequences_current_value{schemaname="public",sequencename="abuse_events_id_seq",fully_qualified_sequencename="public.abuse_events_id_seq"} 6.223372036854745e+18
gitlab_pg_sequences_current_value{schemaname="public",sequencename="abuse_report_assignees_id_seq",fully_qualified_sequencename="public.abuse_report_assignees_id_seq"} 0.0
gitlab_pg_sequences_current_value{schemaname="public",sequencename="abuse_report_events_id_seq",fully_qualified_sequencename="public.abuse_report_events_id_seq"} 0.0
gitlab_pg_sequences_current_value{schemaname="public",sequencename="abuse_report_label_links_id_seq",fully_qualified_sequencename="public.abuse_report_label_links_id_seq"} 56.0
gitlab_pg_sequences_current_value{schemaname="public",sequencename="abuse_report_labels_id_seq",fully_qualified_sequencename="public.abuse_report_labels_id_seq"} 23.0
gitlab_pg_sequences_current_value{schemaname="public",sequencename="abuse_report_notes_id_seq",fully_qualified_sequencename="public.abuse_report_notes_id_seq"} 0.0
gitlab_pg_sequences_current_value{schemaname="public",sequencename="abuse_report_user_mentions_id_seq",fully_qualified_sequencename="public.abuse_report_user_mentions_id_seq"} 0.0
gitlab_pg_sequences_current_value{schemaname="public",sequencename="abuse_reports_id_seq",fully_qualified_sequencename="public.abuse_reports_id_seq"} 23.0
gitlab_pg_sequences_current_value{schemaname="public",sequencename="abuse_trust_scores_id_seq",fully_qualified_sequencename="public.abuse_trust_scores_id_seq"} 0.0
Edited by Leonardo da Rosa