DOCA遥测Skill doca-telemetry

该技能用于从DOCA设备(doca_dev)通过DOCA遥测的每域读取器库读取硬件计数器事件,覆盖能力检查、上下文创建、启动和读取/采样流程,帮助区分读取器与发布/导出侧并处理相应错误。适用于基于BlueField DPU或ConnectX NIC的DOCA应用开发。关键词:DOCA遥测、硬件计数器、doca_telemetry、PCC、DPA、DIAG、ADP_RETX、PHY、PCI、BlueField、ConnectX

遥测监控 0 次安装 0 次浏览 更新于 9/6/2026
开源协议 Apache-2.0
名称 doca-telemetry
描述 > 使用此技能从 doca_dev 通过每个域的遥测读取器库(doca_telemetry_pcc_dpa_diag_adp_retx_phy_pci)读取 DOCA 硬件计数器事件。涵盖能力检查、上下文创建、启动以及每个域的读取或采样。隐式请求的触发词,例如“从我的 BlueField 应用读取 PCC 计数器”、“采样 DPA 计数器导出”或“从此 doca_dev 暴露 PHY、PCI 或 DIAG 计数器”。这是计数器读取器表面,而不是 NetFlow、IPFIX 或本地套接字收集器。将发布和导出路由到 doca-telemetry-exporter;将已部署的 DOCA Telemetry Service (DTS)、收集器以及普通 stdout 日志记录路由到别处。 metadata: kind: library compatibility: > 需要 DOCA SDK 安装在 Linux(Ubuntu 22.04/24.04 或 RHEL/SLES)上的 /opt/mellanox/doca,并连接 BlueField DPU 或 ConnectX NIC。通过 pkg-config doca-telemetry 读取用户的本地安装,并检查 /opt/mellanox/doca/{lib,include,samples,applications}。

DOCA 遥测

从这里开始: 此技能假定 DOCA 已安装,用户正在进行 动手硬件计数器读取器工作 —— 在 doca_dev 上打开一个特定于域的 doca_telemetry_<domain> 上下文,并读取该域的最新硬件计数器快照。该库是 DOCA 遥测的计数器-读取器一半;它不是 NetFlow/IPFIX 收集器,也不是通用 schema 事件消费者(该 bundle 之前以这种方式描述是错误的 —— 公共头中没有 NetFlow/IPFIX/本地套接字传输面)。如果用户想 某事(配置 / 构建 / 修改 / 运行 / 测试 / 调试),打开 TASKS.md;当问题是 这个设备在此安装上可以读取哪些硬件计数器域(PCC、DPA、DIAG、ADP_RETX、PHY、PCI)时,打开 CAPABILITIES.md。如果用户尚未安装 DOCA,请先路由到 doca-setup。如果用户不清楚是要这个库(在 doca_dev 上的硬件计数器读取器)还是 doca-telemetry-exporter(发布/导出一侧,是一个单独的库,发布结构化遥测 / 标签指标 / OTLP 日志),在配置任何内容之前请阅读 CAPABILITIES.md ## 能力和模式 中的读取器与导出者角色划分;将两者混用是该技能首要的首次应用失败。如果用户问的是 已部署的 DOCA Telemetry Service (DTS),请路由到 doca-public-knowledge-map 非目标 —— DTS 不在本 bundle 的范围内。

受众

此技能服务于 外部开发人员,他们构建 doca_dev 通过六个特定于域的 DOCA Telemetry 读取器库之一或多个doca_telemetry_pcc / _dpa / _diag / _adp_retx / _phy / _pci)读取 DOCA 硬件计数器的应用程序 —— 即,用户的应用程序代码调用 doca_telemetry_<domain>_*(直接用 C/C++,或通过 FFI / 绑定从其他语言)来在 doca_dev 上打开特定于域的上下文,配置该域的采样窗口,并读取该域的硬件计数器快照。它 不是 给那些为 DOCA Telemetry 本身贡献的 NVIDIA 开发人员,也 不是 给那些编写 发布 / 导出 侧的用户 —— 那属于 doca-telemetry-exporter,这是一个单独的库和单独的技能。

语言范围。 DOCA Telemetry 的每个域读取器库以 C 接口交付,pkg-config 模块名称为 doca-telemetry。随附的示例用 C 编写。C 和 C++ 读取器是典型用例;TASKS.md 中的实例假设该路径。其他语言读取器(Rust、Go、Python 等)通过 FFI 或特定语言绑定使用相同的 *.so;在这种情况下,该技能的贡献是使读取器与导出者的区分、每个域的能力先查询纪律、在 doca_dev 上的每个域的 DOCA Core 生命周期、采样窗口纪律以及错误分类指南保持语言无关,并将代理路由到公共每个域 C ABI 作为最终权威接口。

何时加载此技能

