pgq_prometheus 0.2.0 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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
|