Skip to content
Development
Skill

/doca-telemetry

Use this skill to read DOCA hardware-counter events from a `doca_dev` through the per-domain Telemetry reader libraries: `doca_telemetry_pcc`, `_dpa`, `_diag`, `_adp_retx`, `_phy`, and `_pci`. It covers capability checks, context creation, startup, and per-domain reads or

From plugin
nvidia-skills
2.8k200 skills3 agents
Install
$ npx -y skills add NVIDIA/skills --skill doca-telemetry --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/doca-telemetry

Context preview

The summary Claude sees to decide when to auto-load this skill.

Use this skill to read DOCA hardware-counter events from a `doca_dev` through the per-domain Telemetry reader libraries: `doca_telemetry_pcc`, `_dpa`, `_diag`, `_adp_retx`, `_phy`, and `_pci`. It covers capability checks, context creation, startup, and per-domain reads or

SKILL.md

doca-telemetry.SKILL.md
license: Apache-2.0
name: doca-telemetry
description: >
  Use this skill to read DOCA hardware-counter events from a
  `doca_dev` through the per-domain Telemetry reader libraries:
  `doca_telemetry_pcc`, `_dpa`, `_diag`, `_adp_retx`, `_phy`,
  and `_pci`. It covers capability checks, context creation,
  startup, and per-domain reads or samples. Trigger for implicit
  requests such as "read PCC counters from my BlueField app",
  "sample DPA counter exports", or "expose PHY, PCI, or DIAG
  counters from this doca_dev". This is the counter-reader
  surface, not a NetFlow, IPFIX, or local-socket collector.
  Route publishing and export to `doca-telemetry-exporter`;
  route deployed DOCA Telemetry Service (DTS), collectors, and
  plain stdout logging elsewhere.
metadata:
  kind: library
compatibility: >
  Requires DOCA SDK installed at /opt/mellanox/doca on Linux (Ubuntu
  22.04/24.04 or RHEL/SLES) with a BlueField DPU or ConnectX NIC
  attached. Reads the user's local install via `pkg-config
  doca-telemetry` and inspects
  /opt/mellanox/doca/{lib,include,samples,applications}.

DOCA Telemetry

**Where to start:** This skill assumes DOCA is already installed and the user is doing **hands-on hardware-counter-reader work** — opening a per-domain `doca_telemetry_<domain>` context against a `doca_dev` and reading the latest hardware-counter snapshot for that domain. The library is the **counter-READER** half of DOCA telemetry; it is NOT a NetFlow / IPFIX collector and NOT a generic schema-event consumer (the bundle previously framed it that way and that framing was wrong — there is no NetFlow / IPFIX / local-socket transport surface in the public header). Open [`TASKS.md`](TASKS.md) if the user wants to *do* something (configure / build / modify / run / test / debug); open [`CAPABILITIES.md`](CAPABILITIES.md) when the question is *which hardware-counter domains can this device read* on this install (PCC, DPA, DIAG, ADP_RETX, PHY, PCI). If the user has not installed DOCA yet, route to [`doca-setup`](../../doca-setup/SKILL.md) first. If the user is confused about whether they want this library (HW-counter reader on a `doca_dev`) or [`doca-telemetry-exporter`](../doca-telemetry-exporter/SKILL.md) (the publisher / export side, which is a separate library and publishes structured telemetry / labeled metrics / OTLP logs), read the reader-vs-exporter role split in [`CAPABILITIES.md ## Capabilities and modes`](CAPABILITIES.md#capabilities-and-modes) BEFORE configuring anything; mixing the two is the load-bearing first-app failure for this skill. If the user is asking about **DOCA Telemetry Service (DTS) as deployed**, route to [`doca-public-knowledge-map`](../../doca-public-knowledge-map/SKILL.md) non-goals — DTS is out of scope for this bundle.

Audience

This skill serves **external developers building applications that READ DOCA hardware counters from a `doca_dev` through one or more of the six per-domain DOCA Telemetry reader libraries** (`doca_telemetry_pcc` / `_dpa` / `_diag` / `_adp_retx` / `_phy` / `_pci`) — i.e., users whose application code calls `doca_telemetry_<domain>_*` (directly in C/C++, or through FFI / bindings from another language) to open a per-domain context on a `doca_dev`, configure the per-domain sample window, and read the hardware-counter snapshot for that domain. It is *not* for NVIDIA developers contributing to DOCA Telemetry itself, and it is *not* for users writing the **publishing / export** side — that is [`doca-telemetry-exporter`](../doca-telemetry-exporter/SKILL.md), a separate library and a separate skill.

**Language scope.** DOCA Telemetry's per-domain reader libraries ship as a C surface with `pkg-config` module name `doca-telemetry`. The shipped samples are written in C. C and C++ readers are the canonical case; the worked examples in `TASKS.md` assume that path. Other-language readers (Rust, Go, Python, …) consume the same `*.so` through FFI or language-specific bindings; the skill's contribution in that case is to keep the reader-vs-exporter distinction, the per- domain cap-query-first discipline, the per-domain DOCA Core lifecycle on the `doca_dev`, the sample-window discipline, and the error-taxonomy guidance language-neutral, and to route the agent to the public per-domain C ABI as the authoritative surface that any wrapper will eventually call.

When to load this skill

Load this skill when the user is doing hands-on DOCA Telemetry **hardware-counter-reader** work, in any language. Concretely:

  • Picking the right per-domain header for the counters the user

wants (`doca_telemetry_pcc.h` for Programmable Congestion Control counters, `_dpa.h` for DPA counters, `_diag.h` for generic device diagnostic counters, `_adp_retx.h` for ADP retransmit counters, `_phy.h` for physical-layer counters, `_pci.h` for PCI / PCIe counters) and confirming the device supports it via the per-domain `_cap_is_supported(devinfo)` query — **except `_pci`, which has no single `_cap_is_supported` and instead exposes per-feature caps like `doca_telemetry_pci_cap_management_info_is_supported` / `_cap_perf_counters_1_is_supported`.**

  • Opening a per-domain `doca_telemetry_<domain>` context on a

`doca_dev`, walking the per-domain lifecycle (`doca_telemetry_<domain>_create(dev)` → per-domain setters → `doca_telemetry_<domain>_start`), configuring the per-domain sample window, and reading the hardware-counter snapshot for that domain. Note this is a per-domain `_create`/`_start` surface, not the generic `doca_ctx_*` progress-engine lifecycle.

  • Reading the device + library capability surface before assuming

a counter family is available: use `doca_telemetry_<domain>_cap_is_supported` only for `pcc`, `dpa`, `diag`, `adp_retx`, and `phy`; use the matching per-feature `doca_telemetry_pci_cap_*_is_supported` query for PCI.

  • Handling per-domain `DOCA_ERROR_*` returns from a counter

read (lifecycle vs. device-doesn't-support-this-doma

Read more
Ships withnvidia-skills

Official, NVIDIA-verified Agent Skills for Claude Code, Codex, and other coding agents.

Get the whole plugin