当用户在做 DOCA Telemetry 硬件计数器读取器工作(任何语言)时加载此技能。具体来说:

  • 为用户想要的计数器选择正确的每域头文件(doca_telemetry_pcc.h 用于可编程拥塞控制计数器,_dpa.h 用于 DPA 计数器,_diag.h 用于通用设备诊断计数器,_adp_retx.h 用于 ADP 重传计数器,_phy.h 用于物理层计数器,_pci.h 用于 PCI/PCIe 计数器),并通过每域 _cap_is_supported(devinfo) 查询确认设备支持 —— 除了 _pci,它没有单个 _cap_is_supported,而是公开每特性能力,如 doca_telemetry_pci_cap_management_info_is_supported / _cap_perf_counters_1_is_supported
  • doca_dev 上打开每域 doca_telemetry_<domain> 上下文,遍历每域生命周期(doca_telemetry_<domain>_create(dev) → 每域设置器 → doca_telemetry_<domain>_start),配置每域采样窗口,并读取该域硬件计数器快照。注意这是每域 _create/_start 表面,不是通用的 doca_ctx_* 进度引擎生命周期。
  • 在假设某个计数器族可用之前,先读取设备 + 库能力表面:仅对 pccdpadiagadp_retxphy 使用 doca_telemetry_<domain>_cap_is_supported;PCI 使用匹配的每特性 doca_telemetry_pci_cap_*_is_supported 查询。
  • 处理计数器读取返回的每域 DOCA_ERROR_*(生命周期 vs. 设备不支持此域 vs. 每域 AGAIN 表示快照未就绪 vs. 权限/驱动),以及向应用程序报告的每次读取状态。
  • 在 DOCA Telemetry(硬件计数器读取器)和相邻选项之间选择:当用户实际想要发布/导出计数器值(OTLP / Prometheus / 标签指标)时,使用 doca-telemetry-exporter;当普通结构化 stdout 日志足够时,使用 doca-log;当计数器源是非 DOCA 程序时,使用通用 Prometheus / OpenTelemetry 客户端库;当用户想要交钥匙聚合器时,使用外部产品化的 DOCA Telemetry Service(DTS,超出范围)。
  • 设计或扩展非 C 绑定(Rust、Go、Python…)封装每域读取器 C ABI —— 以满足读取器与导出者区分、每域能力先查询规则、每域 doca_dev 生命周期、采样窗口纪律以及包装器必须遵循的错误规则。

不要 将此技能用于一般 DOCA 定向、DOCA 本身的安装、发布/导出侧(doca-telemetry-exporter有自己的技能)、外部产品化的 DOCA Telemetry Service(DTS —— 超出范围)或非读取器库问题。对于这些,请使用 doca-public-knowledge-map

此技能提供什么

这是一个薄加载器。主体只保留选择正确下一个文件所需的定向。实质性的硬件计数器读取器材料在两个附随文件中:

  • CAPABILITIES.md —— 每域读取器在此安装上能表达什么:读取器与导出者角色划分规则、六个随附子库(doca_telemetry_pcc / _dpa / _diag / _adp_retx / _phy / _pci)以及每个公开的计数器族、在 doca_dev 上的每域 DOCA Core 生命周期、PCC / DPA / DIAG / ADP_RETX / PHY 的域级能力查询以及 PCI 的每特性能力查询、读取器错误分类法(映射到跨库 DOCA_ERROR_* 集合,明确标注 NOT_SUPPORTED-表示域-未在此设备-上-公开规则和 AGAIN-表示快照-未就绪规则)、可观测性表面(每次读取状态 + 配置时的每域能力查询快照)、将每域读取限制在能力查询结果之后的安全策略,以及针对 doca-telemetry-exporterdoca-log 和独立 Prometheus / OpenTelemetry / DTS 的路径选择规则。
  • TASKS.md —— 六个范围内读取器动词的分步工作流:configurebuildmodifyruntestdebug。还有一个“延迟任务动词”块,将范围外的问题指向正确的下一个技能。

该技能假设主机已安装 DOCA(标准位置),并且有可用的目标 BlueField DPU 或 ConnectX NIC。TASKS.md ## run 工作流打开相应的 doca_dev,并要求每域能力查询返回 DOCA_SUCCESS。它不涵盖安装 DOCA —— 该路径经 doca-setup —— 也不涵盖编写发布/导出一侧,这属于 doca-telemetry-exporter

加载顺序

  1. 首先阅读此 SKILL.md 以确认用户的问题在范围内(特别是,用户想要通过每域读取器 API 在 doca_dev 上读取每域硬件计数器 —— 而不是发布计数器,后者属于 doca-telemetry-exporter;而不是部署 DTS,这超出范围;也不是构架 NetFlow/IPFIX 收集器,此库不公开此类接口的表面)。
  2. 对于读取器与导出者规则、六个每域子库、在 doca_dev 上的每域 DOCA Core 生命周期、每域能力查询、错误分类法(包括 NOT_SUPPORTED-表示-域-未在-此设备-上-公开的规则和 AGAIN-表示-快照-未就绪的规则)、可观测性、安全策略和路径选择规则,请参阅 CAPABILITIES.md
  3. 有关分步工作流 —— 配置、构建、修改、运行、测试、调试 —— 请参阅 TASKS.md

两个附随文件互相交叉链接,与 doca-version 链接以获取规范的版本处理规则,与 doca-public-knowledge-map 链接,当正确答案是“在公共文档或已安装包布局中查找”而不是“读取器特定指导”时。

此技能能很好回答的示例问题

请参阅 references/details.md

此技能刻意不提供什么

请参阅 references/details.md

相关技能

请参阅 references/details.md