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

  1. Configure the gitlab-exporter as described in https://gitlab.com/gitlab-org/ruby/gems/gitlab-exporter#running-gitlab-exporter-as-a-web-exporter
  2. Once configured, run bin/gitlab-exporter web -c config/gitlab-exporter.yml and check http://localhost:9168/database_sequences
  3. 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
  1. 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

Merge request reports

Loading