yabeda-gc 0.3.0 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|