yabeda-gc 0.3.0 → 0.4.0
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 +4 -4
- data/CHANGELOG.md +7 -0
- data/Gemfile.lock +35 -35
- data/lib/yabeda/gc/version.rb +1 -1
- data/lib/yabeda/gc.rb +41 -44
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 843130a29cb0d6261906f9098739eee6deb188a7538b9e1737078b0cc830f62b
|
4
|
+
data.tar.gz: 5174052f1bd083581eb1572f4d341d29128d2d60a65a3b3a1d8c3af0b4ea2875
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7a87fc2cdb220d0a35d0e5f8cba205e7ff171f5be2f5fa83e0d4643c02b3ef021bd73ef19f1690cf21a91f74e4680a1e39c72841e1d6eb38703b5d90a5c80fe1
|
7
|
+
data.tar.gz: 91d80b5fc6b25a34e5e9dafd9c915c5d4c40641cb2206b0cce7dcd891d1993eb489a065ba7996a3d98a92b001262eed413a3fb240aa81bd1e2bf32551988ecf4
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,11 @@
|
|
1
1
|
## [Unreleased]
|
2
2
|
|
3
|
+
## [0.4.0] - 2024-11-01
|
4
|
+
|
5
|
+
### Added
|
6
|
+
|
7
|
+
- Automatic GC metric registration for future Ruby versions. [@jeremy] in [#6](https://github.com/ianks/yabeda-gc/pull/6)
|
8
|
+
|
3
9
|
## [0.3.0] - 2024-01-04
|
4
10
|
|
5
11
|
### Added
|
@@ -32,3 +38,4 @@
|
|
32
38
|
[@tarapon]: https://github.com/tarapon "Ivan Tarapon"
|
33
39
|
[@Envek]: https://github.com/Envek "Andrey Novikov"
|
34
40
|
[@aroop]: https://github.com/aroop "Ajay Guthikonda"
|
41
|
+
[@jeremy]: https://github.com/jeremy "Jeremy Daer"
|
data/Gemfile.lock
CHANGED
@@ -1,70 +1,70 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
yabeda-gc (0.
|
4
|
+
yabeda-gc (0.4.0)
|
5
5
|
yabeda (~> 0.6)
|
6
6
|
|
7
7
|
GEM
|
8
8
|
remote: https://rubygems.org/
|
9
9
|
specs:
|
10
|
-
anyway_config (2.
|
11
|
-
ruby-next-core (
|
10
|
+
anyway_config (2.6.4)
|
11
|
+
ruby-next-core (~> 1.0)
|
12
12
|
ast (2.4.2)
|
13
13
|
coderay (1.1.3)
|
14
|
-
concurrent-ruby (1.
|
15
|
-
diff-lcs (1.5.
|
14
|
+
concurrent-ruby (1.3.4)
|
15
|
+
diff-lcs (1.5.1)
|
16
16
|
dry-initializer (3.1.1)
|
17
|
-
json (2.7.
|
17
|
+
json (2.7.5)
|
18
18
|
language_server-protocol (3.17.0.3)
|
19
|
-
method_source (1.
|
20
|
-
parallel (1.
|
21
|
-
parser (3.
|
19
|
+
method_source (1.1.0)
|
20
|
+
parallel (1.26.3)
|
21
|
+
parser (3.3.5.1)
|
22
22
|
ast (~> 2.4.1)
|
23
23
|
racc
|
24
24
|
pry (0.14.2)
|
25
25
|
coderay (~> 1.1)
|
26
26
|
method_source (~> 1.0)
|
27
|
-
racc (1.
|
27
|
+
racc (1.8.1)
|
28
28
|
rainbow (3.1.1)
|
29
|
-
rake (13.1
|
30
|
-
regexp_parser (2.
|
31
|
-
|
32
|
-
|
33
|
-
rspec-
|
34
|
-
rspec-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
rspec-expectations (3.12.3)
|
29
|
+
rake (13.2.1)
|
30
|
+
regexp_parser (2.9.2)
|
31
|
+
rspec (3.13.0)
|
32
|
+
rspec-core (~> 3.13.0)
|
33
|
+
rspec-expectations (~> 3.13.0)
|
34
|
+
rspec-mocks (~> 3.13.0)
|
35
|
+
rspec-core (3.13.2)
|
36
|
+
rspec-support (~> 3.13.0)
|
37
|
+
rspec-expectations (3.13.3)
|
39
38
|
diff-lcs (>= 1.2.0, < 2.0)
|
40
|
-
rspec-support (~> 3.
|
41
|
-
rspec-mocks (3.
|
39
|
+
rspec-support (~> 3.13.0)
|
40
|
+
rspec-mocks (3.13.2)
|
42
41
|
diff-lcs (>= 1.2.0, < 2.0)
|
43
|
-
rspec-support (~> 3.
|
44
|
-
rspec-support (3.
|
45
|
-
rubocop (1.
|
42
|
+
rspec-support (~> 3.13.0)
|
43
|
+
rspec-support (3.13.1)
|
44
|
+
rubocop (1.68.0)
|
46
45
|
json (~> 2.3)
|
47
46
|
language_server-protocol (>= 3.17.0)
|
48
47
|
parallel (~> 1.10)
|
49
|
-
parser (>= 3.
|
48
|
+
parser (>= 3.3.0.2)
|
50
49
|
rainbow (>= 2.2.2, < 4.0)
|
51
|
-
regexp_parser (>=
|
52
|
-
|
53
|
-
rubocop-ast (>= 1.30.0, < 2.0)
|
50
|
+
regexp_parser (>= 2.4, < 3.0)
|
51
|
+
rubocop-ast (>= 1.32.2, < 2.0)
|
54
52
|
ruby-progressbar (~> 1.7)
|
55
53
|
unicode-display_width (>= 2.4.0, < 3.0)
|
56
|
-
rubocop-ast (1.
|
57
|
-
parser (>= 3.
|
58
|
-
ruby-next-core (1.0.
|
54
|
+
rubocop-ast (1.33.0)
|
55
|
+
parser (>= 3.3.1.0)
|
56
|
+
ruby-next-core (1.0.3)
|
59
57
|
ruby-progressbar (1.13.0)
|
60
|
-
unicode-display_width (2.
|
61
|
-
yabeda (0.
|
58
|
+
unicode-display_width (2.6.0)
|
59
|
+
yabeda (0.13.1)
|
62
60
|
anyway_config (>= 1.0, < 3)
|
63
61
|
concurrent-ruby
|
64
62
|
dry-initializer
|
65
63
|
|
66
64
|
PLATFORMS
|
67
|
-
|
65
|
+
aarch64-linux
|
66
|
+
arm64-darwin
|
67
|
+
x86_64-darwin
|
68
68
|
x86_64-linux
|
69
69
|
|
70
70
|
DEPENDENCIES
|
data/lib/yabeda/gc/version.rb
CHANGED
data/lib/yabeda/gc.rb
CHANGED
@@ -8,54 +8,51 @@ module Yabeda
|
|
8
8
|
module GC
|
9
9
|
EMPTY_HASH = {}.freeze
|
10
10
|
|
11
|
-
|
12
|
-
|
11
|
+
# Don't use a constant. No need to retain this after registering gauges.
|
12
|
+
comments = {
|
13
|
+
count: "Count of all GCs",
|
14
|
+
compact_count: "Count of all GC compactions",
|
15
|
+
minor_gc_count: "Count of minor GCs",
|
16
|
+
major_gc_count: "Count of major GCs",
|
17
|
+
heap_allocated_pages: "Total number of pages allocated for the heap",
|
18
|
+
heap_sorted_length: "Length of the sorted heap",
|
19
|
+
heap_allocatable_pages: "Total number of allocatable heap pages",
|
20
|
+
heap_available_slots: "Total number of slots in heap pages",
|
21
|
+
heap_live_slots: "Number of live objects slots",
|
22
|
+
heap_free_slots: "Number of free object slots",
|
23
|
+
heap_final_slots: "Number of object slots with finalizers attached to them",
|
24
|
+
heap_marked_slots: "Count of old objects which survived more than 3 GC cycles and number of write-barrier unprotected objects",
|
25
|
+
heap_eden_pages: "Number of pages allocated for the eden heap",
|
26
|
+
heap_tomb_pages: "Number of pages allocated for the tomb heap",
|
27
|
+
total_allocated_pages: "Total number of allocated pages over the lifetime of this process",
|
28
|
+
total_freed_pages: "Total number of freed pages over the lifetime of this process",
|
29
|
+
total_allocated_objects: "Total number of allocated objects over the lifetime of this process",
|
30
|
+
total_freed_objects: "Total number of freed objects over the lifetime of this process",
|
31
|
+
malloc_increase_bytes: "Total bytes allocated to objects",
|
32
|
+
malloc_increase_bytes_limit: "Bytes limit that will trigger garbage collection of objects",
|
33
|
+
remembered_wb_unprotected_objects: "Number of write-barrier unprotected objects in the remembered set",
|
34
|
+
remembered_wb_unprotected_objects_limit: "Limit on write-barrier unprotected objects allowed in the remembered set",
|
35
|
+
old_objects: "Number of old objects",
|
36
|
+
old_objects_limit: "Limit of old objects",
|
37
|
+
oldmalloc_increase_bytes: "Total bytes allocated to old objects",
|
38
|
+
oldmalloc_increase_bytes_limit: "Bytes limit that will trigger garbage collection of old objects",
|
13
39
|
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
gauge :heap_allocated_pages, tags: [], comment: "Total number of pages allocated for the heap"
|
19
|
-
gauge :heap_sorted_length, tags: [], comment: "Length of the sorted heap"
|
20
|
-
gauge :heap_allocatable_pages, tags: [], comment: "Total number of allocatable heap pages"
|
21
|
-
gauge :heap_available_slots, tags: [], comment: "Total number of slots in heap pages"
|
22
|
-
gauge :heap_live_slots, tags: [], comment: "Number of live objects slots"
|
23
|
-
gauge :heap_free_slots, tags: [], comment: "Number of free object slots"
|
24
|
-
gauge :heap_final_slots, tags: [], comment: "Number of object slots with finalizers attached to them"
|
25
|
-
gauge :heap_marked_slots, tags: [],
|
26
|
-
comment: "Count of old objects which survived more than 3 GC cycles and number of write-barrier unprotected objects"
|
27
|
-
gauge :heap_eden_pages, tags: [], comment: "Number of pages allocated for the eden heap"
|
28
|
-
gauge :heap_tomb_pages, tags: [], comment: "Number of pages allocated for the tomb heap"
|
29
|
-
gauge :total_allocated_pages, tags: [],
|
30
|
-
comment: "Total number of allocated pages over the lifetime of this process"
|
31
|
-
gauge :total_freed_pages, tags: [], comment: "Total number of freed pages over the lifetime of this process"
|
32
|
-
gauge :total_allocated_objects, tags: [],
|
33
|
-
comment: "Total number of allocated objects over the lifetime of this process"
|
34
|
-
gauge :total_freed_objects, tags: [], comment: "Total number of freed objects over the lifetime of this process"
|
35
|
-
gauge :malloc_increase_bytes, tags: [], comment: "Total bytes allocated to objects"
|
36
|
-
gauge :malloc_increase_bytes_limit, tags: [],
|
37
|
-
comment: "Bytes limit that will trigger garbage collection of objects"
|
38
|
-
gauge :remembered_wb_unprotected_objects, tags: [],
|
39
|
-
comment: "Number of write-barrier unprotected objects in the remembered set"
|
40
|
-
gauge :remembered_wb_unprotected_objects_limit, tags: [],
|
41
|
-
comment: "Limit on write-barrier unprotected objects allowed in the remembered set"
|
42
|
-
gauge :old_objects, tags: [], comment: "Number of old objects"
|
43
|
-
gauge :old_objects_limit, tags: [], comment: "Limit of old objects"
|
44
|
-
gauge :oldmalloc_increase_bytes, tags: [], comment: "Total bytes allocated to old objects"
|
45
|
-
gauge :oldmalloc_increase_bytes_limit, tags: [],
|
46
|
-
comment: "Bytes limit that will trigger garbage collection of old objects"
|
40
|
+
# Ruby 3.0
|
41
|
+
time: "The total time spent in garbage collections",
|
42
|
+
read_barrier_faults: "The total number of times the read barrier was triggered during compaction",
|
43
|
+
total_moved_objects: "The total number of objects compaction has moved",
|
47
44
|
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
end
|
45
|
+
# Ruby 3.3
|
46
|
+
marking_time: "Time spent in the marking phase",
|
47
|
+
sweeping_time: "Time spent in the sweeping phase"
|
48
|
+
}.freeze
|
53
49
|
|
54
|
-
|
50
|
+
Yabeda.configure do
|
51
|
+
group :gc
|
55
52
|
|
56
|
-
|
57
|
-
|
58
|
-
gauge
|
53
|
+
# Register gauges for all GC stats. Include our optional commentary.
|
54
|
+
::GC.stat.each_key do |stat_name|
|
55
|
+
gauge stat_name, tags: [], comment: comments.fetch(stat_name, stat_name)
|
59
56
|
end
|
60
57
|
|
61
58
|
collect do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: yabeda-gc
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ian Ker-Seymer
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-01
|
11
|
+
date: 2024-11-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: yabeda
|
@@ -69,7 +69,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
69
69
|
- !ruby/object:Gem::Version
|
70
70
|
version: '0'
|
71
71
|
requirements: []
|
72
|
-
rubygems_version: 3.4.
|
72
|
+
rubygems_version: 3.4.19
|
73
73
|
signing_key:
|
74
74
|
specification_version: 4
|
75
75
|
summary: Extensible Prometheus exporter for monitoring Ruby gargage collection
|