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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a79fefae7129536931c001b64ac33fb5b90408c3fc49438e34f010eaf29008e0
|
4
|
+
data.tar.gz: 1920f31e7dc66ab9475a8e983c1ab56dcff685c2c108bad680b01134211f2d6e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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,
|
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
|
-
|
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
|