pgq_prometheus 0.2.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 217d7a6064aefef64ca6d358839134d52b8f56e7d3f33a69a8482ffc2d932919
4
- data.tar.gz: 80bb1462baf09e5238a9537e916bba08f5242cbd242a77cb8b0b27ef43f8567e
3
+ metadata.gz: a79fefae7129536931c001b64ac33fb5b90408c3fc49438e34f010eaf29008e0
4
+ data.tar.gz: 1920f31e7dc66ab9475a8e983c1ab56dcff685c2c108bad680b01134211f2d6e
5
5
  SHA512:
6
- metadata.gz: 8345be6719e9beb76924bfc8fcd712ad1622e4f56148e16d27301c360d91e4de617425aa968d039915f85a0b5070e3de0b3e469d7579bf17a789d955221fa3b3
7
- data.tar.gz: b413e3ac7b3e2894d9a3b0175b9c2ffc9e45a2a9a2c30615251fe90fe496b785d2fb636fdc0e225663d491896dbeb1faf120a7d449a10fa4bf3d117cefd0f592
6
+ metadata.gz: 5a64ec99b4f27f44308a264aa46cf566b9076ca7e1ee5d183471025c97d2c9677bd85b0a7eface7bf00d0412fdb33416829426d0471829f0268c3d36d98c8eea
7
+ data.tar.gz: fdeafb8d1d3659a9922ced4af5f20710775d52577557d7881bc8357e9e67bcf70fc7953c9f8729973b74d908af3580b9ec0d0aa8be41a88111e4c3c3d078640c
@@ -5,7 +5,11 @@ require 'prometheus_exporter/client'
5
5
  module PgqPrometheus
6
6
  class Processor
7
7
  class << self
8
- attr_accessor :sql_caller, :logger, :on_error
8
+ attr_accessor :sql_caller,
9
+ :logger,
10
+ :on_error,
11
+ :before_collect,
12
+ :after_collect
9
13
 
10
14
  def start(client: nil, frequency: 30, labels: nil)
11
15
  raise ArgumentError, "#{name}.sql_caller must be defined" if sql_caller.nil?
@@ -22,13 +26,15 @@ module PgqPrometheus
22
26
  logger&.info { "Start #{name}" }
23
27
  while true
24
28
  begin
29
+ before_collect&.call
25
30
  metrics = process_collector.collect
26
31
  metrics.each do |metric|
27
32
  client.send_json metric
28
33
  end
34
+ after_collect&.call
29
35
  rescue => e
30
36
  STDERR.puts "#{self.class} Failed To Collect Stats #{e.class} #{e.message}"
31
- log(:error) { "#{e.class} #{e.message} #{e.backtrace.join("\n")}" }
37
+ logger&.error { "#{e.class} #{e.message} #{e.backtrace.join("\n")}" }
32
38
  on_error&.call(e)
33
39
  end
34
40
  sleep frequency
@@ -99,12 +105,6 @@ module PgqPrometheus
99
105
  define_method(meth) { |*args, &block| self.class.public_send(meth, *args, &block) }
100
106
  end
101
107
 
102
- def log(severity)
103
- return yield if logger.nil?
104
-
105
- logger.public_send(severity) { yield }
106
- end
107
-
108
108
  def queue_metric_opts
109
109
  Config._metrics.select { |_, opts| opts[:from] == :queue }
110
110
  end
@@ -43,14 +43,14 @@ module PgqPrometheus
43
43
  # Releases active pg connection in thread.
44
44
  # Do nothing if no connection captured.
45
45
  def release_connection
46
- model_class.release_connection
46
+ model_class.connection_pool.release_connection
47
47
  end
48
48
 
49
49
  # Acquires pg connection during block execution.
50
50
  # Release it after block executed.
51
51
  # @yield
52
52
  def with_connection
53
- model_class.with_connection { yield }
53
+ model_class.connection_pool.with_connection { yield }
54
54
  end
55
55
 
56
56
  private
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module PgqPrometheus
4
- VERSION = '0.2.0'
4
+ VERSION = '0.2.1'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pgq_prometheus
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Denis Talakevich