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`.