prometheus-client-mmap 0.25.0-arm64-darwin → 0.26.1-arm64-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: 7e25b5c221f6dbace3fcd430752e961cbdacb59cea837743f56d26612987fbce
4
- data.tar.gz: 50f1f162c9147c9b01fa2d0238f55216bd3eb9e74c5c0ff9f011d72c7dfe2b22
3
+ metadata.gz: 8adc827050ddc653aa4309f81269e9652e89dbd7472633acd2d088d53d6b669a
4
+ data.tar.gz: 16bcbbd60af12df61dc028a9424a0d62fcbe45c279c08d0ce5fd60da9b57aa56
5
5
  SHA512:
6
- metadata.gz: 1ece252ef9705f506e22ce9bc73007053c1536749949a4c38cad377e66a8edbe9081962362c8848fa8df37cd3a80a9db56adb98004c7f6096298255a08b94ae8
7
- data.tar.gz: cc97ecd47e4f24734a9349fb963e3ae7b6cfd8bc3995fb01b394baa9aeac3364d3e68aa58d694820898b9399089a40c1bdeeed6b4d0fc9e0f299d0496643a7c3
6
+ metadata.gz: fdc0adeba0a82257a8698cb2429f89deded38efdbb453df232b2892bb6cee576c198a40f6a873a29a3a39685686000bb1e4411ddb6221f298750adfcb313d73b
7
+ data.tar.gz: b92d771ee6b3a0b4c854488362ccc7754a8fce25d67e4c3aec9eeb16d2d9838e2e90c89a48f83de5a714472cf9d7dd363adca4b2812e9da65bcb7ed449a649ac
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: arm64-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