Class: GitLab::Exporter::Database::RowCountProber
- Inherits:
-
Object
- Object
- GitLab::Exporter::Database::RowCountProber
- Defined in:
- lib/gitlab_exporter/database/row_count.rb
Overview
The prober which is called when gathering metrics
Instance Method Summary collapse
-
#initialize(opts, metrics: PrometheusMetrics.new, logger: nil) ⇒ RowCountProber
constructor
rubocop:disable Lint/UnusedMethodArgument.
- #probe_db ⇒ Object
- #write_to(target) ⇒ Object
Constructor Details
#initialize(opts, metrics: PrometheusMetrics.new, logger: nil) ⇒ RowCountProber
rubocop:disable Lint/UnusedMethodArgument
215 216 217 218 219 220 221 |
# File 'lib/gitlab_exporter/database/row_count.rb', line 215 def initialize(opts, metrics: PrometheusMetrics.new, logger: nil) # rubocop:disable Lint/UnusedMethodArgument @metrics = metrics @collector = RowCountCollector.new( connection_string: opts[:connection_string], selected_queries: opts[:selected_queries] ) end |
Instance Method Details
#probe_db ⇒ Object
223 224 225 226 227 228 229 230 231 232 233 234 235 |
# File 'lib/gitlab_exporter/database/row_count.rb', line 223 def probe_db results = @collector.run results.each do |query_name, result| labels = { query_name: query_name.to_s } result.each do |row| @metrics.add("gitlab_database_rows", row[:count].to_f, **labels, **row[:labels]) end end self rescue PG::ConnectionBad self end |
#write_to(target) ⇒ Object
237 238 239 |
# File 'lib/gitlab_exporter/database/row_count.rb', line 237 def write_to(target) target.write(@metrics.to_s) end |