Class: GitLab::Exporter::Database::ZoektProber
- Inherits:
-
Object
- Object
- GitLab::Exporter::Database::ZoektProber
- Defined in:
- lib/gitlab_exporter/database/zoekt.rb
Overview
The prober which is called when gathering metrics
Instance Method Summary collapse
- #add_processing_zoekt_tasks_to_metric(row) ⇒ Object
- #add_zoekt_nodes_status_to_metric(row) ⇒ Object
- #add_zoekt_repositories_by_schema_version_to_metric(row) ⇒ Object
-
#initialize(metrics: PrometheusMetrics.new, **opts) ⇒ ZoektProber
constructor
A new instance of ZoektProber.
- #probe_db ⇒ Object
- #write_to(target) ⇒ Object
Constructor Details
#initialize(metrics: PrometheusMetrics.new, **opts) ⇒ ZoektProber
Returns a new instance of ZoektProber.
153 154 155 156 |
# File 'lib/gitlab_exporter/database/zoekt.rb', line 153 def initialize(metrics: PrometheusMetrics.new, **opts) @metrics = metrics @collector = opts[:collector] || ZoektCollector.new(**opts) end |
Instance Method Details
#add_processing_zoekt_tasks_to_metric(row) ⇒ Object
175 176 177 178 179 180 181 182 183 184 |
# File 'lib/gitlab_exporter/database/zoekt.rb', line 175 def add_processing_zoekt_tasks_to_metric(row) @metrics.add( "search_zoekt_task_processing_queue_size", row["task_count"].to_i, **{ node_name: row["node_name"], node_id: row["node_id"] }.compact ) end |
#add_zoekt_nodes_status_to_metric(row) ⇒ Object
198 199 200 201 202 203 204 205 206 207 |
# File 'lib/gitlab_exporter/database/zoekt.rb', line 198 def add_zoekt_nodes_status_to_metric(row) @metrics.add( "search_zoekt_nodes_status", row["status"].to_i, **{ zoekt_node_id: row["id"], zoekt_node_name: row["node_name"] }.compact ) end |
#add_zoekt_repositories_by_schema_version_to_metric(row) ⇒ Object
186 187 188 189 190 191 192 193 194 195 196 |
# File 'lib/gitlab_exporter/database/zoekt.rb', line 186 def add_zoekt_repositories_by_schema_version_to_metric(row) @metrics.add( "search_zoekt_repositories_schema_version_count", row[:unfinished_repository_count].to_i, **{ target_schema_version: row[:target_schema_version], zoekt_node_id: row[:zoekt_node_id], zoekt_node_name: row[:zoekt_node_name] }.compact ) end |
#probe_db ⇒ Object
158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 |
# File 'lib/gitlab_exporter/database/zoekt.rb', line 158 def probe_db results = @collector.run results[:task_processing_query_result].to_a.each do |row| add_processing_zoekt_tasks_to_metric(row) end results[:repositories_schema_version_query_result]&.each do |row| add_zoekt_repositories_by_schema_version_to_metric(row) end results[:zoekt_nodes_status_query_result]&.each do |row| add_zoekt_nodes_status_to_metric(row) end self rescue PG::ConnectionBad self end |
#write_to(target) ⇒ Object
209 210 211 |
# File 'lib/gitlab_exporter/database/zoekt.rb', line 209 def write_to(target) target.write(@metrics.to_s) end |