prometheus-client-mmap 0.25.0-x86_64-darwin → 0.26.1-x86_64-darwin

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 74773c45b9ddb83dfa6b24c8ebbc0cef9b5c42e25130739abe1a9c5e31303606
4
- data.tar.gz: c0ecad5a2f9cc1208929857d044fdf15e5dfe4b7ead267098ce294beb96f9fa3
3
+ metadata.gz: f5e6a47564cdf94bbdc5239e944b883bc876afa39b7eb08744eb987fdb59060e
4
+ data.tar.gz: e0d6309c130a7eb1483386fadc565c8badf412e6c9cc8fe9eed06e9728a8161e
5
5
  SHA512:
6
- metadata.gz: 9c24415dcfceadf7b6c569afd67ec520a965ed220cc8e5a1e5d884cf8e23d948fccaaf57fd2fb74a20a294179a0d76ff15059a0b72d270aa351d08b7aadbe91b
7
- data.tar.gz: b972c38fad8aacc72692a4a12292955d1be095510c701f4ccfc1121aeeb57a8a20102cf004230b53ce237068cba0a89bff5cd63845ea36d498061f22c0675dad
6
+ metadata.gz: 782a1f3aa34f60b408b43bafb0f866a7a3849dfa7067eda74e2f8755a887fc38c42a3ec3a461e806281b3e663fd26b3392ed1bdf276e17ac15b33856742563c8
7
+ data.tar.gz: 6dc523ed5e961e6497f30f0ba7c08681415a242fde4ff699d101a0dc8ef29727c42bae8482bb1cdb0cd0dfea081066b1461e31aae837f4583e75c63b808df2a5
data/README.md CHANGED
@@ -10,7 +10,24 @@ through a HTTP interface. Intended to be used together with a
10
10
 
