Go 运行时指标的语义约定

状态: 开发中

本文档描述了 OpenTelemetry 中 Go 运行时指标的语义约定。这些指标是从 Go 的 runtime/metrics 包中获取的。

Go 内存

描述: 在命名空间 go.memory.* 下捕获的 Go 运行时指标。

指标: go.memory.used

此指标是推荐的。

名称Instrument TypeUnit (UCUM)描述Stability实体关联
go.memory.usedUpDownCounter每个调用的最大内存使用量的分布。Go 运行时使用的内存。[1]Development

[1]:(/memory/classes/total:bytes - /memory/classes/heap/released:bytes) 计算得出。

Attributes

Stability需求级别Value Type描述Example Values
go.memory.typeDevelopment推荐字符串内存的类型。otherstack

go.memory.type 具有以下已知值列表。如果其中一个适用,则必须使用相应的值;否则,可以使用自定义值。

描述Stability
otherGo 运行时使用的内存,不包括此枚举中描述的其他类别的内存使用。Development
stack从堆中分配的、为堆栈空间保留的内存,无论是否当前正在使用。[1]Development

[1]:/memory/classes/heap/stacks:bytes 计算得出。

指标: go.memory.limit

此指标是推荐的。

名称Instrument TypeUnit (UCUM)描述Stability实体关联
go.memory.limitUpDownCounter每个调用的最大内存使用量的分布。用户配置的 Go 运行时内存限制(如果存在)。[1]Development

[1]:/gc/gomemlimit:bytes 计算得出。如果从 Go 运行时获得的限制为 math.MaxInt64,则排除此指标。

指标: go.memory.allocated

此指标是推荐的。

名称Instrument TypeUnit (UCUM)描述Stability实体关联
go.memory.allocatedCounter每个调用的最大内存使用量的分布。应用程序分配到堆中的内存。[1]Development

[1]:/gc/heap/allocs:bytes 计算得出。

指标: go.memory.allocations

此指标是推荐的。

名称Instrument TypeUnit (UCUM)描述Stability实体关联
go.memory.allocationsCounter{allocation}应用程序分配到堆中的内存分配次数。[1]Development

[1]:/gc/heap/allocs:objects 计算得出。

Go 垃圾回收

描述: 在命名空间 go.memory.gc.* 下捕获的 Go 指标。

指标: go.memory.gc.goal

此指标是推荐的。

名称Instrument TypeUnit (UCUM)描述Stability实体关联
go.memory.gc.goalUpDownCounter每个调用的最大内存使用量的分布。GC 周期结束时的堆大小目标。[1]Development

[1]:/gc/heap/goal:bytes 计算得出。

Go Goroutines

描述: 在命名空间 go.goroutine.* 下捕获的 Go 指标。

指标: go.goroutine.count

此指标是推荐的。

名称Instrument TypeUnit (UCUM)描述Stability实体关联
go.goroutine.countUpDownCounter{goroutine}活动 Goroutine 的数量。[1]Development

[1]:/sched/goroutines:goroutines 计算得出。

Go 处理器

描述: 在命名空间 go.processor.* 下捕获的 Go 指标。

指标: go.processor.limit

此指标是推荐的。

名称Instrument TypeUnit (UCUM)描述Stability实体关联
go.processor.limitUpDownCounter{thread}能够同时执行用户级 Go 代码的 OS 线程数。[1]Development

[1]:/sched/gomaxprocs:threads 计算得出。

Go 调度器

描述: 在命名空间 go.schedule.* 下捕获的 Go 指标。

指标: go.schedule.duration

此指标是推荐的。

名称Instrument TypeUnit (UCUM)描述Stability实体关联
go.schedule.durationHistogramsGoroutines 在实际运行之前处于可运行状态花费在调度器上的时间。[1]Development

[1]:/sched/latencies:seconds 计算得出。存储桶边界由运行时提供,并可能发生变化。

Go 运行时配置

描述: 在命名空间 go.config.* 下捕获的 Go 指标。

指标: go.config.gogc

此指标是推荐的。

名称Instrument TypeUnit (UCUM)描述Stability实体关联
go.config.gogcUpDownCounter%用户配置的堆大小目标百分比,否则为 100。[1]Development

[1]: 值范围为 [0.0, 100.0]。从 /gc/gogc:percent 计算得出。