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-observe
|
||||
|
||||
call-with-duration-metric))
|
||||
call-with-duration-metric
|
||||
|
||||
get-gc-metrics-updater))
|
||||
|
||||
(define-record-type <metrics-registry>
|
||||
(make-metrics-registry-record metrics-hash namespace)
|
||||
|
|
@ -558,3 +560,28 @@ This procedure takes care of atomically replacing the file."
|
|||
(lambda (key . args)
|
||||
(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