11
11
  [![Gem Version][4]](http://badge.fury.io/rb/prometheus-client-mmap)
12
12
  [![Build Status][3]](https://gitlab.com/gitlab-org/prometheus-client-mmap/commits/master)
13
- [![Dependency Status][5]](https://gemnasium.com/prometheus/prometheus-client-mmap)
13
+
14
+ ## Installation
15
+
16
+ prometheus-client-mmap ships with [precompiled native gems](https://rubygems.org/gems/prometheus-client-mmap).
17
+ Install the gem via:
18
+
19
+ ```shell
20
+ gem install prometheus-client-mmap
21
+ ```
22
+
23
+ ### Requirements for building from source
24
+
25
+ Building from source requires a number of dependencies:
26
+
27
+ * Rust v1.65+
28
+ * clang 5.0 or higher for [bindgen](https://rust-lang.github.io/rust-bindgen/requirements.html)
29
+ * `make`
30
+ * A C compiler (for legacy extension, which will be removed soon)
14
31
 
15
32
  ## Usage
16
33
 
@@ -34,9 +51,9 @@ http_requests = prometheus.counter(:http_requests, 'A counter of HTTP requests m
34
51
  http_requests.increment
35
52
  ```
36
53
 
37
- ## Rust extension (experimental)
54
+ ## Rust extension
38
55
 
39
- In an effort to improve maintainability, there is now an optional Rust
56
+ In an effort to improve maintainability, there is now a Rust
40
57
  implementation that reads the metric files and outputs the multiprocess
41
58
  metrics to text. If `rustc` is available, then the Rust extension will
42
59
  be built automatically. The `use_rust` keyword argument can be used:
@@ -45,8 +62,10 @@ be built automatically. The `use_rust` keyword argument can be used:
45
62
  puts Prometheus::Client::Formats::Text.marshal_multiprocess(use_rust: true)
46
63
  ```
47
64
 
65
+ Starting with v0.26.0, `use_rust` defaults to `true`.
66
+
48
67
  Note that this parameter will likely be deprecated and removed once the Rust
49
- extension becomes the default mode.
68
+ extension becomes the only supported mode.
50
69
 
51
70
  ### Rack middleware
52
71
 
@@ -202,14 +221,21 @@ prometheus_multiproc_dir=/tmp
202
221
 
203
222
  ### Multiprocess metrics via Rust extension
204
223
 
205
- If the environment variable `prometheus_rust_multiprocess_metrics=true` is set or if the `rust_multiprocess_metrics`
206
- configuration setting is `true` and the `fast_mmaped_file_rs` extension is available, it will be used to generate
207
- multiprocess metrics. This should be significantly faster than the C extension.
224
+ By default, the Rust extension will be used to read and write multiprocess
225
+ metrics if the `fast_mmaped_file_rs` extension is available. This should
226
+ be significantly faster than the C extension.
227
+
228
+ If the environment variable `prometheus_rust_multiprocess_metrics=false`
229
+ is set or if the `rust_multiprocess_metrics` configuration setting is
230
+ `false` , the C extension will be used.
208
231
 
209
232
  ### Read and write metrics via Rust extension
210
233
 
211
- If the environment variable `prometheus_rust_mmaped_file=true` is set then if the `fast_mmaped_file_rs`
212
- extension is available it will be used to read and write metrics from the mmapped file.
234
+ By default, the Rust extension will be used to read and write metrics
235
+ from the mmaped file if the `fast_mmaped_file_rs` extension is available.
236
+
237
+ To use the C extension, set the environment variable
238
+ `prometheus_rust_mmaped_file=false`.
213
239
 
214
240
  ## Pitfalls
215
241
 
Binary file
Binary file
@@ -14,7 +14,7 @@ module Prometheus
14
14
  @initial_mmap_file_size = ::Prometheus::Client::PageSize.page_size(fallback_page_size: 4096)
15
15
  @logger = Logger.new($stdout)
16
16
  @pid_provider = Process.method(:pid)
17
- @rust_multiprocess_metrics = ENV.fetch('prometheus_rust_multiprocess_metrics', nil) == 'true'
17
+ @rust_multiprocess_metrics = ENV.fetch('prometheus_rust_multiprocess_metrics', 'true') == 'true'
18
18
  @multiprocess_files_dir = ENV.fetch('prometheus_multiproc_dir') do
19
19
  Dir.mktmpdir("prometheus-mmap")
20
20
  end
@@ -27,7 +27,7 @@ module Prometheus
27
27
  Helper::MetricsRepresentation.to_text(metrics)
28
28
  end
29
29
 
30
- def marshal_multiprocess(path = Prometheus::Client.configuration.multiprocess_files_dir, use_rust: false)
30
+ def marshal_multiprocess(path = Prometheus::Client.configuration.multiprocess_files_dir, use_rust: true)
31
31
  file_list = Dir.glob(File.join(path, '*.db')).sort
32
32
  .map {|f| Helper::PlainFile.new(f) }
33
33
  .map {|f| [f.filepath, f.multiprocess_mode.to_sym, f.type.to_sym, f.pid] }
@@ -29,7 +29,11 @@ module Prometheus
29
29
  load_rust_extension
30
30
  true
31
31
  rescue LoadError
32
- Prometheus::Client.logger.info('FastMmapedFileRs unavailable')
32
+ warn <<~WARN
33
+ WARNING: The Rust extension for prometheus-client-mmap is unavailable, falling back to the legacy C extension.
34
+ The Rust extension will be required in the next version. If you are compiling this gem from source,
35
+ ensure your build system has a Rust compiler and clang: https://gitlab.com/gitlab-org/ruby/gems/prometheus-client-mmap
36
+ WARN
33
37
  false
34
38
  end
35
39
  end
@@ -14,7 +14,7 @@ module Prometheus
14
14
  module Client
15
15
  module Helper
16
16
  # We can't check `Prometheus::Client.configuration` as this creates a circular dependency
17
- if (ENV.fetch('prometheus_rust_mmaped_file', nil) == "true" &&
17
+ if (ENV.fetch('prometheus_rust_mmaped_file', 'true') == "true" &&
18
18
  Prometheus::Client::Helper::Loader.rust_impl_available?)
19
19
  class MmapedFile < FastMmapedFileRs
20
20
  end
@@ -1,5 +1,5 @@
1
1
  module Prometheus
2
2
  module Client
3
- VERSION = '0.25.0'.freeze
3
+ VERSION = '0.26.1'.freeze
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: prometheus-client-mmap
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.25.0
4
+ version: 0.26.1
5
5
  platform: x86_64-darwin
6
6
  authors:
7
7
  - Tobias Schmidt
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2023-06-15 00:00:00.000000000 Z
14
+ date: 2023-07-12 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: rb_sys