yabeda-prometheus 0.1.5 → 0.6.2
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/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
|
+
# 
|
2
2
|
|
3
3
|
[](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
|