指标编辑

Go 代理定期收集和报告指标。使用 ELASTIC_APM_METRICS_INTERVAL 配置控制指标报告频率,并使用 ELASTIC_APM_DISABLE_METRICS 禁用指标。

系统指标编辑

Go 代理报告基本的系统级和进程级 CPU 和内存指标。有关更多系统指标,请考虑在您的主机上安装 Metricbeat

从 Elastic Stack 版本 6.6 开始,这些指标将在 APM 应用程序中可视化。

在某些情况下,将合并来自多个节点的数据。从 Elastic Stack 版本 7.5 开始,您可以为每个节点设置一个唯一的名称以避免此问题。否则,将根据容器 ID 或主机名分别聚合数据。

system.cpu.total.norm.pct

类型: scaled_float

格式: 百分比

除空闲和 IOWait 状态之外的其他状态的 CPU 时间百分比,按核心数量标准化。

system.process.cpu.total.norm.pct

类型: scaled_float

格式: 百分比

自上次事件以来,进程花费的 CPU 时间百分比。此值按 CPU 核心数量标准化,范围为 0 到 100%。

system.memory.total

类型: long

格式: 字节

总内存。

system.memory.actual.free

类型: long

格式: 字节

实际内存(以字节为单位)。它是根据操作系统计算的。在 Linux 上,它包括空闲内存加上缓存和缓冲区。在 OSX 上,它是空闲内存和非活动内存的总和。在 Windows 上,此值不包括系统缓存和缓冲区消耗的内存。

system.process.memory.size

类型: long

格式: 字节

进程拥有的总虚拟内存。

Go 运行时指标编辑

Go 代理报告各种 Go 运行时指标。

目前,这些指标没有内置的可视化,因此您需要为它们创建自定义 Kibana 仪表板。

golang.goroutines

类型: long

当前存在的 goroutine 数量。

golang.heap.allocations.mallocs

类型: long

malloc 的数量。

golang.heap.allocations.frees

类型: long

free 的数量。

golang.heap.allocations.objects

类型: long

已分配对象的总数。

golang.heap.allocations.total

类型: long

格式: 字节

分配的字节数(即使已释放)(与 runtime.MemStats 中的 Alloc 相同)。

golang.heap.allocations.allocated

类型: long

格式: 字节

已分配但尚未释放的字节数(与 runtime.MemStats 中的 Alloc 相同)。

golang.heap.allocations.idle

类型: long

格式: 字节

空闲跨度中的字节数。

golang.heap.allocations.active

类型: long

格式: 字节

非空闲跨度中的字节数。

golang.heap.system.total

类型: long

格式: 字节

从系统获得的总字节数(runtime.MemStats 中 XxxSys 的总和)。

golang.heap.system.obtained

类型: long

格式: 字节

通过 runtime.MemStats 中的 HeapSys 获得的字节数,从系统获得的字节数。heap_sys = heap_idle + heap_inuse。

golang.heap.system.stack

类型: long

格式: 字节

从操作系统获得的堆栈内存字节数。

golang.heap.system.released

类型: long

格式: 字节

释放到操作系统的字节数。

golang.heap.gc.total_pause.ns

类型: long

总垃圾回收持续时间(以纳秒为单位)。

golang.heap.gc.total_count

类型: long

垃圾回收的总数。

golang.heap.gc.next_gc_limit

类型: long

格式: 字节

下一个垃圾回收周期的目标堆大小。

golang.heap.gc.cpu_fraction

类型: float

垃圾回收使用的 CPU 时间的比例。

应用程序指标编辑

transaction.duration

类型: 简单计时器

此计时器跟踪事务的持续时间,并允许创建显示加权平均值的图表。

字段

  • sum.us: 自上次报告以来所有事务持续时间的总和(以微秒为单位)(增量)
  • count: 自上次报告以来所有事务的计数(增量)

您可以按以下维度进行过滤和分组

  • transaction.name: 事务的名称
  • transaction.type: 事务的类型,例如 request
transaction.breakdown.count

类型: long

格式: 计数(增量)

已为其创建细分指标 (span.self_time) 的事务数量。由于 Go 代理跟踪已采样和未采样事务的细分,因此此指标等效于 transaction.duration.count

您可以按以下维度进行过滤和分组

  • transaction.name: 事务的名称
  • transaction.type: 事务的类型,例如 request
span.self_time

类型: 简单计时器

此计时器跟踪跨度自时间,是事务细分可视化的基础。

字段

  • sum.us: 自上次报告以来所有跨度自时间的总和(以微秒为单位)(增量)
  • count: 自上次报告以来所有跨度自时间的计数(增量)

您可以按以下维度进行过滤和分组

  • transaction.name: 事务的名称
  • transaction.type: 事务的类型,例如 request
  • span.type: 跨度的类型,例如 apptemplatedb
  • span.subtype: 跨度的子类型,例如 mysql(可选)