prometheus_exporter 0.4.2 → 0.4.3
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/.gitignore +2 -0
- data/.rubocop.yml +1 -113
- data/CHANGELOG +5 -0
- data/Gemfile +1 -1
- data/Guardfile +0 -1
- data/Rakefile +1 -1
- data/lib/prometheus_exporter/instrumentation/sidekiq.rb +2 -5
- data/lib/prometheus_exporter/metric/counter.rb +10 -0
- data/lib/prometheus_exporter/metric/gauge.rb +2 -0
- data/lib/prometheus_exporter/metric/histogram.rb +2 -2
- data/lib/prometheus_exporter/middleware.rb +1 -1
- data/lib/prometheus_exporter/server/collector.rb +9 -3
- data/lib/prometheus_exporter/server/web_server.rb +1 -1
- data/lib/prometheus_exporter/version.rb +1 -1
- metadata +3 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e93d3054e02dcc5bc4dc87df3be0b87ce3715850d4d116465f31ee525bb9c9f6
|
4
|
+
data.tar.gz: 681a91ab3490d12b095b5bde5a9eb303202e5c6b688cf57afe38752e49b2d9d4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b4b875a1d7799aab1ec0c6ec69570a070a730774cd58cd7a61e54d19bf4f327ddf0f47e6fa10e33084b86fbdcbd407a0e0e715bb190f9bf412b59ce17b9963dd
|
7
|
+
data.tar.gz: 1face6bafbf0da750d2b88f3d5ed010cb136fad3da776928f7a327db20cc81fd972208f7cbfeb298dd72492489a8838c76429cbe448b87d478dfff79292c2f00
|
data/.gitignore
CHANGED
data/.rubocop.yml
CHANGED
@@ -1,113 +1 @@
|
|
1
|
-
|
2
|
-
TargetRubyVersion: 2.4
|
3
|
-
DisabledByDefault: true
|
4
|
-
Exclude:
|
5
|
-
- 'db/schema.rb'
|
6
|
-
- 'bundle/**/*'
|
7
|
-
- 'vendor/**/*'
|
8
|
-
- 'node_modules/**/*'
|
9
|
-
- 'public/**/*'
|
10
|
-
|
11
|
-
# Prefer &&/|| over and/or.
|
12
|
-
Style/AndOr:
|
13
|
-
Enabled: true
|
14
|
-
|
15
|
-
# Do not use braces for hash literals when they are the last argument of a
|
16
|
-
# method call.
|
17
|
-
Style/BracesAroundHashParameters:
|
18
|
-
Enabled: true
|
19
|
-
|
20
|
-
# Align `when` with `case`.
|
21
|
-
Layout/CaseIndentation:
|
22
|
-
Enabled: true
|
23
|
-
|
24
|
-
# Align comments with method definitions.
|
25
|
-
Layout/CommentIndentation:
|
26
|
-
Enabled: true
|
27
|
-
|
28
|
-
# No extra empty lines.
|
29
|
-
Layout/EmptyLines:
|
30
|
-
Enabled: true
|
31
|
-
|
32
|
-
# Use Ruby >= 1.9 syntax for hashes. Prefer { a: :b } over { :a => :b }.
|
33
|
-
Style/HashSyntax:
|
34
|
-
Enabled: true
|
35
|
-
|
36
|
-
# Two spaces, no tabs (for indentation).
|
37
|
-
Layout/IndentationWidth:
|
38
|
-
Enabled: true
|
39
|
-
|
40
|
-
Layout/SpaceAfterColon:
|
41
|
-
Enabled: true
|
42
|
-
|
43
|
-
Layout/SpaceAfterComma:
|
44
|
-
Enabled: true
|
45
|
-
|
46
|
-
Layout/SpaceAroundEqualsInParameterDefault:
|
47
|
-
Enabled: true
|
48
|
-
|
49
|
-
Layout/SpaceAroundKeyword:
|
50
|
-
Enabled: true
|
51
|
-
|
52
|
-
Layout/SpaceAroundOperators:
|
53
|
-
Enabled: true
|
54
|
-
|
55
|
-
Layout/SpaceBeforeFirstArg:
|
56
|
-
Enabled: true
|
57
|
-
|
58
|
-
# Defining a method with parameters needs parentheses.
|
59
|
-
Style/MethodDefParentheses:
|
60
|
-
Enabled: true
|
61
|
-
|
62
|
-
# Use `foo {}` not `foo{}`.
|
63
|
-
Layout/SpaceBeforeBlockBraces:
|
64
|
-
Enabled: true
|
65
|
-
|
66
|
-
# Use `foo { bar }` not `foo {bar}`.
|
67
|
-
Layout/SpaceInsideBlockBraces:
|
68
|
-
Enabled: true
|
69
|
-
|
70
|
-
# Use `{ a: 1 }` not `{a:1}`.
|
71
|
-
Layout/SpaceInsideHashLiteralBraces:
|
72
|
-
Enabled: true
|
73
|
-
|
74
|
-
Layout/SpaceInsideParens:
|
75
|
-
Enabled: true
|
76
|
-
|
77
|
-
# Detect hard tabs, no hard tabs.
|
78
|
-
Layout/Tab:
|
79
|
-
Enabled: true
|
80
|
-
|
81
|
-
# Blank lines should not have any spaces.
|
82
|
-
Layout/TrailingBlankLines:
|
83
|
-
Enabled: true
|
84
|
-
|
85
|
-
# No trailing whitespace.
|
86
|
-
Layout/TrailingWhitespace:
|
87
|
-
Enabled: true
|
88
|
-
|
89
|
-
Lint/Debugger:
|
90
|
-
Enabled: true
|
91
|
-
|
92
|
-
Lint/BlockAlignment:
|
93
|
-
Enabled: true
|
94
|
-
|
95
|
-
# Align `end` with the matching keyword or starting expression except for
|
96
|
-
# assignments, where it should be aligned with the LHS.
|
97
|
-
Lint/EndAlignment:
|
98
|
-
Enabled: true
|
99
|
-
EnforcedStyleAlignWith: variable
|
100
|
-
|
101
|
-
# Use my_method(my_arg) not my_method( my_arg ) or my_method my_arg.
|
102
|
-
Lint/RequireParentheses:
|
103
|
-
Enabled: true
|
104
|
-
|
105
|
-
Layout/MultilineMethodCallIndentation:
|
106
|
-
Enabled: true
|
107
|
-
EnforcedStyle: indented
|
108
|
-
|
109
|
-
Layout/AlignHash:
|
110
|
-
Enabled: true
|
111
|
-
|
112
|
-
Bundler/OrderedGems:
|
113
|
-
Enabled: false
|
1
|
+
inherit_from: https://raw.githubusercontent.com/discourse/discourse/master/.rubocop.yml
|
data/CHANGELOG
CHANGED
@@ -1,3 +1,8 @@
|
|
1
|
+
0.4.3 - 11-02-2019
|
2
|
+
|
3
|
+
- Feature: Add alias for Gauge #observe called #set, this makes it a bit easier to migrate from prom
|
4
|
+
- Feature: Add increment and decrement to Counter
|
5
|
+
|
1
6
|
0.4.2 - 30-11-2018
|
2
7
|
|
3
8
|
- Fix/Feature: setting a Gauge to nil will remove Gauge (setting to non numeric will raise)
|
data/Gemfile
CHANGED
data/Guardfile
CHANGED
data/Rakefile
CHANGED
@@ -15,11 +15,8 @@ module PrometheusExporter::Instrumentation
|
|
15
15
|
result
|
16
16
|
ensure
|
17
17
|
duration = ::Process.clock_gettime(::Process::CLOCK_MONOTONIC) - start
|
18
|
-
class_name =
|
19
|
-
msg['wrapped']
|
20
|
-
else
|
21
|
-
worker.class.to_s
|
22
|
-
end
|
18
|
+
class_name = worker.class.to_s == 'ActiveJob::QueueAdapters::SidekiqAdapter::JobWrapper' ?
|
19
|
+
msg['wrapped'] : worker.class.to_s
|
23
20
|
|
24
21
|
@client.send_json(
|
25
22
|
type: "sidekiq",
|
@@ -23,5 +23,15 @@ module PrometheusExporter::Metric
|
|
23
23
|
@data[labels] ||= 0
|
24
24
|
@data[labels] += increment
|
25
25
|
end
|
26
|
+
|
27
|
+
def increment(labels = {}, value = 1)
|
28
|
+
@data[labels] ||= 0
|
29
|
+
@data[labels] += value
|
30
|
+
end
|
31
|
+
|
32
|
+
def decrement(labels = {}, value = 1)
|
33
|
+
@data[labels] ||= 0
|
34
|
+
@data[labels] -= value
|
35
|
+
end
|
26
36
|
end
|
27
37
|
end
|
@@ -52,7 +52,7 @@ module PrometheusExporter::Metric
|
|
52
52
|
@counts[labels] ||= 0
|
53
53
|
buckets = @observations[labels]
|
54
54
|
if buckets.nil?
|
55
|
-
buckets = @buckets.map{|b| [b, 0]}.to_h
|
55
|
+
buckets = @buckets.map { |b| [b, 0] }.to_h
|
56
56
|
@observations[labels] = buckets
|
57
57
|
end
|
58
58
|
buckets
|
@@ -66,7 +66,7 @@ module PrometheusExporter::Metric
|
|
66
66
|
end
|
67
67
|
|
68
68
|
def with_bucket(labels, bucket)
|
69
|
-
labels.merge(
|
69
|
+
labels.merge("le" => bucket)
|
70
70
|
end
|
71
71
|
|
72
72
|
end
|
@@ -85,6 +85,6 @@ class PrometheusExporter::Middleware
|
|
85
85
|
# this method takes care to convert both into a proper second + fractions timestamp
|
86
86
|
def convert_header_to_ms(str)
|
87
87
|
str = str.gsub(/t=|\./, '')
|
88
|
-
"#{str[0,10]}.#{str[10,13]}".to_f
|
88
|
+
"#{str[0, 10]}.#{str[10, 13]}".to_f
|
89
89
|
end
|
90
90
|
end
|
@@ -48,13 +48,19 @@ module PrometheusExporter::Server
|
|
48
48
|
if !metric
|
49
49
|
metric = register_metric_unsafe(obj)
|
50
50
|
end
|
51
|
+
|
52
|
+
keys = obj["keys"] || {}
|
53
|
+
if obj["custom_labels"]
|
54
|
+
keys = obj["custom_labels"].merge(keys)
|
55
|
+
end
|
56
|
+
|
51
57
|
case obj["prometheus_exporter_action"]
|
52
58
|
when 'increment'
|
53
|
-
metric.increment(
|
59
|
+
metric.increment(keys, obj["value"])
|
54
60
|
when 'decrement'
|
55
|
-
metric.decrement(
|
61
|
+
metric.decrement(keys, obj["value"])
|
56
62
|
else
|
57
|
-
metric.observe(obj["value"],
|
63
|
+
metric.observe(obj["value"], keys)
|
58
64
|
end
|
59
65
|
end
|
60
66
|
end
|
@@ -47,7 +47,7 @@ module PrometheusExporter::Server
|
|
47
47
|
@timeout = timeout
|
48
48
|
|
49
49
|
@server.mount_proc '/' do |req, res|
|
50
|
-
res['
|
50
|
+
res['Content-Type'] = 'text/plain; charset=utf-8'
|
51
51
|
if req.path == '/metrics'
|
52
52
|
res.status = 200
|
53
53
|
if req.header["accept-encoding"].to_s.include?("gzip")
|
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.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sam Saffron
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2019-02-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -208,8 +208,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
208
208
|
- !ruby/object:Gem::Version
|
209
209
|
version: '0'
|
210
210
|
requirements: []
|
211
|
-
|
212
|
-
rubygems_version: 2.7.6
|
211
|
+
rubygems_version: 3.0.1
|
213
212
|
signing_key:
|
214
213
|
specification_version: 4
|
215
214
|
summary: Prometheus Exporter
|