计算池指标¶
计算池 指标提供的数据点包括:
有关计算池中节点的数据点(例如,节点上可供容器使用的空闲内存)。
有关在计算池节点上运行的服务和作业的数据点(例如,特定容器使用的内存)。
每个节点都提供特定于节点的指标,包括节点上运行的服务的指标。请注意,没有跨节点的指标汇总。每个节点上的指标发布器监听 TCP 端口 9001。要访问指标,请使用节点的 IP 地址直接连接节点。要找出节点的 IP 地址,请从 DNS 检索 monitor.<compute_pool_name>.snowflakecomputing.internal
主机名的 SRV 记录(或 A 记录)。
账户中的服务和作业包可以查询 IPs,以检索计算池中节点的指标。角色需要具有计算池的 OWNERSHIP 或 MONITOR 权限,才能访问指标。
服务和作业可使用 HTTP GET 请求,通过路径 /metrics
连接到每个节点的指标发布器。响应中的正文使用 ` Prometheus 格式 <https://prometheus.io/docs/instrumenting/exposition_formats/#text-based-format (https://prometheus.io/docs/instrumenting/exposition_formats/#text-based-format)>`_ 提供指标,如以下示例指标所示:
示例:
# HELP spcs_node_allocatable Defines SPCS compute pool resources available on the node
# TYPE spcs_node_allocatable gauge
spcs_node_allocatable{resource="cpu",snow_containers_compute_pool_name="MY_POOL",snow_instance_family="CPU_X64_S",snow_node_id="775776fd"} 1
spcs_node_allocatable{resource="memory",snow_containers_compute_pool_name="MY_POOL",snow_instance_family="CPU_X64_S",snow_node_id="775776fd"} 7.21397383168e+09
请注意:
每个指标都以
# HELP
和# TYPE
开头,以提供简短描述和指标类型。在本示例中,spcs_node_allocatable
指标的类型为 gauge。然后是指标的名称、描述特定资源(数据点)的标签列表及其值。在本示例中,指标(名为
spcs_node_allocatable
)提供了 CPU 和内存信息,表明节点有 1 个 CPU 核心可供分配,并有 7.2 GB 可用内存。例如,第一个 CPU 指标包括这些标签。resource="cpu", snow_containers_compute_pool_name="MY_POOL", snow_instance_family="CPU_X64_S", snow_node_id="775776fd"
您可以选择任何方式来处理这些指标;例如,您可以将指标存储在数据库中,然后使用 UI 来显示信息。您可以创建一个 Grafana 仪表板。有关示例,请参阅 ` 计算池指标教程 <https://github.com/Snowflake-Labs/spcs-templates/tree/main/user-metrics (https://github.com/Snowflake-Labs/spcs-templates/tree/main/user-metrics)>`_。
有关可用计算池指标的列表,请参阅 可用指标列表。
一般准则¶
在使用计算池指标时,应遵循以下准则:
要访问计算池的指标,计算池必须有一个与 DNS 兼容的名称。
只有具有计算池 OWNERSHIP 或 MONITOR 权限的角色才能访问计算池公开的端点。
可用指标列表¶
每个计算池都会发布一组关于计算池中的节点和在该计算池中运行的容器的指标。您可以创建一个服务来监控这些指标。有关示例,请参阅 ` 计算池指标教程 <https://github.com/Snowflake-Labs/spcs-templates/tree/main/user-metrics (https://github.com/Snowflake-Labs/spcs-templates/tree/main/user-metrics)>`_。
指标值代表查询指标时的系统状态。
指标名称 |
类型 |
描述 |
标签 |
---|---|---|---|
spcs_container_cpu_usage |
Counter |
该指标表示特定容器自开始运行以来消耗的累计(总)CPU 时间(以秒为单位)。它给出了容器在其生命周期内消耗的总 CPU 时间。 |
snow_account_name snow_database_name snow_schema_name snow_containers_compute_pool_name snow_executable_name snow_containers_container_name snow_containers_instance_name snow_node_id |
spcs_container_memory_usage |
Gauge |
容器使用的内存量(以字节为单位)。 |
snow_account_name snow_database_name snow_schema_name snow_containers_compute_pool_name snow_executable_name snow_containers_container_name snow_containers_instance_name snow_node_id |
spcs_container_restarts |
Counter |
Snowflake 重新启动容器的次数。 |
snow_account_name snow_database_name snow_schema_name snow_containers_compute_pool_name snow_executable_name snow_containers_container_name snow_containers_instance_name snow_node_id |
spcs_container_resource_requests |
Gauge |
容器的请求资源(根据服务规范)。 |
snow_account_name snow_database_name snow_schema_name snow_containers_compute_pool_name snow_executable_name snow_containers_container_name snow_containers_instance_name snow_node_id |
spcs_container_resource_limits |
Gauge |
容器的资源限制(根据服务规范)。 |
snow_account_name snow_database_name snow_schema_name snow_containers_compute_pool_name snow_executable_name snow_containers_container_name snow_containers_instance_name snow_node_id |
spcs_container_gpu_utilization |
Gauge |
GPU 计算利用率,1.0 表示 100% 利用率。 |
snow_account_name snow_database_name snow_schema_name snow_containers_compute_pool_name snow_executable_name snow_containers_container_name snow_containers_instance_name snow_node_id gpu |
spcs_container_gpu_memory_utilization |
Gauge |
容器在给定时间内使用的 GPU 内存量(以字节为单位)。 |
snow_account_name snow_database_name snow_schema_name snow_containers_compute_pool_name snow_executable_name snow_containers_container_name snow_containers_instance_name snow_node_id gpu |
spcs_container_status_unschedulable |
Gauge |
报告时,此指标值将始终为 1,表示 Snowflake 无法在计算池上调度容器。 |
snow_account_name snow_database_name snow_schema_name snow_containers_compute_pool_name snow_executable_name snow_containers_container_name snow_containers_instance_name snow_node_id |
spcs_container_state_started |
Gauge |
报告时,此指标值始终为 1,表示 Snowflake 已启动容器,但尚未运行。 |
snow_account_name snow_database_name snow_schema_name snow_containers_compute_pool_name snow_executable_name snow_containers_container_name snow_containers_instance_name snow_node_id |
spcs_container_state_running |
Gauge |
报告时,此指标值始终为 1,表示容器正在运行并可通过定义的端点使用。 |
snow_account_name snow_database_name snow_schema_name snow_containers_compute_pool_name snow_executable_name snow_containers_container_name snow_containers_instance_name snow_node_id |
spcs_container_state_pending |
Gauge |
报告时,此指标值始终为 1,表示 Snowflake 正在调度容器。 |
snow_account_name snow_database_name snow_schema_name snow_containers_compute_pool_name snow_executable_name snow_containers_container_name snow_containers_instance_name snow_node_id |
spcs_container_state_pending_reason |
Gauge |
报告时,此指标值始终为 1,并且 |
snow_account_name snow_database_name snow_schema_name snow_containers_compute_pool_name snow_executable_name snow_containers_container_name snow_containers_instance_name snow_node_id reason |
spcs_container_state_finished |
Gauge |
报告时,此指标值始终为 1,表示容器执行完毕。 |
snow_account_name snow_database_name snow_schema_name snow_containers_compute_pool_name snow_executable_name snow_containers_container_name snow_containers_instance_name snow_node_id |
spcs_container_state_last_finished_reason |
Gauge |
报告时,此指标值始终为 1,并且 |
snow_account_name snow_database_name snow_schema_name snow_containers_compute_pool_name snow_executable_name snow_containers_container_name snow_containers_instance_name snow_node_id reason |
spcs_node_allocatable |
Gauge |
每个节点的可用资源。 |
snow_instance_family snow_node_id 资源 |
标签说明如下:
snow_account_name
:启动服务的账户名。snow_database_name
:拥有服务的数据库的名称snow_schema_name
:拥有服务的架构的名称snow_containers_compute_pool_name
:调度服务的计算池的名称snow_executable_name
:服务名称。snow_containers_container_name
:容器名称snow_containers_instance_name
:容器实例的 ID。snow_node_id
:计算池中节点的 ID。gpu
:分配给容器的 GPU 编号,从 0 开始。reason
:说明容器状态。该标签仅出现在以reason
后缀结尾的指标中。spcs.container.state.pending.reason
FailedToPullImage
:容器无法提取镜像。FailingToStartContainer
:无法启动容器。它被调度到节点,但随后又失败了。ServiceRunError
:运行时发生错误,导致容器被驱逐。ServiceSpecError
:由于服务规范中的错误,无法调度容器。ServiceCreateError
:容器初始化时出错。Initializing
:容器正在初始化。Creating
:正在创建容器,例如,拉取镜像。
snow_instance_family
:节点所属的计算池类型(请参阅 CREATE COMPUTE POOL)resource
:节点资源(cpu、内存、gpu、gpu_memory)。unit
:指标度量粒度(例如,字节、秒)。
示例¶
提供以下教程。说明解释了如何运行示例代码,以使用指标并提供可视化效果。
` 计算池指标教程 <https://github.com/Snowflake-Labs/spcs-templates/tree/main/user-metrics (https://github.com/Snowflake-Labs/spcs-templates/tree/main/user-metrics)>`_