yabeda-prometheus-mmap 0.2.0 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/lint.yaml +32 -0
- data/.github/workflows/test.yml +8 -24
- data/CHANGELOG.md +19 -0
- data/Gemfile +2 -2
- data/lib/yabeda/prometheus/mmap/adapter.rb +17 -1
- data/lib/yabeda/prometheus/mmap/exporter.rb +15 -2
- data/lib/yabeda/prometheus/mmap/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4ae6601a66f8d497062fc78cf79a2c148b2f8b6f03ba7ad39a689afa821a6b40
|
4
|
+
data.tar.gz: 0761d311cd01b780e4ef02dfc03636a3dad90846fcdfd1fb44a7553cb0d20f69
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7b9ea598802e0ee12bc6b597fc928bbde0cd885970310838d6f2e024e089a59904c4a03b92a67d5b84d8005e5aaf4106bced7756ab9a0f2fbaec38a8b52b6f0e
|
7
|
+
data.tar.gz: fecedc71c04707a220b59f512fcff784edaff6158eaaf740d8d9e17b8978368fe71c48103f45dd58a8a0f587841416b25b5d4206a5066165a4cf3c5e4322cf8c
|
@@ -0,0 +1,32 @@
|
|
1
|
+
name: Lint Ruby
|
2
|
+
|
3
|
+
on:
|
4
|
+
push:
|
5
|
+
branches:
|
6
|
+
- master
|
7
|
+
paths:
|
8
|
+
- "gemfiles/*"
|
9
|
+
- "Gemfile"
|
10
|
+
- "**/*.rb"
|
11
|
+
- "**/*.gemspec"
|
12
|
+
- ".github/workflows/lint.yml"
|
13
|
+
pull_request:
|
14
|
+
paths:
|
15
|
+
- "gemfiles/*"
|
16
|
+
- "Gemfile"
|
17
|
+
- "**/*.rb"
|
18
|
+
- "**/*.gemspec"
|
19
|
+
- ".github/workflows/lint.yml"
|
20
|
+
|
21
|
+
jobs:
|
22
|
+
rubocop:
|
23
|
+
runs-on: ubuntu-latest
|
24
|
+
steps:
|
25
|
+
- uses: actions/checkout@v3
|
26
|
+
- uses: ruby/setup-ruby@v1
|
27
|
+
with:
|
28
|
+
ruby-version: 3.2
|
29
|
+
bundler-cache: true
|
30
|
+
- name: Lint Ruby code with RuboCop
|
31
|
+
run: |
|
32
|
+
bundle exec rubocop
|
data/.github/workflows/test.yml
CHANGED
@@ -17,31 +17,15 @@ jobs:
|
|
17
17
|
fail-fast: false
|
18
18
|
matrix:
|
19
19
|
include:
|
20
|
-
- ruby: 3.
|
21
|
-
- ruby:
|
22
|
-
- ruby:
|
23
|
-
- ruby: 2.
|
24
|
-
container:
|
25
|
-
image: ruby:${{ matrix.ruby }}
|
26
|
-
env:
|
27
|
-
CI: true
|
20
|
+
- ruby: "3.2"
|
21
|
+
- ruby: "3.1"
|
22
|
+
- ruby: "3.0"
|
23
|
+
- ruby: "2.7"
|
28
24
|
steps:
|
29
|
-
- uses: actions/checkout@
|
30
|
-
- uses:
|
25
|
+
- uses: actions/checkout@v3
|
26
|
+
- uses: ruby/setup-ruby@v1
|
31
27
|
with:
|
32
|
-
|
33
|
-
|
34
|
-
restore-keys: |
|
35
|
-
bundle-${{ matrix.ruby }}-${{ hashFiles('**/*.gemspec') }}-${{ hashFiles('**/Gemfile') }}
|
36
|
-
bundle-${{ matrix.ruby }}-
|
37
|
-
- name: Upgrade Bundler to 2.0 (for older Rubies)
|
38
|
-
run: gem install bundler -v '~> 2.0'
|
39
|
-
- name: Bundle install
|
40
|
-
run: |
|
41
|
-
bundle config path vendor/bundle
|
42
|
-
bundle install
|
43
|
-
bundle update
|
44
|
-
- name: Run Rubocop
|
45
|
-
run: bundle exec rubocop
|
28
|
+
ruby-version: ${{ matrix.ruby }}
|
29
|
+
bundler-cache: true
|
46
30
|
- name: Run RSpec
|
47
31
|
run: bundle exec rspec
|
data/CHANGELOG.md
CHANGED
@@ -5,6 +5,22 @@ All notable changes to this project will be documented in this file.
|
|
5
5
|
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
|
6
6
|
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
|
7
7
|
|
8
|
+
## 0.4.0 - 2023-12-11
|
9
|
+
|
10
|
+
### Added
|
11
|
+
|
12
|
+
- Support for gauge aggregation setting [#6](https://github.com/yabeda-rb/yabeda-prometheus-mmap/pull/6) by [@andreaswachowski][].
|
13
|
+
|
14
|
+
### Fixed
|
15
|
+
|
16
|
+
- Compatibility with Rack 3 and Rack 2. [#8](https://github.com/yabeda-rb/yabeda-prometheus-mmap/pull/8) by [@aroop][].
|
17
|
+
|
18
|
+
## 0.3.0 - 2021-08-27
|
19
|
+
|
20
|
+
### Added
|
21
|
+
|
22
|
+
- Possibility to disable metrics web server logs [@bibendi]
|
23
|
+
|
8
24
|
## 0.2.0 - 2021-07-21
|
9
25
|
|
10
26
|
### Added
|
@@ -34,3 +50,6 @@ Initial release. [@dsalahutdinov][]
|
|
34
50
|
[@macchiang]: https://github.com/macchiang "Mac"
|
35
51
|
[@dsalahutdinov]: https://github.com/dsalahutdinov "Salahutdinov Dmitry"
|
36
52
|
[@Envek]: https://github.com/Envek "Andrey Novikov"
|
53
|
+
[@bibendi]: https://github.com/bibendi/ "Misha Merkushin"
|
54
|
+
[@andreaswachowski]: https://github.com/andreaswachowski "Andreas Wachowski"
|
55
|
+
[@aroop]: https://github.com/aroop "Ajay Kumar G"
|
data/Gemfile
CHANGED
@@ -35,7 +35,8 @@ module Yabeda
|
|
35
35
|
registry.gauge(
|
36
36
|
build_name(metric),
|
37
37
|
metric.comment,
|
38
|
-
build_tags(metric.tags)
|
38
|
+
build_tags(metric.tags),
|
39
|
+
gauge_aggregation_mode(metric.aggregation)
|
39
40
|
)
|
40
41
|
end
|
41
42
|
|
@@ -86,6 +87,21 @@ module Yabeda
|
|
86
87
|
end
|
87
88
|
end
|
88
89
|
|
90
|
+
private
|
91
|
+
|
92
|
+
def gauge_aggregation_mode(yabeda_mode)
|
93
|
+
case yabeda_mode
|
94
|
+
when nil, :most_recent # TODO: Switch to most_recent when supported: https://gitlab.com/gitlab-org/ruby/gems/prometheus-client-mmap/-/issues/36
|
95
|
+
:all
|
96
|
+
when :min, :max, :all, :liveall
|
97
|
+
yabeda_mode
|
98
|
+
when :sum
|
99
|
+
:livesum
|
100
|
+
else
|
101
|
+
raise ArgumentError, "Unsupported gauge aggregation mode #{yabeda_mode.inspect}"
|
102
|
+
end
|
103
|
+
end
|
104
|
+
|
89
105
|
Yabeda.register_adapter(:prometheus, new)
|
90
106
|
end
|
91
107
|
end
|
@@ -23,7 +23,8 @@ module Yabeda
|
|
23
23
|
def start_metrics_server!
|
24
24
|
Thread.new do
|
25
25
|
default_port = ENV.fetch('PORT', 9394)
|
26
|
-
|
26
|
+
|
27
|
+
rack_handler.run(
|
27
28
|
rack_app,
|
28
29
|
Host: ENV['PROMETHEUS_EXPORTER_BIND'] || '0.0.0.0',
|
29
30
|
Port: ENV.fetch('PROMETHEUS_EXPORTER_PORT', default_port),
|
@@ -32,9 +33,21 @@ module Yabeda
|
|
32
33
|
end
|
33
34
|
end
|
34
35
|
|
36
|
+
def rack_handler
|
37
|
+
if Gem.loaded_specs['rack']&.version&.>= Gem::Version.new('3.0')
|
38
|
+
require 'rackup'
|
39
|
+
::Rackup::Handler::WEBrick
|
40
|
+
else
|
41
|
+
::Rack::Handler::WEBrick
|
42
|
+
end
|
43
|
+
rescue LoadError
|
44
|
+
warn 'Please add gems rackup and webrick to your Gemfile to expose Yabeda metrics from prometheus-mmap'
|
45
|
+
::Rack::Handler::WEBrick
|
46
|
+
end
|
47
|
+
|
35
48
|
def rack_app(exporter = self, path: '/metrics')
|
36
49
|
::Rack::Builder.new do
|
37
|
-
use ::Rack::CommonLogger
|
50
|
+
use ::Rack::CommonLogger if ENV['PROMETHEUS_EXPORTER_LOG_REQUESTS'] != 'false'
|
38
51
|
use ::Rack::ShowExceptions
|
39
52
|
use exporter, path: path
|
40
53
|
run NOT_FOUND_HANDLER
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: yabeda-prometheus-mmap
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dmitry Salahutdinov
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-12-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: prometheus-client-mmap
|
@@ -46,6 +46,7 @@ extensions: []
|
|
46
46
|
extra_rdoc_files: []
|
47
47
|
files:
|
48
48
|
- ".github/workflows/build-release.yml"
|
49
|
+
- ".github/workflows/lint.yaml"
|
49
50
|
- ".github/workflows/test.yml"
|
50
51
|
- ".gitignore"
|
51
52
|
- ".rspec"
|