Class: GitLab::Exporter::Database::ZoektProber

Inherits:
Object
  • Object
show all
Defined in:
lib/gitlab_exporter/database/zoekt.rb

Overview

The prober which is called when gathering metrics

Instance Method Summary collapse

Constructor Details

#initialize(metrics: PrometheusMetrics.new, **opts) ⇒ ZoektProber

Returns a new instance of ZoektProber.



71
72
73
74
# File 'lib/gitlab_exporter/database/zoekt.rb', line 71

def initialize(metrics: PrometheusMetrics.new, **opts)
  @metrics = metrics
  @collector = opts[:collector] || ZoektCollector.new(**opts)
end

Instance Method Details

#probe_dbObject



76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
# File 'lib/gitlab_exporter/database/zoekt.rb', line 76

def probe_db
  results = @collector.run
  results.to_a.each do |row|
    @metrics.add(
      "search_zoekt_task_processing_queue_size",
      row["task_count"].to_i,
      node_name: row["node_name"],
      node_id: row["node_id"]
    )
  end

  self
rescue PG::ConnectionBad
  self
end

#write_to(target) ⇒ Object



92
93
94
# File 'lib/gitlab_exporter/database/zoekt.rb', line 92

def write_to(target)
  target.write(@metrics.to_s)
end