prometheus_exporter 0.4.12 → 0.4.13
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 +4 -4
- data/CHANGELOG +4 -0
- data/README.md +1 -1
- data/lib/prometheus_exporter/instrumentation/sidekiq.rb +9 -5
- data/lib/prometheus_exporter/server/puma_collector.rb +5 -0
- data/lib/prometheus_exporter/server/unicorn_collector.rb +5 -0
- data/lib/prometheus_exporter/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2ab1a1e0efbea1b4fd2613ae1f733bb693fbfba91373a9687f4e66e1f9d70361
|
4
|
+
data.tar.gz: 0a798a9908fe29500b06fb153270ab413631e781a29e6fc490d40d682b40bcc4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1034d8636dd53f4bd801f957b550a34b03e8179a74341f194b45bc7ec3fddd00ae55817b1668d87d9147ba60d03ad7b401c3f49acb1d03013f9944f60c84c5a4
|
7
|
+
data.tar.gz: 20bf37da5d593f206391f741025b1c010a5cf036f468d391c22feb5e2e998b8ffb55213b948df5491fc3c81bc78398feb66749432fb63283b468aafade1ccb7a
|
data/CHANGELOG
CHANGED
data/README.md
CHANGED
@@ -16,7 +16,7 @@ To learn more see [Instrumenting Rails with Prometheus](https://samsaffron.com/a
|
|
16
16
|
* [Delayed Job plugin](#delayed-job-plugin)
|
17
17
|
* [Hutch metrics](#hutch-message-processing-tracer)
|
18
18
|
* [Puma metrics](#puma-metrics)
|
19
|
-
* [Unicorn metrics](#unicorn-metrics)
|
19
|
+
* [Unicorn metrics](#unicorn-process-metrics)
|
20
20
|
* [Custom type collectors](#custom-type-collectors)
|
21
21
|
* [Multi process mode with custom collector](#multi-process-mode-with-custom-collector)
|
22
22
|
* [GraphQL support](#graphql-support)
|
@@ -4,11 +4,15 @@ module PrometheusExporter::Instrumentation
|
|
4
4
|
class Sidekiq
|
5
5
|
def self.death_handler
|
6
6
|
-> (job, ex) do
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
7
|
+
job_is_fire_and_forget = job["retry"] == false
|
8
|
+
|
9
|
+
unless job_is_fire_and_forget
|
10
|
+
PrometheusExporter::Client.default.send_json(
|
11
|
+
type: "sidekiq",
|
12
|
+
name: job["class"],
|
13
|
+
dead: true,
|
14
|
+
)
|
15
|
+
end
|
12
16
|
end
|
13
17
|
end
|
14
18
|
|
@@ -2,6 +2,7 @@
|
|
2
2
|
|
3
3
|
module PrometheusExporter::Server
|
4
4
|
class PumaCollector < TypeCollector
|
5
|
+
MAX_PUMA_METRIC_AGE = 30
|
5
6
|
PUMA_GAUGES = {
|
6
7
|
workers_total: "Number of puma workers.",
|
7
8
|
booted_workers_total: "Number of puma workers booted.",
|
@@ -47,6 +48,10 @@ module PrometheusExporter::Server
|
|
47
48
|
end
|
48
49
|
|
49
50
|
def collect(obj)
|
51
|
+
now = ::Process.clock_gettime(::Process::CLOCK_MONOTONIC)
|
52
|
+
|
53
|
+
obj["created_at"] = now
|
54
|
+
@puma_metrics.delete_if { |m| m["created_at"] + MAX_PUMA_METRIC_AGE < now }
|
50
55
|
@puma_metrics << obj
|
51
56
|
end
|
52
57
|
end
|
@@ -3,6 +3,8 @@
|
|
3
3
|
# custom type collector for prometheus_exporter for handling the metrics sent from
|
4
4
|
# PrometheusExporter::Instrumentation::Unicorn
|
5
5
|
class PrometheusExporter::Server::UnicornCollector < PrometheusExporter::Server::TypeCollector
|
6
|
+
MAX_UNICORN_METRIC_AGE = 60
|
7
|
+
|
6
8
|
UNICORN_GAUGES = {
|
7
9
|
workers_total: 'Number of unicorn workers.',
|
8
10
|
active_workers_total: 'Number of active unicorn workers',
|
@@ -36,6 +38,9 @@ class PrometheusExporter::Server::UnicornCollector < PrometheusExporter::Server:
|
|
36
38
|
end
|
37
39
|
|
38
40
|
def collect(obj)
|
41
|
+
now = ::Process.clock_gettime(::Process::CLOCK_MONOTONIC)
|
42
|
+
obj["created_at"] = now
|
43
|
+
@unicorn_metrics.delete_if { |m| m['created_at'] + MAX_UNICORN_METRIC_AGE < now }
|
39
44
|
@unicorn_metrics << obj
|
40
45
|
end
|
41
46
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: prometheus_exporter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.13
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sam Saffron
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-07-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rubocop
|