docs/metrics.asciidoc in elastic-apm-2.9.1 vs docs/metrics.asciidoc in elastic-apm-2.10.0
- old
+ new
@@ -10,63 +10,134 @@
These metrics will be sent regularly to the APM Server and from there to Elasticsearch.
You can adjust the interval by setting <<config-metrics-interval,`metrics_interval`>>.
The metrics will be stored in the `apm-*` index and have the `processor.event` property set to `metric`.
+[float]
+[[metrics-system]]
+=== System metrics
+
**Note:** Metrics from the Ruby agent are Linux only for now.
[float]
[[metric-system.cpu.total.norm.pct]]
-=== `system.cpu.total.norm.pct`
+==== `system.cpu.total.norm.pct`
* *Type:* Float
* *Format:* Percent
The percentage of CPU time in states other than Idle and IOWait,
normalised by the number of cores.
[float]
[[metric-system.memory.total]]
-=== `system.memory.total`
+==== `system.memory.total`
* *Type:* Long
* *Format:* Bytes
The total memory of the system in bytes.
[float]
[[metric-system.memory.actual.free]]
-=== `system.memory.actual.free`
+==== `system.memory.actual.free`
* *Type:* Long
* *Format:* Bytes
Free memory of the system in bytes.
[float]
[[metric-system.process.cpu.total.norm.pct]]
-=== `system.process.cpu.total.norm.pct`
+==== `system.process.cpu.total.norm.pct`
* *Type:* Float
* *Format:* Percent
The percentage of CPU time spent by the process since the last event.
This value is normalized by the number of CPU cores and it ranges from 0 to 100%.
[float]
[[metric-system.process.memory.size]]
-=== `system.process.memory.size`
+==== `system.process.memory.size`
* *Type:* Long
* *Format:* Bytes
The total virtual memory the process has.
[float]
[[metric-system.process.memory.rss.bytes]]
-=== `system.process.memory.rss.bytes`
+==== `system.process.memory.rss.bytes`
* *Type:* Long
* *Format:* Bytes
The Resident Set Size,
the amount of memory the process occupies in main memory (RAM).
+
+[float]
+[[metrics-ruby]]
+=== Ruby Metrics
+
+[float]
+[[metric-ruby.gc.counts]]
+==== `ruby.gc.count`
+
+* *Type:* Integer
+* *Format:* Count
+
+The number of Garbage Collection runs since the process started.
+
+[float]
+[[metric-ruby.threads]]
+==== `ruby.threads`
+
+* *Type:* Integer
+* *Format:* Count
+
+The number of threads belonging to the current process.
+
+[float]
+[[metric-ruby.heap.slots.live]]
+==== `ruby.heap.slots.live`
+
+* *Type:* Integer
+* *Format:* Slots
+
+Current amount of heap slots that are live.
+
+**NB:** Not currently supported on JRuby.
+
+[float]
+[[metric-ruby.heap.slots.free]]
+==== `ruby.heap.slots.free`
+
+* *Type:* Integer
+* *Format:* Slots
+
+Current amount of heap slots that are free.
+
+**NB:** Not currently supported on JRuby.
+
+[float]
+[[metrics-ruby.heap.allocations.total]]
+==== `ruby.heap.allocations.total`
+
+* *Type:* Integer
+* *Format:* Objects
+
+Current amount of allocated objects on the heap.
+
+**NB:** Not currently supported on JRuby.
+
+[float]
+[[metrics-ruby.gc.time]]
+==== `ruby.gc.time`
+
+* *Type:* Float
+* *Format:* Seconds
+
+The total time spent in garbage collection.
+
+**NB:** You need to enable Ruby's GC Profiler for this to get reported.
+You can do this at any time when your application boots by calling `GC::Profiler.enable`.