APM runtime metrics
Observe APM can automatically plot runtime metrics and infrastructure metrics for your services. This provides a fast way to answer questions like: "how is garbage collection affecting my CPU usage and service response times?" or "are we seeing an increase of goroutines associated with the service erroring?" You can access this by going to APM, clicking on a service, then selecting the Infrastructure Metrics or language-name Metrics tabs, such as Go Metrics or Java Metrics.
There are a few requirements on the metrics in order for them to be plotted in APM:
- The metrics must be sent to Observe in OTel format and be written to the
Metrics/OpenTelemetrydataset. If you are running the observe-agent on a host or containerized environment, ensure that the following option is set:forwarding.metrics.output_format: otel. If you are running the observe-agent in kubernetes, then ensure thatnode.forwarder.metrics.outputFormat=otelis set in your values.yaml file when installing or upgrading the observe-agent helm chart. These values will be set automatically when installing from the Add Data portal in the Observe UI. - The metrics must have temporality
delta. This can be configured using the standard OTel environment variableOTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE=delta. For compatibility, the observe-agent can also be configured to convert all metrics todeltatemporality by settingforwarding.metrics.convert_cumulative_to_delta: truein the agent config ornode.forwarder.metrics.convertCumulativeToDelta=truein your helm values.yaml file.
To associate your infra metrics with your services and display them alongside runtime metrics in APM, see Associate infrastructure metrics with services.
Supported languages and runtimes
Supported versions are v0.55.0 and later, but starting with v0.62.0 the environment variable OTEL_GO_X_DEPRECATED_RUNTIME_METRICS must be set to true.
APM Runtime metrics will plot data for the following metric names:
process.runtime.go.cgo.callsprocess.runtime.go.gc.countprocess.runtime.go.gc.pause_nsprocess.runtime.go.gc.pause_ns.countprocess.runtime.go.gc.pause_ns.maxprocess.runtime.go.gc.pause_ns.minprocess.runtime.go.gc.pause_ns.sumprocess.runtime.go.gc.pause_total_nsprocess.runtime.go.goroutinesprocess.runtime.go.mem.heap_allocprocess.runtime.go.mem.heap_idleprocess.runtime.go.mem.heap_inuseprocess.runtime.go.mem.heap_objectsprocess.runtime.go.mem.heap_releasedprocess.runtime.go.mem.heap_sysprocess.runtime.go.mem.live_objectsprocess.runtime.go.mem.lookups
Updated 1 day ago