promenade 0.12.2 → 0.12.3

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