Add get-gc-metrics-updater
This commit is contained in:
parent
c1b8fe176e
commit
4aaf902eb4
1 changed files with 28 additions and 1 deletions
|
|
@ -44,7 +44,9 @@
|
||||||
metric-set
|
metric-set
|
||||||
metric-observe
|
metric-observe
|
||||||
|
|
||||||
call-with-duration-metric))
|
call-with-duration-metric
|
||||||
|
|
||||||
|
get-gc-metrics-updater))
|
||||||
|
|
||||||
(define-record-type <metrics-registry>
|
(define-record-type <metrics-registry>
|
||||||
(make-metrics-registry-record metrics-hash namespace)
|
(make-metrics-registry-record metrics-hash namespace)
|
||||||
|
|
@ -558,3 +560,28 @@ This procedure takes care of atomically replacing the file."
|
||||||
(lambda (key . args)
|
(lambda (key . args)
|
||||||
(false-if-exception (delete-file template))))))
|
(false-if-exception (delete-file template))))))
|
||||||
|
|
||||||
|
(define (get-gc-metrics-updater registry)
|
||||||
|
(define metrics
|
||||||
|
`((gc-time-taken
|
||||||
|
. ,(make-gauge-metric registry "guile_gc_time_taken"))
|
||||||
|
(heap-size
|
||||||
|
. ,(make-gauge-metric registry "guile_heap_size"))
|
||||||
|
(heap-free-size
|
||||||
|
. ,(make-gauge-metric registry "guile_heap_free_size"))
|
||||||
|
(heap-total-allocated
|
||||||
|
. ,(make-gauge-metric registry "guile_heap_total_allocated"))
|
||||||
|
(heap-allocated-since-gc
|
||||||
|
. ,(make-gauge-metric registry "guile_allocated_since_gc"))
|
||||||
|
(protected-objects
|
||||||
|
. ,(make-gauge-metric registry "guile_gc_protected_objects"))
|
||||||
|
(gc-times
|
||||||
|
. ,(make-gauge-metric registry "guile_gc_times"))))
|
||||||
|
|
||||||
|
(lambda ()
|
||||||
|
(let ((stats (gc-stats)))
|
||||||
|
(for-each
|
||||||
|
(match-lambda
|
||||||
|
((name . metric)
|
||||||
|
(let ((value (assq-ref stats name)))
|
||||||
|
(metric-set metric value))))
|
||||||
|
metrics))))
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue