promenade 0.12.2 → 0.12.3

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: 9be9950116dea78f1a07e2b4ec1cd0d8a290c48f390e75f95b88cb9687b5db48
4
- data.tar.gz: 24b9e9275600f6cfe014505b0752efad476bcb9498c6d1653db6c75b512db4c4
3
+ metadata.gz: 1ce2f5d337f4a1fe6de094092a79d85d228dd6b4efa0f0b690f61e0f20db747e
4
+ data.tar.gz: b4b552462b63b3b502206e8bf795ec42d461f97c1d078d21a8fb530f2d07fa88
5
5
  SHA512:
6
- metadata.gz: 4a91f14302d8dc02706233f5d7c92819f7dd2878d07affdd9610018f3993b20ca737514e0ed88d6a1fd4cc9a82182f03dd00181d88242c25e9a2424347f39584
7
- data.tar.gz: 9c8399ffab1eb5b6d4166063e763b7d06f9e80440bdc42769f3dd149ba0399676212f3169480e4fb3599da5f51c2efae6b60a90e65862f9abea4d9e95c6d7ca6
6
+ metadata.gz: ff7629ea8b250ed7ebb2d42b0fd4eb77f8c662f2144ff7a0bd751b363b8cff662306dd2d96d581c6cce7d4e7c58f4e8a4981b9d985b09b36575d30da5dc148ff
7
+ data.tar.gz: 4f6ba22211d7309034f61e2f66444f9dfac8b13a0a329c83445af8ef615224ceb76fb238a4e507357f28b278b35eb5b6e9ee9e98a82599f8e3204a0b634246db
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- promenade (0.12.2)
4
+ promenade (0.12.3)
5
5
  actionpack
6
6
  activesupport (> 6.0, < 8.0)
7
7
  prometheus-client-mmap (~> 1.1)
@@ -0,0 +1,11 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "bundler/setup"
4
+ require "promenade"
5
+ require "promenade/yjit/stats"
6
+ require "prometheus/client"
7
+ require "prometheus/client/formats/text"
8
+
9
+ Promenade.setup
10
+ Promenade::YJIT::Stats.instrument
11
+ puts Prometheus::Client::Formats::Text.marshal_multiprocess
@@ -1,3 +1,3 @@
1
1
  module Promenade
2
- VERSION = "0.12.2".freeze
2
+ VERSION = "0.12.3".freeze
3
3
  end
@@ -1,14 +1,25 @@
1
1
  module Promenade
2
2
  module YJIT
3
3
  class Stats
4
+ RUNTIME_STATS = %i(
5
+ code_region_size
6
+ ratio_in_yjit
7
+ ).freeze
8
+
4
9
  Promenade.gauge :ruby_yjit_code_region_size do
5
10
  doc "Ruby YJIT code size"
6
11
  end
7
12
 
13
+ Promenade.gauge :ruby_yjit_ratio_in_yjit do
14
+ doc "Shows the ratio of YJIT-executed instructions in %"
15
+ end
16
+
8
17
  def self.instrument
9
18
  return unless defined?(::RubyVM::YJIT) && ::RubyVM::YJIT.enabled?
10
19
 
11
- Promenade.metric(:ruby_yjit_code_region_size).set({}, ::RubyVM::YJIT.runtime_stats[:code_region_size])
20
+ ::RubyVM::YJIT.runtime_stats.select { |stat, _| RUNTIME_STATS.include? stat }.each do |stat, value|
21
+ Promenade.metric(:"ruby_yjit_#{stat}").set({}, value)
22
+ end
12
23
  end
13
24
  end
14
25
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: promenade
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.12.2
4
+ version: 0.12.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ed Robinson
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-02-26 00:00:00.000000000 Z
11
+ date: 2024-02-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: actionpack
@@ -283,6 +283,7 @@ files:
283
283
  - bin/integration_test
284
284
  - bin/rails
285
285
  - bin/setup
286
+ - bin/yjit_intergration_test
286
287
  - exe/promenade
287
288
  - lib/promenade.rb
288
289
  - lib/promenade/client/rack/exception_handler.rb