Métriques runtime Go

Configuration automatique

Pour activer la collecte de métriques runtime Go, lancez le traceur à l’aide de l’option WithRuntimeMetrics :

tracer.Start(tracer.WithRuntimeMetrics())

Visualisez conjointement vos métriques runtime avec vos services Go. Pour ce faire, consultez la page Service dans Datadog.

Par défaut, les métriques runtime provenant de votre application sont envoyées toutes les 10 secondes à l’Agent Datadog via DogStatsD, sur le port 8125. Assurez-vous que DogStatsD est activé pour l’Agent. Si l’adresse de DogStatsD pour l’Agent Datadog ne correspond pas à localhost:8125, utilisez l’option WithDogstatsdAddress ou les variables d’environnement DD_AGENT_HOST et DD_DOGSTATSD_PORT.

Si vous exécutez l’Agent en tant que conteneur, vérifiez que DD_DOGSTATSD_NON_LOCAL_TRAFFIC est définie sur true et que le port 8125 est ouvert sur l’Agent. En outre, pour :

Données collectées

Les métriques suivantes sont recueillies par défaut après l’activation des métriques Go.

runtime.go.num_cpu
(gauge)
CPUs detected by the runtime.
Shown as resource
runtime.go.num_goroutine
(gauge)
goroutines spawned.
Shown as invocation
runtime.go.num_cgo_call
(gauge)
CGO calls made.
Shown as invocation
runtime.go.mem_stats.alloc
(gauge)
Alloc is bytes of allocated heap objects.
Shown as bytes
runtime.go.mem_stats.total_alloc
(gauge)
TotalAlloc is cumulative bytes allocated for heap objects.
Shown as bytes
runtime.go.mem_stats.sys
(gauge)
Sys is the total bytes of memory obtained from the OS.
Shown as bytes
runtime.go.mem_stats.lookups
(gauge)
Lookups is the number of pointer lookups performed by the
Shown as unit
runtime.go.mem_stats.mallocs
(gauge)
Mallocs is the cumulative count of heap objects allocated.
Shown as unit
runtime.go.mem_stats.frees
(gauge)
Frees is the cumulative count of heap objects freed.
Shown as unit
runtime.go.mem_stats.heap_alloc
(gauge)
HeapAlloc is bytes of allocated heap objects.
Shown as bytes
runtime.go.mem_stats.heap_sys
(gauge)
HeapSys is bytes of heap memory obtained from the OS.
Shown as bytes
runtime.go.mem_stats.heap_idle
(gauge)
HeapIdle is bytes in idle (unused) spans.
Shown as bytes
runtime.go.mem_stats.heap_inuse
(gauge)
HeapInuse is bytes in in-use spans.
Shown as bytes
runtime.go.mem_stats.heap_released
(gauge)
HeapReleased is bytes of physical memory returned to the OS.
Shown as bytes
runtime.go.mem_stats.heap_objects
(gauge)
HeapObjects is the number of allocated heap objects.
Shown as unit
runtime.go.mem_stats.stack_inuse
(gauge)
StackInuse is bytes in stack spans.
Shown as bytes
runtime.go.mem_stats.stack_sys
(gauge)
StackSys is bytes of stack memory obtained from the OS.
Shown as bytes
runtime.go.mem_stats.m_span_inuse
(gauge)
MSpanInuse is bytes of allocated mspan structures.
Shown as bytes
runtime.go.mem_stats.m_span_sys
(gauge)
MSpanSys is bytes of memory obtained from the OS for mspan structures.
Shown as bytes
runtime.go.mem_stats.m_cache_inuse
(gauge)
MCacheInuse is bytes of allocated mcache structures.
Shown as bytes
runtime.go.mem_stats.m_cache_sys
(gauge)
MCacheSys is bytes of memory obtained from the OS for
Shown as bytes
runtime.go.mem_stats.buck_hash_sys
(gauge)
BuckHashSys is bytes of memory in profiling bucket hash tables.
Shown as bytes
runtime.go.mem_stats.gc_sys
(gauge)
GCSys is bytes of memory in garbage collection metadata.
Shown as bytes
runtime.go.mem_stats.other_sys
(gauge)
OtherSys is bytes of memory in miscellaneous off-heap
Shown as bytes
runtime.go.mem_stats.next_gc
(gauge)
NextGC is the target heap size of the next GC cycle.
Shown as bytes
runtime.go.mem_stats.last_gc
(gauge)
LastGC is the time the last garbage collection finished, as nanoseconds since 1970 (the UNIX epoch).
Shown as ns
runtime.go.mem_stats.pause_total_ns
(gauge)
PauseTotalNs is the cumulative nanoseconds in GC
Shown as ns
runtime.go.mem_stats.num_gc
(gauge)
NumGC is the number of completed GC cycles.
Shown as unit
runtime.go.mem_stats.num_forced_gc
(gauge)
NumForcedGC is the number of GC cycles that were forced by the application calling the GC function.
Shown as unit
runtime.go.mem_stats.gc_cpu_fraction
(gauge)
GCCPUFraction is the fraction of this program's available CPU time used by the GC since the program started.
Shown as float
runtime.go.gc_stats.pause_quantiles.min
(gauge)
Distribution of GC pause times: minimum values
Shown as ns
runtime.go.gc_stats.pause_quantiles.25p
(gauge)
Distribution of GC pause times: 25th percentile
Shown as ns
runtime.go.gc_stats.pause_quantiles.75p
(gauge)
Distribution of GC pause times: 50th percentile
Shown as ns
runtime.go.gc_stats.pause_quantiles.95p
(gauge)
Distribution of GC pause times: 75th percentile
Shown as ns
runtime.go.gc_stats.pause_quantiles.max
(gauge)
Distribution of GC pause times: maximum values
Shown as ns

Pour aller plus loin