系统语义约定:通用用例

本文档收集了我们希望通过系统语义约定涵盖的用例。此处概述的用例将指导工作组关于哪些仪器被认为*必需*的决策。本文档中的用例将以通用方式陈述,不参考撰写时 semconv 中任何可能存在的现有仪器,以便当我们深入研究特定仪器时,能够基于我们对预期用例的整体视角来理解其重要性。

图例

一般信息 = 应通过实体、指标或指标属性可发现的信息。

仪表板 = 应通过指标获取信息以创建全面仪表板的信息。

警报 = 一些应可与可用信息一起创建的常见警报示例。

主机

用户应该能够监控主机的运行状况,包括监控资源消耗、由于主机或主机群核心组件(网络堆栈、内存、CPU 等)的资源耗尽或故障而导致的意外错误。

一般信息

  • 机器名称
  • ID(与其上下文相关,可能是云提供商 ID 或基本机器 ID)
  • 操作系统信息(平台、版本、架构等)
  • CPU 信息
  • 内存容量

仪表板

  • 内存利用率
  • CPU 利用率
  • 磁盘利用率
  • 磁盘吞吐量
  • 网络流量

警报

  • VM 意外关机
  • 网络活动意外激增
  • 内存/CPU/磁盘利用率超过阈值百分比

备注

这些警报尤其应该能够统一应用于异构主机群。我们将重视跨平台仪器的性质,以允许在主机群中进行有效的警报,无论其内部可能混合的操作系统平台如何。

术语 host 在其他上下文中可能意味着不同的东西

  • 网络上下文中的术语 host,一个中心机器,许多其他机器连接到它,或者虚拟化上下文中的术语 host
  • 虚拟化上下文中的术语 host,托管虚拟机或容器等虚拟客户机的某物

在此上下文中,主机通常被认为是某种个体机器,无论是物理的还是虚拟的。这可能会更加令人困惑,因为唯一的机器 host 同时也可以是网络 host 或虚拟化 host。这是我们必须接受的复杂性,因为 host 命名空间已深植于现有的 OpenTelemetry 仪器和通用术语中。尽我们最大的努力,网络和虚拟化 host 仪器将通过位于其他清楚表明所引用 host 术语的版本名称空间内而保持独立,而根 host 命名空间将指代个体机器。

进程

用户应该能够使用操作系统提供的数据来监控任意进程的运行状况。用户可能需要此功能的理由

  1. 他们想监控的进程没有启用进程内特定于运行时的仪器,或者根本无法进行仪器,例如防病毒软件或其他后台进程。
  2. 他们正在监控大量进程,并希望为所有进程提供一套统一的仪器。
  3. 个人偏好/历史原因;他们可能已经使用 OS 信号来监控内容,并且将内容迁移到基本进程仪器比迁移到其他特定 semconv 更容易。

一般信息

  • 进程名称
  • PID
  • 用户/所有者

仪表板

  • 物理内存使用量和/或利用率
  • 虚拟内存使用量
  • CPU 使用量和/或利用率
  • 磁盘吞吐量
  • 网络吞吐量

告警

  • 进程意外停止
  • 内存/CPU 使用量/利用率超过阈值
  • 内存随时间推移而持续上涨(内存泄漏检测)

备注

除了警报和仪表板之外,我们还将把进程的基本基准测试视为一个通用用例。可以以跨平台方式提供的基本跨平台统计信息也可用于此目的,并且我们在就进程仪器做出决定时会考虑这一点。