greek_fire 0.5.0 → 0.5.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 +4 -4
- data/lib/greek_fire.rb +55 -1
- data/lib/greek_fire/configuration.rb +9 -0
- data/lib/greek_fire/engine.rb +4 -0
- data/lib/greek_fire/version.rb +1 -1
- metadata +6 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d7f0d9d8aad929d1b48c62705d0bf48d531faa3e
|
4
|
+
data.tar.gz: bb92e63f845ec8b553a13c8c15b0a46f21c1db32
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 216eb48c9f105c73da3c1cf5b42d07d36403a0d1571e41a627ffe9bb7133762b6a1a96a6248c03de992030946b7f4565ec87a42d4cc4c47cccb21ed1b3bdb57f
|
7
|
+
data.tar.gz: 4a819edbf021874d150a6b0e8f5af261c356aeaa8131345793b0afc743df0ca0833caf05f69f0f4e5368ac5e27943b957542f4e405e0ad12929f08a4fe78fbf8
|
data/lib/greek_fire.rb
CHANGED
@@ -1,6 +1,60 @@
|
|
1
1
|
require "greek_fire/version"
|
2
2
|
require "greek_fire/engine"
|
3
|
+
require "greek_fire/configuration"
|
3
4
|
|
4
5
|
module GreekFire
|
5
|
-
|
6
|
+
class DuplicateMetricError < StandardError; end
|
7
|
+
|
8
|
+
class << self
|
9
|
+
attr_accessor :configuration
|
10
|
+
|
11
|
+
def configure
|
12
|
+
self.configuration ||= Configuration.new
|
13
|
+
yield(configuration) if block_given?
|
14
|
+
register_sidekiq_metrics if configuration.sidekiq_metrics && Object.const_defined?("Sidekiq")
|
15
|
+
end
|
16
|
+
|
17
|
+
private
|
18
|
+
|
19
|
+
def register_sidekiq_metrics
|
20
|
+
duplicate_metrics = []
|
21
|
+
|
22
|
+
sidekiq_metrics.each do |metric|
|
23
|
+
if metric_already_registered? metric[:name]
|
24
|
+
duplicate_metrics << metric[:name]
|
25
|
+
else
|
26
|
+
GreekFire::Gauge.register metric[:name], description: metric[:description], labels: metric[:labels], &metric[:proc]
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
raise DuplicateMetricError,
|
31
|
+
"The following metrics have already been registered by default. Please remove them from your greek_fire.rb initializer: #{duplicate_metrics.join(", ")}" if duplicate_metrics.any?
|
32
|
+
end
|
33
|
+
|
34
|
+
def metric_already_registered?(metric_name)
|
35
|
+
GreekFire::Metric.metrics.map(&:name).include? metric_name
|
36
|
+
end
|
37
|
+
|
38
|
+
def sidekiq_metrics
|
39
|
+
[
|
40
|
+
{
|
41
|
+
name: "sidekiq_process_count",
|
42
|
+
description: "How many sidekiq processes are running",
|
43
|
+
proc: Proc.new { |labels| Sidekiq::ProcessSet.new.size }
|
44
|
+
},
|
45
|
+
{
|
46
|
+
name: "sidekiq_job_latency",
|
47
|
+
description: "How long are jobs enqueued",
|
48
|
+
labels: { :queue => Proc.new { Sidekiq::Queue.all.map(&:name) }},
|
49
|
+
proc: Proc.new { |labels| Sidekiq::Queue.new(labels[:queue]).latency }
|
50
|
+
},
|
51
|
+
{
|
52
|
+
name: "sidekiq_job_count",
|
53
|
+
description: "How many jobs are enqueued",
|
54
|
+
labels: { :queue => Proc.new { Sidekiq::Queue.all.map(&:name) }},
|
55
|
+
proc: Proc.new { |labels| Sidekiq::Queue.new(labels[:queue]).size }
|
56
|
+
}
|
57
|
+
]
|
58
|
+
end
|
59
|
+
end
|
6
60
|
end
|
data/lib/greek_fire/engine.rb
CHANGED
data/lib/greek_fire/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: greek_fire
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- cconstantine
|
8
|
+
- briansharon
|
8
9
|
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
|
-
date: 2017-
|
12
|
+
date: 2017-09-19 00:00:00.000000000 Z
|
12
13
|
dependencies:
|
13
14
|
- !ruby/object:Gem::Dependency
|
14
15
|
name: rspec-rails
|
@@ -69,6 +70,7 @@ dependencies:
|
|
69
70
|
description: An easy way to export metrics for Prometheus.
|
70
71
|
email:
|
71
72
|
- chris@omadahealth.com
|
73
|
+
- brian.sharon@omadahealth.com
|
72
74
|
executables: []
|
73
75
|
extensions: []
|
74
76
|
extra_rdoc_files: []
|
@@ -93,6 +95,7 @@ files:
|
|
93
95
|
- app/views/greek_fire/metrics/_metric.html.erb
|
94
96
|
- config/routes.rb
|
95
97
|
- lib/greek_fire.rb
|
98
|
+
- lib/greek_fire/configuration.rb
|
96
99
|
- lib/greek_fire/engine.rb
|
97
100
|
- lib/greek_fire/version.rb
|
98
101
|
- lib/tasks/greek_fire_tasks.rake
|
@@ -116,7 +119,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
116
119
|
version: '0'
|
117
120
|
requirements: []
|
118
121
|
rubyforge_project:
|
119
|
-
rubygems_version: 2.6.
|
122
|
+
rubygems_version: 2.6.13
|
120
123
|
signing_key:
|
121
124
|
specification_version: 4
|
122
125
|
summary: Prometheus metrics for rails.
|