diff options
Diffstat (limited to 'spec/lib/gitlab/database/partitioning/partition_monitoring_spec.rb')
-rw-r--r-- | spec/lib/gitlab/database/partitioning/partition_monitoring_spec.rb | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/spec/lib/gitlab/database/partitioning/partition_monitoring_spec.rb b/spec/lib/gitlab/database/partitioning/partition_monitoring_spec.rb new file mode 100644 index 00000000000..67596211f71 --- /dev/null +++ b/spec/lib/gitlab/database/partitioning/partition_monitoring_spec.rb @@ -0,0 +1,34 @@ +# frozen_string_literal: true + +require 'spec_helper' + +RSpec.describe Gitlab::Database::Partitioning::PartitionMonitoring do + describe '#report_metrics' do + subject { described_class.new(models).report_metrics } + + let(:models) { [model] } + let(:model) { double(partitioning_strategy: partitioning_strategy, table_name: table) } + let(:partitioning_strategy) { double(missing_partitions: missing_partitions, current_partitions: current_partitions) } + let(:table) { "some_table" } + + let(:missing_partitions) do + [double] + end + + let(:current_partitions) do + [double, double] + end + + it 'reports number of present partitions' do + subject + + expect(Gitlab::Metrics.registry.get(:db_partitions_present).get({ table: table })).to eq(current_partitions.size) + end + + it 'reports number of missing partitions' do + subject + + expect(Gitlab::Metrics.registry.get(:db_partitions_missing).get({ table: table })).to eq(missing_partitions.size) + end + end +end |