yabeda-prometheus-mmap 0.2.0 → 0.4.0
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/.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"
|