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

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 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