yabeda-prometheus 0.1.5 → 0.6.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/build-release.yml +82 -0
- data/.github/workflows/test.yml +45 -0
- data/CHANGELOG.md +44 -0
- data/README.md +58 -3
- data/lib/yabeda/prometheus.rb +1 -0
- data/lib/yabeda/prometheus/adapter.rb +55 -6
- data/lib/yabeda/prometheus/exporter.rb +7 -14
- data/lib/yabeda/prometheus/version.rb +1 -1
- data/yabeda-prometheus-logo.png +0 -0
- data/yabeda-prometheus.gemspec +6 -8
- metadata +46 -13
- data/.travis.yml +0 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ec39031cd5a8edd3f8ab3badfac7568683e2d15dd84eb2adfacd0953af9a4f1b
|
4
|
+
data.tar.gz: 68e2c9f81ab756ff009ce0d3e638cf6391fe7e7d9a02ee482857843462db66a7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 267557ee543e48873693cfb61c31e1e535f75c0947355f3d613aac372b132848b481a5aa03fe9d1f0c2709b34482df189dd28a18039d84023384ee61016b6d52
|
7
|
+
data.tar.gz: f32dfd90a9814d1eef154cb36486029467d22792cd21d63dc57f9bc3028f87d2f4d939429d58a75fb6fc8e5cffd5d3d56aaa0da2f663e868c3c6d8e3c8e4be25
|
@@ -0,0 +1,82 @@
|
|
1
|
+
name: Build and release gem to RubyGems
|
2
|
+
|
3
|
+
on:
|
4
|
+
push:
|
5
|
+
tags:
|
6
|
+
- v*
|
7
|
+
|
8
|
+
jobs:
|
9
|
+
release:
|
10
|
+
runs-on: ubuntu-latest
|
11
|
+
steps:
|
12
|
+
- uses: actions/checkout@v2
|
13
|
+
with:
|
14
|
+
fetch-depth: 0 # Fetch current tag as annotated. See https://github.com/actions/checkout/issues/290
|
15
|
+
- uses: ruby/setup-ruby@v1
|
16
|
+
with:
|
17
|
+
ruby-version: 2.7
|
18
|
+
- name: "Extract data from tag: version, message, body"
|
19
|
+
id: tag
|
20
|
+
run: |
|
21
|
+
git fetch --tags --force # Really fetch annotated tag. See https://github.com/actions/checkout/issues/290#issuecomment-680260080
|
22
|
+
echo ::set-output name=version::${GITHUB_REF#refs/tags/v}
|
23
|
+
echo ::set-output name=subject::$(git for-each-ref $GITHUB_REF --format='%(contents:subject)')
|
24
|
+
BODY="$(git for-each-ref $GITHUB_REF --format='%(contents:body)')"
|
25
|
+
# Extract changelog entries between this and previous version headers
|
26
|
+
escaped_version=$(echo ${GITHUB_REF#refs/tags/v} | sed -e 's/[]\/$*.^[]/\\&/g')
|
27
|
+
changelog=$(awk "BEGIN{inrelease=0} /## ${escaped_version}/{inrelease=1;next} /## [0-9]+\.[0-9]+\.[0-9]+/{inrelease=0;exit} {if (inrelease) print}" CHANGELOG.md)
|
28
|
+
# Multiline body for release. See https://github.community/t/set-output-truncates-multiline-strings/16852/5
|
29
|
+
BODY="${BODY}"$'\n'"${changelog}"
|
30
|
+
BODY="${BODY//'%'/'%25'}"
|
31
|
+
BODY="${BODY//$'\n'/'%0A'}"
|
32
|
+
BODY="${BODY//$'\r'/'%0D'}"
|
33
|
+
echo "::set-output name=body::$BODY"
|
34
|
+
# Add pre-release option if tag name has any suffix after vMAJOR.MINOR.PATCH
|
35
|
+
if [[ ${GITHUB_REF#refs/tags/} =~ ^v[0-9]+\.[0-9]+\.[0-9]+.+ ]]; then
|
36
|
+
echo ::set-output name=prerelease::true
|
37
|
+
fi
|
38
|
+
- name: Build gem
|
39
|
+
run: gem build
|
40
|
+
- name: Calculate checksums
|
41
|
+
run: sha256sum yabeda-prometheus-${{ steps.tag.outputs.version }}.gem > SHA256SUM
|
42
|
+
- name: Check version
|
43
|
+
run: ls -l yabeda-prometheus-${{ steps.tag.outputs.version }}.gem
|
44
|
+
- name: Create Release
|
45
|
+
id: create_release
|
46
|
+
uses: actions/create-release@v1
|
47
|
+
env:
|
48
|
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
49
|
+
with:
|
50
|
+
tag_name: ${{ github.ref }}
|
51
|
+
release_name: ${{ steps.tag.outputs.subject }}
|
52
|
+
body: ${{ steps.tag.outputs.body }}
|
53
|
+
draft: false
|
54
|
+
prerelease: ${{ steps.tag.outputs.prerelease }}
|
55
|
+
- name: Upload built gem as release asset
|
56
|
+
uses: actions/upload-release-asset@v1
|
57
|
+
env:
|
58
|
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
59
|
+
with:
|
60
|
+
upload_url: ${{ steps.create_release.outputs.upload_url }}
|
61
|
+
asset_path: yabeda-prometheus-${{ steps.tag.outputs.version }}.gem
|
62
|
+
asset_name: yabeda-prometheus-${{ steps.tag.outputs.version }}.gem
|
63
|
+
asset_content_type: application/x-tar
|
64
|
+
- name: Upload checksums as release asset
|
65
|
+
uses: actions/upload-release-asset@v1
|
66
|
+
env:
|
67
|
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
68
|
+
with:
|
69
|
+
upload_url: ${{ steps.create_release.outputs.upload_url }}
|
70
|
+
asset_path: SHA256SUM
|
71
|
+
asset_name: SHA256SUM
|
72
|
+
asset_content_type: text/plain
|
73
|
+
- name: Publish to GitHub packages
|
74
|
+
env:
|
75
|
+
GEM_HOST_API_KEY: Bearer ${{ secrets.GITHUB_TOKEN }}
|
76
|
+
run: |
|
77
|
+
gem push yabeda-prometheus-${{ steps.tag.outputs.version }}.gem --host https://rubygems.pkg.github.com/${{ github.repository_owner }}
|
78
|
+
- name: Publish to RubyGems
|
79
|
+
env:
|
80
|
+
GEM_HOST_API_KEY: "${{ secrets.RUBYGEMS_API_KEY }}"
|
81
|
+
run: |
|
82
|
+
gem push yabeda-prometheus-${{ steps.tag.outputs.version }}.gem
|
@@ -0,0 +1,45 @@
|
|
1
|
+
name: Run tests
|
2
|
+
|
3
|
+
on:
|
4
|
+
pull_request:
|
5
|
+
push:
|
6
|
+
branches:
|
7
|
+
- '**'
|
8
|
+
tags-ignore:
|
9
|
+
- 'v*'
|
10
|
+
|
11
|
+
jobs:
|
12
|
+
test:
|
13
|
+
name: "Run tests"
|
14
|
+
if: "!contains(github.event.head_commit.message, '[ci skip]')"
|
15
|
+
runs-on: ubuntu-latest
|
16
|
+
strategy:
|
17
|
+
fail-fast: false
|
18
|
+
matrix:
|
19
|
+
include:
|
20
|
+
- ruby: 3.0
|
21
|
+
- ruby: 2.7
|
22
|
+
- ruby: 2.6
|
23
|
+
- ruby: 2.5
|
24
|
+
container:
|
25
|
+
image: ruby:${{ matrix.ruby }}
|
26
|
+
env:
|
27
|
+
CI: true
|
28
|
+
steps:
|
29
|
+
- uses: actions/checkout@v2
|
30
|
+
- uses: actions/cache@v2
|
31
|
+
with:
|
32
|
+
path: vendor/bundle
|
33
|
+
key: bundle-${{ matrix.ruby }}-${{ hashFiles('**/*.gemspec') }}-${{ hashFiles('**/Gemfile') }}
|
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 RSpec
|
45
|
+
run: bundle exec rspec
|
data/CHANGELOG.md
CHANGED
@@ -5,6 +5,48 @@ 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.6.1 - 2020-04-28
|
9
|
+
|
10
|
+
### Changed
|
11
|
+
|
12
|
+
- Fixed issue with Push Gateway require. [#13](https://github.com/yabeda-rb/yabeda-prometheus/pull/13) by [@baarkerlounger].
|
13
|
+
- Fixed possible issue with rack absense in non-web applications. Declared it as a dependency. [@Envek]
|
14
|
+
|
15
|
+
## 0.6.0 - 2020-04-15
|
16
|
+
|
17
|
+
### Changed
|
18
|
+
|
19
|
+
- Relaxed version constraints for prometheus-client as [v2.0.0](https://github.com/prometheus/client_ruby/releases/tag/v2.0.0) doesn't break APIs. @Envek
|
20
|
+
|
21
|
+
## 0.5.0 - 2020-01-29
|
22
|
+
|
23
|
+
### Added
|
24
|
+
|
25
|
+
- Support for metric aggregation when prometheus-client's Direct File Store is used. @Envek
|
26
|
+
|
27
|
+
See https://github.com/prometheus/client_ruby#aggregation-settings-for-multi-process-stores for details.
|
28
|
+
|
29
|
+
## 0.2.0 - 2020-01-14
|
30
|
+
|
31
|
+
### Changed
|
32
|
+
|
33
|
+
- Support for new versions of the official prometheus-client gem. @Envek
|
34
|
+
|
35
|
+
It is now required to specify not only comments, but also `tags` option for all metrics as prometheus-client now enforces this.
|
36
|
+
|
37
|
+
Support for specifying tags for metrics was added to yabeda 0.2.
|
38
|
+
|
39
|
+
### Removed
|
40
|
+
|
41
|
+
- Removed support for old versions of the official prometheus-client gem. @Envek
|
42
|
+
|
43
|
+
Due to incompatible changes in official client API
|
44
|
+
|
45
|
+
- Removed support for prometheus-client-mmap gem. @Envek
|
46
|
+
|
47
|
+
Support for multiprocess servers is now included in official Prometheus ruby client.
|
48
|
+
|
49
|
+
|
8
50
|
## 0.1.5 - 2019-10-15
|
9
51
|
|
10
52
|
### Fixed
|
@@ -64,4 +106,6 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
|
|
64
106
|
|
65
107
|
- Initial release of evil-metrics-prometheus gem. @Envek
|
66
108
|
|
109
|
+
[@Envek]: https://github.com/Envek "Andrey Novikov"
|
67
110
|
[@alexander37137]: https://github.com/alexander37137 "Alexander Andreev"
|
111
|
+
[@baarkerlounger]: https://github.com/baarkerlounger "Daniel Baark"
|
data/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Yabeda::
|
1
|
+
# ![`Yabeda::Prometheus`](./yabeda-prometheus-logo.png)
|
2
2
|
|
3
3
|
[![Gem Version](https://badge.fury.io/rb/yabeda-prometheus.svg)](https://rubygems.org/gems/yabeda-prometheus)
|
4
4
|
|
@@ -16,10 +16,9 @@ Adapter for easy exporting your collected metrics from your application to the [
|
|
16
16
|
|
17
17
|
## Installation
|
18
18
|
|
19
|
-
Add this
|
19
|
+
Add this line to your application's Gemfile:
|
20
20
|
|
21
21
|
```ruby
|
22
|
-
gem 'prometheus-client' # Or 'prometheus-client-mmap' if you need multi-process support
|
23
22
|
gem 'yabeda-prometheus'
|
24
23
|
```
|
25
24
|
|
@@ -63,6 +62,30 @@ And then execute:
|
|
63
62
|
|
64
63
|
Address of push gateway is configured with `PROMETHEUS_PUSH_GATEWAY` env variable.
|
65
64
|
|
65
|
+
|
66
|
+
## Multi-process server support
|
67
|
+
|
68
|
+
To use Unicorn or Puma in clustered mode, you'll want to set up underlying prometheus-client gem to use `DirectFileStore`, which aggregates metrics across the processes.
|
69
|
+
|
70
|
+
```ruby
|
71
|
+
Prometheus::Client.config.data_store = Prometheus::Client::DataStores::DirectFileStore.new(dir: '/tmp/prometheus_direct_file_store')
|
72
|
+
```
|
73
|
+
|
74
|
+
See more information at [prometheus-client README](https://github.com/prometheus/client_ruby#data-stores).
|
75
|
+
|
76
|
+
### Aggregation settings
|
77
|
+
|
78
|
+
You can specify aggregation policy in gauges declaration:
|
79
|
+
|
80
|
+
```ruby
|
81
|
+
group :some do
|
82
|
+
gauge :tasks do
|
83
|
+
comment "Number of test tasks"
|
84
|
+
aggregation :max
|
85
|
+
end
|
86
|
+
end
|
87
|
+
```
|
88
|
+
|
66
89
|
## Development
|
67
90
|
|
68
91
|
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
@@ -73,6 +96,38 @@ To install this gem onto your local machine, run `bundle exec rake install`. To
|
|
73
96
|
|
74
97
|
Bug reports and pull requests are welcome on GitHub at https://github.com/yabeda-rb/yabeda-prometheus.
|
75
98
|
|
99
|
+
### Releasing
|
100
|
+
|
101
|
+
1. Bump version number in `lib/yabeda/prometheus/version.rb`
|
102
|
+
|
103
|
+
In case of pre-releases keep in mind [rubygems/rubygems#3086](https://github.com/rubygems/rubygems/issues/3086) and check version with command like `Gem::Version.new(Yabeda::Prometheus::VERSION).to_s`
|
104
|
+
|
105
|
+
2. Fill `CHANGELOG.md` with missing changes, add header with version and date.
|
106
|
+
|
107
|
+
3. Make a commit:
|
108
|
+
|
109
|
+
```sh
|
110
|
+
git add lib/yabeda/prometheus/version.rb CHANGELOG.md
|
111
|
+
version=$(ruby -r ./lib/yabeda/prometheus/version.rb -e "puts Gem::Version.new(Yabeda::Prometheus::VERSION)")
|
112
|
+
git commit --message="${version}: " --edit
|
113
|
+
```
|
114
|
+
|
115
|
+
4. Create annotated tag:
|
116
|
+
|
117
|
+
```sh
|
118
|
+
git tag v${version} --annotate --message="${version}: " --edit --sign
|
119
|
+
```
|
120
|
+
|
121
|
+
5. Fill version name into subject line and (optionally) some description (list of changes will be taken from changelog and appended automatically)
|
122
|
+
|
123
|
+
6. Push it:
|
124
|
+
|
125
|
+
```sh
|
126
|
+
git push --follow-tags
|
127
|
+
```
|
128
|
+
|
129
|
+
7. GitHub Actions will create a new release, build and push gem into RubyGems! You're done!
|
130
|
+
|
76
131
|
## License
|
77
132
|
|
78
133
|
The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
|
data/lib/yabeda/prometheus.rb
CHANGED
@@ -1,40 +1,76 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require "prometheus/client"
|
4
|
+
require 'prometheus/client/data_stores/direct_file_store'
|
5
|
+
require 'prometheus/client/data_stores/single_threaded'
|
4
6
|
require "yabeda/base_adapter"
|
5
7
|
|
6
8
|
module Yabeda
|
7
9
|
class Prometheus::Adapter < BaseAdapter
|
10
|
+
class UndeclaredMetricTags < RuntimeError
|
11
|
+
attr_reader :message
|
12
|
+
|
13
|
+
def initialize(metric_name, caused_exception)
|
14
|
+
@message = <<~MESSAGE.strip
|
15
|
+
Prometheus requires all used tags to be declared at metric registration time. \
|
16
|
+
Please add `tags` option to the declaration of metric `#{metric_name}`. \
|
17
|
+
Error: #{caused_exception.message}
|
18
|
+
MESSAGE
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
8
22
|
def registry
|
9
23
|
@registry ||= ::Prometheus::Client.registry
|
10
24
|
end
|
11
25
|
|
12
26
|
def register_counter!(metric)
|
13
27
|
validate_metric!(metric)
|
14
|
-
registry.counter(
|
28
|
+
registry.counter(
|
29
|
+
build_name(metric),
|
30
|
+
docstring: metric.comment,
|
31
|
+
labels: Array(metric.tags),
|
32
|
+
store_settings: store_settings(metric),
|
33
|
+
)
|
15
34
|
end
|
16
35
|
|
17
36
|
def perform_counter_increment!(metric, tags, value)
|
18
|
-
registry.get(build_name(metric)).increment(
|
37
|
+
registry.get(build_name(metric)).increment(by: value, labels: tags)
|
38
|
+
rescue ::Prometheus::Client::LabelSetValidator::InvalidLabelSetError => e
|
39
|
+
raise UndeclaredMetricTags.new(build_name(metric), e)
|
19
40
|
end
|
20
41
|
|
21
42
|
def register_gauge!(metric)
|
22
43
|
validate_metric!(metric)
|
23
|
-
registry.gauge(
|
44
|
+
registry.gauge(
|
45
|
+
build_name(metric),
|
46
|
+
docstring: metric.comment,
|
47
|
+
labels: Array(metric.tags),
|
48
|
+
store_settings: store_settings(metric),
|
49
|
+
)
|
24
50
|
end
|
25
51
|
|
26
52
|
def perform_gauge_set!(metric, tags, value)
|
27
|
-
registry.get(build_name(metric)).set(
|
53
|
+
registry.get(build_name(metric)).set(value, labels: tags)
|
54
|
+
rescue ::Prometheus::Client::LabelSetValidator::InvalidLabelSetError => e
|
55
|
+
raise UndeclaredMetricTags.new(build_name(metric), e)
|
28
56
|
end
|
29
57
|
|
30
58
|
def register_histogram!(metric)
|
31
59
|
validate_metric!(metric)
|
32
60
|
buckets = metric.buckets || ::Prometheus::Client::Histogram::DEFAULT_BUCKETS
|
33
|
-
registry.histogram(
|
61
|
+
registry.histogram(
|
62
|
+
build_name(metric),
|
63
|
+
docstring: metric.comment,
|
64
|
+
buckets: buckets,
|
65
|
+
labels: Array(metric.tags),
|
66
|
+
store_settings: store_settings(metric),
|
67
|
+
)
|
34
68
|
end
|
35
69
|
|
36
70
|
def perform_histogram_measure!(metric, tags, value)
|
37
|
-
registry.get(build_name(metric)).observe(
|
71
|
+
registry.get(build_name(metric)).observe(value, labels: tags)
|
72
|
+
rescue ::Prometheus::Client::LabelSetValidator::InvalidLabelSetError => e
|
73
|
+
raise UndeclaredMetricTags.new(build_name(metric), e)
|
38
74
|
end
|
39
75
|
|
40
76
|
def build_name(metric)
|
@@ -47,6 +83,19 @@ module Yabeda
|
|
47
83
|
raise ArgumentError, 'Prometheus require metrics to have comments'
|
48
84
|
end
|
49
85
|
|
86
|
+
private
|
87
|
+
|
88
|
+
# @param metric [Yabeda::Metric]
|
89
|
+
# @return [Hash]
|
90
|
+
def store_settings(metric)
|
91
|
+
case ::Prometheus::Client.config.data_store
|
92
|
+
when ::Prometheus::Client::DataStores::Synchronized, ::Prometheus::Client::DataStores::SingleThreaded
|
93
|
+
{} # Default synchronized store doesn't allow to pass any options
|
94
|
+
when ::Prometheus::Client::DataStores::DirectFileStore, ::Object # Anything else
|
95
|
+
{ aggregation: metric.aggregation }.compact
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
50
99
|
Yabeda.register_adapter(:prometheus, new)
|
51
100
|
end
|
52
101
|
end
|
@@ -1,19 +1,12 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
require "prometheus/client/rack/exporter"
|
6
|
-
BASE_EXPORTER_CLASS = ::Prometheus::Client::Rack::Exporter
|
7
|
-
rescue LoadError
|
8
|
-
# Try to load exporter from original prometheus-client
|
9
|
-
require "prometheus/middleware/exporter"
|
10
|
-
BASE_EXPORTER_CLASS = ::Prometheus::Middleware::Exporter
|
11
|
-
end
|
3
|
+
require "prometheus/middleware/exporter"
|
4
|
+
require "rack"
|
12
5
|
|
13
6
|
module Yabeda
|
14
7
|
module Prometheus
|
15
8
|
# Rack application or middleware that provides metrics exposition endpoint
|
16
|
-
class Exporter <
|
9
|
+
class Exporter < ::Prometheus::Middleware::Exporter
|
17
10
|
NOT_FOUND_HANDLER = lambda do |_env|
|
18
11
|
[404, { "Content-Type" => "text/plain" }, ["Not Found\n"]]
|
19
12
|
end.freeze
|
@@ -28,7 +21,7 @@ module Yabeda
|
|
28
21
|
def start_metrics_server!
|
29
22
|
Thread.new do
|
30
23
|
default_port = ENV.fetch("PORT", 9394)
|
31
|
-
Rack::Handler::WEBrick.run(
|
24
|
+
::Rack::Handler::WEBrick.run(
|
32
25
|
rack_app,
|
33
26
|
Host: ENV["PROMETHEUS_EXPORTER_BIND"] || "0.0.0.0",
|
34
27
|
Port: ENV.fetch("PROMETHEUS_EXPORTER_PORT", default_port),
|
@@ -38,9 +31,9 @@ module Yabeda
|
|
38
31
|
end
|
39
32
|
|
40
33
|
def rack_app(exporter = self, path: "/metrics")
|
41
|
-
Rack::Builder.new do
|
42
|
-
use Rack::CommonLogger
|
43
|
-
use Rack::ShowExceptions
|
34
|
+
::Rack::Builder.new do
|
35
|
+
use ::Rack::CommonLogger
|
36
|
+
use ::Rack::ShowExceptions
|
44
37
|
use exporter, path: path
|
45
38
|
run NOT_FOUND_HANDLER
|
46
39
|
end
|
Binary file
|
data/yabeda-prometheus.gemspec
CHANGED
@@ -25,15 +25,13 @@ Gem::Specification.new do |spec|
|
|
25
25
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
26
26
|
spec.require_paths = ["lib"]
|
27
27
|
|
28
|
-
spec.
|
28
|
+
spec.required_ruby_version = ">= 2.3"
|
29
29
|
|
30
|
-
spec.
|
31
|
-
|
32
|
-
|
33
|
-
Please make sure that you have added one of them to your Gemfile.
|
34
|
-
MESSAGE
|
30
|
+
spec.add_dependency "prometheus-client", ">= 0.10", "< 3.0" # Known to work with 1.x and 2.x
|
31
|
+
spec.add_dependency "yabeda", "~> 0.5"
|
32
|
+
spec.add_dependency "rack"
|
35
33
|
|
36
|
-
spec.add_development_dependency "bundler", "~>
|
37
|
-
spec.add_development_dependency "rake", "~>
|
34
|
+
spec.add_development_dependency "bundler", "~> 2.0"
|
35
|
+
spec.add_development_dependency "rake", "~> 13.0"
|
38
36
|
spec.add_development_dependency "rspec", "~> 3.0"
|
39
37
|
end
|
metadata
CHANGED
@@ -1,17 +1,51 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: yabeda-prometheus
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andrey Novikov
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-06-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: prometheus-client
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0.10'
|
20
|
+
- - "<"
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: '3.0'
|
23
|
+
type: :runtime
|
24
|
+
prerelease: false
|
25
|
+
version_requirements: !ruby/object:Gem::Requirement
|
26
|
+
requirements:
|
27
|
+
- - ">="
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '0.10'
|
30
|
+
- - "<"
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '3.0'
|
13
33
|
- !ruby/object:Gem::Dependency
|
14
34
|
name: yabeda
|
35
|
+
requirement: !ruby/object:Gem::Requirement
|
36
|
+
requirements:
|
37
|
+
- - "~>"
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
version: '0.5'
|
40
|
+
type: :runtime
|
41
|
+
prerelease: false
|
42
|
+
version_requirements: !ruby/object:Gem::Requirement
|
43
|
+
requirements:
|
44
|
+
- - "~>"
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: '0.5'
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: rack
|
15
49
|
requirement: !ruby/object:Gem::Requirement
|
16
50
|
requirements:
|
17
51
|
- - ">="
|
@@ -30,28 +64,28 @@ dependencies:
|
|
30
64
|
requirements:
|
31
65
|
- - "~>"
|
32
66
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
67
|
+
version: '2.0'
|
34
68
|
type: :development
|
35
69
|
prerelease: false
|
36
70
|
version_requirements: !ruby/object:Gem::Requirement
|
37
71
|
requirements:
|
38
72
|
- - "~>"
|
39
73
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
74
|
+
version: '2.0'
|
41
75
|
- !ruby/object:Gem::Dependency
|
42
76
|
name: rake
|
43
77
|
requirement: !ruby/object:Gem::Requirement
|
44
78
|
requirements:
|
45
79
|
- - "~>"
|
46
80
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
81
|
+
version: '13.0'
|
48
82
|
type: :development
|
49
83
|
prerelease: false
|
50
84
|
version_requirements: !ruby/object:Gem::Requirement
|
51
85
|
requirements:
|
52
86
|
- - "~>"
|
53
87
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
88
|
+
version: '13.0'
|
55
89
|
- !ruby/object:Gem::Dependency
|
56
90
|
name: rspec
|
57
91
|
requirement: !ruby/object:Gem::Requirement
|
@@ -73,10 +107,11 @@ executables: []
|
|
73
107
|
extensions: []
|
74
108
|
extra_rdoc_files: []
|
75
109
|
files:
|
110
|
+
- ".github/workflows/build-release.yml"
|
111
|
+
- ".github/workflows/test.yml"
|
76
112
|
- ".gitignore"
|
77
113
|
- ".rspec"
|
78
114
|
- ".rubocop.yml"
|
79
|
-
- ".travis.yml"
|
80
115
|
- CHANGELOG.md
|
81
116
|
- Gemfile
|
82
117
|
- LICENSE.txt
|
@@ -88,6 +123,7 @@ files:
|
|
88
123
|
- lib/yabeda/prometheus/adapter.rb
|
89
124
|
- lib/yabeda/prometheus/exporter.rb
|
90
125
|
- lib/yabeda/prometheus/version.rb
|
126
|
+
- yabeda-prometheus-logo.png
|
91
127
|
- yabeda-prometheus.gemspec
|
92
128
|
homepage: https://github.com/yabeda-rb/yabeda-prometheus
|
93
129
|
licenses:
|
@@ -96,10 +132,7 @@ metadata:
|
|
96
132
|
homepage_uri: https://github.com/yabeda-rb/yabeda-prometheus
|
97
133
|
source_code_uri: https://github.com/yabeda-rb/yabeda-prometheus
|
98
134
|
changelog_uri: https://github.com/yabeda-rb/yabeda-prometheus/blob/master/CHANGELOG.md
|
99
|
-
post_install_message:
|
100
|
-
You need to have installed either prometheus-client or prometheus-client-mmap
|
101
|
-
gem for yabeda-prometheus to work.
|
102
|
-
Please make sure that you have added one of them to your Gemfile.
|
135
|
+
post_install_message:
|
103
136
|
rdoc_options: []
|
104
137
|
require_paths:
|
105
138
|
- lib
|
@@ -107,14 +140,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
107
140
|
requirements:
|
108
141
|
- - ">="
|
109
142
|
- !ruby/object:Gem::Version
|
110
|
-
version: '
|
143
|
+
version: '2.3'
|
111
144
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
112
145
|
requirements:
|
113
146
|
- - ">="
|
114
147
|
- !ruby/object:Gem::Version
|
115
148
|
version: '0'
|
116
149
|
requirements: []
|
117
|
-
rubygems_version: 3.
|
150
|
+
rubygems_version: 3.1.6
|
118
151
|
signing_key:
|
119
152
|
specification_version: 4
|
120
153
|
summary: Extensible Prometheus exporter for your application
|