DOCA Telemetry Utils
Where to start: This is a tool skill for invoking
doca_telemetry_utils — the documented host-side CLI that
supports a DOCA Telemetry exporter / collector pipeline by
discovering the counter schema, translating counter names ↔
Data IDs, and probing per-device counter support. Open
TASKS.md and start at
## install for the host-side
prerequisites and ## run for the
three documented invocation classes
(enumerate / name→ID / ID→name). Open
CAPABILITIES.md when the question is
what does this tool actually discover about the telemetry
schema, how does it pair with the developer-side
doca-telemetry and
exporter libraries, how do I confirm a device supports a
counter before committing an exporter config to it, or
why does my exporter pipeline silently drop a metric.
This skill is the operator-side support tool for a
DOCA Telemetry deployment. It is NOT the developer-side
collector library (that is
doca-telemetry),
NOT the developer-side publisher library (that is
doca-telemetry-exporter — see
doca-telemetry ## Related skills),
and NOT a DOCA Telemetry Service (DTS) deployment guide
(route via
doca-public-knowledge-map).
Three separate surfaces; conflating them is the most
common telemetry first-touch error.
Example questions this skill answers well
The CLASSES of doca_telemetry_utils questions this skill
is built to answer, each with one worked example. The
class is the load-bearing piece; the worked example is one
instance.
- "My exporter says it's emitting
port_rx_bytes but
nothing shows up downstream — what did I get wrong?" —
worked example: "my exporter config has a counter name
string and my collector sees no events with that
name". Answered by the name ↔ Data ID translation
step in
CAPABILITIES.md ## Capabilities and modes
- the per-device-support probe in
TASKS.md ## test: the exporter
ships a Data ID, not a name; a name in the config that
resolves to a Data ID the device does not support is
silently dropped.
- "Which DOCA diagnostic counters does this BlueField
actually expose?" — worked example: "enumerate the
full counter schema for my BlueField-3 before I write
the exporter config". Answered by the schema-discovery
invocation class in
CAPABILITIES.md ## Capabilities and modes
(doca_telemetry_utils get-counters lists every
counter name the diagnostic-data surface knows about;
pair with a per-device probe to confirm support).
- "I have a Data ID in a captured log — what counter
was that?" — worked example: "a downstream consumer
emitted
Data ID: 0x1160000600030201 — translate it
back so I can correlate against the public guide".
Answered by the reverse-resolve invocation class in
CAPABILITIES.md ## Capabilities and modes
- the
ID-encodes-properties rule in
TASKS.md ## use (a Data ID carries
the counter's property dimensions; the reverse-resolve
reports them).
- "What property dimensions does this counter take and
what values are valid?" — worked example: "I know
the counter is
pcie_link_write_stalled_time_* — what
do node / pcie_index / depth mean and what
values does the device accept?". Answered by the
property-dimension table in
CAPABILITIES.md ## Capabilities and modes
- the
<name> invocation without arguments which
prints the documented property options + units +
unit-specific axes.
- "Is this counter supported on this device before I
commit it to the exporter config?" — worked example:
"validate that
port_rx_bytes with node=1 is
exposed on the BlueField at PCIe address X before I
write the exporter config". Answered by the
per-device-support probe (<device PCI> <name> [properties]) in
CAPABILITIES.md ## Capabilities and modes
- the gate-before-commit rule in
TASKS.md ## use.
- "Is
doca_telemetry_utils on my install, and is it
paired with the matching doca-telemetry library
version?" — worked example: "is the diagnostic-
data counter set my exporter targets on this DOCA
version?". Answered by the version-overlay in
CAPABILITIES.md ## Version compatibility,
which redirects to the canonical
doca-version chain
and adds the tool ↔ doca-telemetry library
schema-version match rule.
Audience
This skill serves external operators, developers, and
AI agents standing up or debugging a DOCA Telemetry
exporter / collector pipeline who need to confirm the
counter schema, validate per-device support, or
translate between human-readable counter names and the
binary Data IDs the exporter actually ships.
Concretely:
- A platform operator standing up a new DOCA Telemetry
exporter on a BlueField fleet who needs to confirm
which counters the target devices actually expose
before committing the exporter config.
- A developer of a downstream consumer (a collector
app linking
doca-telemetry,
or a third-party aggregator consuming via DTS) who
has a captured Data ID stream and needs to translate
IDs back to counter names + properties.
- An operator debugging a "nothing is shipping
downstream" / "this metric is silently missing"
report against a deployed exporter — the
schema-discovery + per-device-support probes are the
canonical "is the counter even supposed to work on
this device" first step before suspecting the
collector or the network path.
- An AI agent producing a "validated exporter config
for this BlueField + this DOCA version" answer
honestly — with each counter resolved to its Data ID
and each Data ID confirmed against the per-device
capability probe.
It is not for users debugging the doca_telemetry_utils
binary itself, not a substitute for the live public
DOCA Telemetry guides, and not the right place for
learning how to write an exporter application (that
audience belongs in
doca-telemetry-exporter skill
when present, or via
doca-public-knowledge-map).
The tool is shipped as a CLI binary under
/opt/mellanox/doca/tools/, not a library you link
against. The skill uses the same kind: tool
three-file shape as the rest of the bundle so the
agent's task-verb contract is uniform across libraries,
services, and tools.
Language scope
doca_telemetry_utils is a C host-side CLI that uses
the documented doca_telemetry_diag surface to list
counter types and probe per-device support. Its inputs
are command-line arguments (counter name, property
values, Data ID, optional device PCI address); its
outputs are human-readable Data ID + properties
mappings. The skill keeps workflow guidance language-
neutral; downstream consumers in any language can use
the resolved Data IDs against their own collector code.
When to load this skill
Load this skill when the user is — or the agent needs
to — invoke doca_telemetry_utils on a real host with
DOCA installed, alongside an exporter / collector
pipeline that needs schema discovery, per-device
support validation, or Data ID translation.
Concretely:
- Enumerating the full counter schema before writing
a fresh DOCA Telemetry exporter config (
get-counters).
- Validating that a chosen counter + property set
resolves to a Data ID the target device actually
supports, before committing the config.
- Reverse-resolving a Data ID captured from a
downstream consumer back to a counter name +
properties for correlation against the public guide.
- Debugging a "exporter ships, collector receives
nothing" report (the canonical schema-mismatch /
unsupported-counter failure mode).
- Producing a "validated counter set for this
BlueField + this DOCA version" artifact as part of
a structured exporter-config baseline.
- Migrating an exporter pipeline across DOCA versions
and confirming each previously-supported counter
still resolves cleanly on the new version.
Do not load this skill for general DOCA orientation,
collector / exporter library programming, DTS
deployment, or DOCA install. For those, route to
doca-public-knowledge-map,
doca-telemetry,
or doca-setup.
What this skill provides
This is a thin loader. Substantive material lives
in two companion files:
CAPABILITIES.md — what doca_telemetry_utils
discovers + how it pairs with the developer-side
surfaces: the three documented invocation classes
(enumerate / name→ID / ID→name), the property-
dimension model (counters carry property axes such
as node, pcie_index, depth, plus per-unit
axes), the optional per-device capability probe
(<device PCI> <name> runs the resolved counter
against the device), the operator-side support
role (this is NOT the developer-side library; it
exists to make exporter / collector setups
honest), the version overlay (tool ↔
doca-telemetry library schema version pairing),
the layered error taxonomy (install / parse /
unknown-counter / unknown-data-id / property-out-
of-range / device-not-supported / version /
cross-cutting), the observability surface
(stdout-only), and the safety policy (the tool is
read-only; mistakes appear downstream as silent
metric drops, not crashes).
TASKS.md — step-by-step workflows for the
in-scope task verbs: install (host-side DOCA +
telemetry component prerequisites), configure
(axis decisions: which invocation class, which
device, which counter), build (route to install
— the binary is shipped), modify (refuse — do
not patch the binary; modify the invocation and
the exporter / collector config that consumes the
resolved Data IDs), run (the three documented
invocations), test (round-trip a chosen
counter through name → Data ID → per-device
probe → exporter config → collector receipt),
debug (walk the error taxonomy), use (the
hand-off into the developer-side doca-telemetry
collector / exporter pipeline), plus a Deferred task verbs block.
The skill assumes a host where DOCA is already
installed with the telemetry component, a BlueField
the operator is targeting is visible to DOCA, and the
exporter / collector pipeline that consumes the
resolved Data IDs is either being authored or has
already been authored against the matching
doca-telemetry
library version.
What this skill deliberately does not ship
This skill is agent guidance, not a samples or
scripts bundle. To keep the boundary clean, it
deliberately does not contain — and pull requests
should not add:
- A verbatim counter inventory or Data ID
table. The counter set evolves across DOCA
versions and BlueField generations; an
inventory pinned in this skill would silently rot.
doca_telemetry_utils get-counters on the
installed binary is the authoritative source.
- Pre-baked exporter / collector configs. Configs
are install-, device-, and use-case-specific; a
packaged config in this skill would mislead
operators on a different setup.
- A DTS deployment recipe. DTS is a separate DOCA
service with its own public guide; route via
doca-public-knowledge-map.
This skill resolves the counter names + IDs a
DTS pipeline consumes; it does not configure DTS.
- Wrappers, parsers, or scripts in any language
that consume the tool's output. The output is a
simple text mapping; users who want to script
against it should read the live guide and write
the parser against their installed version.
- A
samples/ or reference/ subtree. This is
a thin loader for a shipped CLI; substantive
material lives on the public page, in --help,
and in doca-telemetry.
Loading order
- Read this
SKILL.md first to confirm the user's
question is in scope (operator-side support
tooling for a telemetry pipeline, not the
developer-side library programming).
- For the three invocation classes, the
property-dimension model, the per-device support
probe, the version overlay, the error taxonomy,
the observability surface, and the safety
policy, see CAPABILITIES.md.
- For the documented invocations and the
discover → resolve → validate → consume
workflow —
install, configure, build,
modify, run, test, debug, use — see
TASKS.md.
Related skills
doca-telemetry
— the developer-side collector library whose
schema this tool helps the operator discover. Pair
them in every exporter-pipeline triage session.
The collector library skill teaches the
collector-vs-exporter rule, the schema-must-match
contract with the publisher, and the consumer-
queue-full back-pressure rule; this tool's role
is to make the schema half of that contract
inspectable from the operator side. Conflating
the library and the tool is the most common
telemetry first-touch error.
doca-public-knowledge-map
— routing to the public DOCA Telemetry guide and
the DOCA Telemetry Service (DTS) page on
docs.nvidia.com, plus the on-disk install
layout for the tool.
doca-version —
canonical DOCA version-handling rules. The
## Version compatibility section in
CAPABILITIES.md is a concise
overlay that redirects here for the body and
adds the tool ↔ doca-telemetry library
schema-version pairing rule.
doca-setup — env
preparation, install verification, and the I
have no install yet path with the public NGC
DOCA container. This skill assumes its
preconditions are satisfied (DOCA installed
with the telemetry component, BlueField visible
to DOCA).
doca-debug — the
cross-cutting debug ladder. Telemetry-utils
feeds the cross-cutting ladder by surfacing the
counter schema + per-device support truth at the
runtime layer; exporter-pipeline regressions
often resolve at the schema layer before
touching the collector / network path.
doca-structured-tools-contract
— the bundle's detect → prefer → fall back →
report contract for structured helper tools. The
command appendix in TASKS.md
honors this contract.
doca-programming-guide
— general DOCA programming patterns shared by
every library / tool surface, including the
cross-library DOCA_ERROR_* taxonomy this
tool's host-side error layer overlays on top of
when downstream collector / exporter code
surfaces a related error.
1---2name: doca-telemetry-utils3description: Use this skill when the user is invoking `doca_telemetry_utils` on a host with DOCA installed — discovering the diagnostic-counter schema, translating counter names to binary Data IDs, validating per-device counter support before committing a DOCA Telemetry exporter config, or reverse-resolving a captured Data ID. Trigger even when the user does not explicitly mention "doca_telemetry_utils" or "Data ID" — typical implicit phrasings include "my exporter ships but the collector sees nothing", "this metric silently drops downstream", "which counters does this BlueField expose", "translate this 0x... back to a counter name", "what do node / pcie_index / depth mean here", or "is this counter supported on this device before I commit it". Refuse and route elsewhere for developer-side collector / exporter library programming, DTS deployment, or DOCA install / repair — those belong to doca-telemetry, doca-public-knowledge-map, and doca-setup.4license: Apache-2.05---67# DOCA Telemetry Utils89**Where to start:** This is a tool skill for invoking10`doca_telemetry_utils` — the documented host-side CLI that11supports a DOCA Telemetry exporter / collector pipeline by12discovering the counter schema, translating counter names ↔13Data IDs, and probing per-device counter support. Open14[`TASKS.md`](TASKS.md) and start at15[`## install`](TASKS.md#install) for the host-side16prerequisites and [`## run`](TASKS.md#run) for the17three documented invocation classes18(enumerate / name→ID / ID→name). Open19[`CAPABILITIES.md`](CAPABILITIES.md) when the question is20*what does this tool actually discover about the telemetry21schema*, *how does it pair with the developer-side22[`doca-telemetry`](../../libs/doca-telemetry/SKILL.md) and23exporter libraries*, *how do I confirm a device supports a24counter before committing an exporter config to it*, or25*why does my exporter pipeline silently drop a metric*.2627This skill is the **operator-side support tool** for a28DOCA Telemetry deployment. It is NOT the developer-side29collector library (that is30[`doca-telemetry`](../../libs/doca-telemetry/SKILL.md)),31NOT the developer-side publisher library (that is32`doca-telemetry-exporter` — see33[`doca-telemetry ## Related skills`](../../libs/doca-telemetry/SKILL.md#related-skills)),34and NOT a DOCA Telemetry Service (DTS) deployment guide35(route via36[`doca-public-knowledge-map`](../../doca-public-knowledge-map/SKILL.md)).37Three separate surfaces; conflating them is the most38common telemetry first-touch error.3940## Example questions this skill answers well4142The CLASSES of `doca_telemetry_utils` questions this skill43is built to answer, each with one worked example. The44class is the load-bearing piece; the worked example is one45instance.4647- **"My exporter says it's emitting `port_rx_bytes` but48 nothing shows up downstream — what did I get wrong?"** —49 worked example: *"my exporter config has a counter name50 string and my collector sees no events with that51 name"*. Answered by the name ↔ Data ID translation52 step in53 [`CAPABILITIES.md ## Capabilities and modes`](CAPABILITIES.md#capabilities-and-modes)54 + the per-device-support probe in55 [`TASKS.md ## test`](TASKS.md#test): the exporter56 ships a Data ID, not a name; a name in the config that57 resolves to a Data ID the device does not support is58 silently dropped.59- **"Which DOCA diagnostic counters does this BlueField60 actually expose?"** — worked example: *"enumerate the61 full counter schema for my BlueField-3 before I write62 the exporter config"*. Answered by the schema-discovery63 invocation class in64 [`CAPABILITIES.md ## Capabilities and modes`](CAPABILITIES.md#capabilities-and-modes)65 (`doca_telemetry_utils get-counters` lists every66 counter name the diagnostic-data surface knows about;67 pair with a per-device probe to confirm support).68- **"I have a Data ID in a captured log — what counter69 was that?"** — worked example: *"a downstream consumer70 emitted `Data ID: 0x1160000600030201` — translate it71 back so I can correlate against the public guide"*.72 Answered by the reverse-resolve invocation class in73 [`CAPABILITIES.md ## Capabilities and modes`](CAPABILITIES.md#capabilities-and-modes)74 + the75 ID-encodes-properties rule in76 [`TASKS.md ## use`](TASKS.md#use) (a Data ID carries77 the counter's property dimensions; the reverse-resolve78 reports them).79- **"What property dimensions does this counter take and80 what values are valid?"** — worked example: *"I know81 the counter is `pcie_link_write_stalled_time_*` — what82 do `node` / `pcie_index` / `depth` mean and what83 values does the device accept?"*. Answered by the84 property-dimension table in85 [`CAPABILITIES.md ## Capabilities and modes`](CAPABILITIES.md#capabilities-and-modes)86 + the `<name>` invocation without arguments which87 prints the documented property options + units +88 unit-specific axes.89- **"Is this counter supported on this device before I90 commit it to the exporter config?"** — worked example:91 *"validate that `port_rx_bytes` with `node=1` is92 exposed on the BlueField at PCIe address X before I93 write the exporter config"*. Answered by the94 per-device-support probe (`<device PCI> <name>95 [properties]`) in96 [`CAPABILITIES.md ## Capabilities and modes`](CAPABILITIES.md#capabilities-and-modes)97 + the gate-before-commit rule in98 [`TASKS.md ## use`](TASKS.md#use).99- **"Is `doca_telemetry_utils` on my install, and is it100 paired with the matching `doca-telemetry` library101 version?"** — worked example: *"is the diagnostic-102 data counter set my exporter targets on this DOCA103 version?"*. Answered by the version-overlay in104 [`CAPABILITIES.md ## Version compatibility`](CAPABILITIES.md#version-compatibility),105 which redirects to the canonical106 [`doca-version`](../../doca-version/SKILL.md) chain107 and adds the *tool ↔ `doca-telemetry` library108 schema-version* match rule.109110## Audience111112This skill serves **external operators, developers, and113AI agents standing up or debugging a DOCA Telemetry114exporter / collector pipeline who need to confirm the115counter schema, validate per-device support, or116translate between human-readable counter names and the117binary Data IDs the exporter actually ships**.118Concretely:119120- A platform operator standing up a new DOCA Telemetry121 exporter on a BlueField fleet who needs to confirm122 which counters the target devices actually expose123 before committing the exporter config.124- A developer of a downstream consumer (a collector125 app linking [`doca-telemetry`](../../libs/doca-telemetry/SKILL.md),126 or a third-party aggregator consuming via DTS) who127 has a captured Data ID stream and needs to translate128 IDs back to counter names + properties.129- An operator debugging a *"nothing is shipping130 downstream"* / *"this metric is silently missing"*131 report against a deployed exporter — the132 schema-discovery + per-device-support probes are the133 canonical *"is the counter even supposed to work on134 this device"* first step before suspecting the135 collector or the network path.136- An AI agent producing a *"validated exporter config137 for this BlueField + this DOCA version"* answer138 honestly — with each counter resolved to its Data ID139 and each Data ID confirmed against the per-device140 capability probe.141142It is **not** for users debugging the `doca_telemetry_utils`143binary itself, **not** a substitute for the live public144DOCA Telemetry guides, and **not** the right place for145learning how to *write* an exporter application (that146audience belongs in147[`doca-telemetry-exporter` skill](../../libs/doca-telemetry-exporter/SKILL.md)148when present, or via149[`doca-public-knowledge-map`](../../doca-public-knowledge-map/SKILL.md)).150151The tool is shipped as a **CLI binary** under152`/opt/mellanox/doca/tools/`, not a library you link153against. The skill uses the same `kind: tool`154three-file shape as the rest of the bundle so the155agent's task-verb contract is uniform across libraries,156services, and tools.157158## Language scope159160`doca_telemetry_utils` is a C host-side CLI that uses161the documented `doca_telemetry_diag` surface to list162counter types and probe per-device support. Its inputs163are command-line arguments (counter name, property164values, Data ID, optional device PCI address); its165outputs are human-readable Data ID + properties166mappings. The skill keeps workflow guidance language-167neutral; downstream consumers in any language can use168the resolved Data IDs against their own collector code.169170## When to load this skill171172Load this skill when the user is — or the agent needs173to — invoke `doca_telemetry_utils` on a real host with174DOCA installed, alongside an exporter / collector175pipeline that needs schema discovery, per-device176support validation, or Data ID translation.177Concretely:178179- Enumerating the full counter schema before writing180 a fresh DOCA Telemetry exporter config (`get-counters`).181- Validating that a chosen counter + property set182 resolves to a Data ID the target device actually183 supports, before committing the config.184- Reverse-resolving a Data ID captured from a185 downstream consumer back to a counter name +186 properties for correlation against the public guide.187- Debugging a *"exporter ships, collector receives188 nothing"* report (the canonical schema-mismatch /189 unsupported-counter failure mode).190- Producing a *"validated counter set for this191 BlueField + this DOCA version"* artifact as part of192 a structured exporter-config baseline.193- Migrating an exporter pipeline across DOCA versions194 and confirming each previously-supported counter195 still resolves cleanly on the new version.196197Do **not** load this skill for general DOCA orientation,198collector / exporter library programming, DTS199deployment, or DOCA install. For those, route to200[`doca-public-knowledge-map`](../../doca-public-knowledge-map/SKILL.md),201[`doca-telemetry`](../../libs/doca-telemetry/SKILL.md),202or [`doca-setup`](../../doca-setup/SKILL.md).203204## What this skill provides205206This is a **thin loader**. Substantive material lives207in two companion files:208209- `CAPABILITIES.md` — what `doca_telemetry_utils`210 discovers + how it pairs with the developer-side211 surfaces: the three documented invocation classes212 (enumerate / name→ID / ID→name), the property-213 dimension model (counters carry property axes such214 as `node`, `pcie_index`, `depth`, plus per-unit215 axes), the optional per-device capability probe216 (`<device PCI> <name>` runs the resolved counter217 against the device), the operator-side support218 role (this is NOT the developer-side library; it219 exists to make exporter / collector setups220 honest), the version overlay (tool ↔221 `doca-telemetry` library schema version pairing),222 the layered error taxonomy (install / parse /223 unknown-counter / unknown-data-id / property-out-224 of-range / device-not-supported / version /225 cross-cutting), the observability surface226 (stdout-only), and the safety policy (the tool is227 read-only; mistakes appear downstream as silent228 metric drops, not crashes).229- `TASKS.md` — step-by-step workflows for the230 in-scope task verbs: `install` (host-side DOCA +231 telemetry component prerequisites), `configure`232 (axis decisions: which invocation class, which233 device, which counter), `build` (route to install234 — the binary is shipped), `modify` (refuse — do235 not patch the binary; modify the invocation and236 the exporter / collector config that consumes the237 resolved Data IDs), `run` (the three documented238 invocations), `test` (round-trip a chosen239 counter through name → Data ID → per-device240 probe → exporter config → collector receipt),241 `debug` (walk the error taxonomy), `use` (the242 hand-off into the developer-side `doca-telemetry`243 collector / exporter pipeline), plus a `Deferred244 task verbs` block.245246The skill assumes a host where DOCA is already247installed with the telemetry component, a BlueField248the operator is targeting is visible to DOCA, and the249exporter / collector pipeline that consumes the250resolved Data IDs is either being authored or has251already been authored against the matching252[`doca-telemetry`](../../libs/doca-telemetry/SKILL.md)253library version.254255## What this skill deliberately does not ship256257This skill is **agent guidance**, not a samples or258scripts bundle. To keep the boundary clean, it259deliberately does not contain — and pull requests260should not add:261262- **A verbatim counter inventory or Data ID263 table.** The counter set evolves across DOCA264 versions and BlueField generations; an265 inventory pinned in this skill would silently rot.266 `doca_telemetry_utils get-counters` on the267 installed binary is the authoritative source.268- **Pre-baked exporter / collector configs.** Configs269 are install-, device-, and use-case-specific; a270 packaged config in this skill would mislead271 operators on a different setup.272- **A DTS deployment recipe.** DTS is a separate DOCA273 service with its own public guide; route via274 [`doca-public-knowledge-map`](../../doca-public-knowledge-map/SKILL.md).275 This skill *resolves the counter names + IDs* a276 DTS pipeline consumes; it does not configure DTS.277- **Wrappers, parsers, or scripts** in any language278 that consume the tool's output. The output is a279 simple text mapping; users who want to script280 against it should read the live guide and write281 the parser against their installed version.282- **A `samples/` or `reference/` subtree.** This is283 a thin loader for a shipped CLI; substantive284 material lives on the public page, in `--help`,285 and in [`doca-telemetry`](../../libs/doca-telemetry/SKILL.md).286287## Loading order2882891. Read this `SKILL.md` first to confirm the user's290 question is in scope (operator-side support291 tooling for a telemetry pipeline, not the292 developer-side library programming).2932. **For the three invocation classes, the294 property-dimension model, the per-device support295 probe, the version overlay, the error taxonomy,296 the observability surface, and the safety297 policy, see [CAPABILITIES.md](CAPABILITIES.md).**2983. **For the documented invocations and the299 discover → resolve → validate → consume300 workflow — `install`, `configure`, `build`,301 `modify`, `run`, `test`, `debug`, `use` — see302 [TASKS.md](TASKS.md).**303304## Related skills305306- [`doca-telemetry`](../../libs/doca-telemetry/SKILL.md)307 — the developer-side collector library whose308 schema this tool helps the operator discover. Pair309 them in every exporter-pipeline triage session.310 The collector library skill teaches the311 collector-vs-exporter rule, the schema-must-match312 contract with the publisher, and the consumer-313 queue-full back-pressure rule; this tool's role314 is to make the *schema* half of that contract315 inspectable from the operator side. Conflating316 the library and the tool is the most common317 telemetry first-touch error.318- [`doca-public-knowledge-map`](../../doca-public-knowledge-map/SKILL.md)319 — routing to the public DOCA Telemetry guide and320 the DOCA Telemetry Service (DTS) page on321 `docs.nvidia.com`, plus the on-disk install322 layout for the tool.323- [`doca-version`](../../doca-version/SKILL.md) —324 canonical DOCA version-handling rules. The325 `## Version compatibility` section in326 [`CAPABILITIES.md`](CAPABILITIES.md) is a concise327 overlay that redirects here for the body and328 adds the *tool ↔ `doca-telemetry` library329 schema-version pairing* rule.330- [`doca-setup`](../../doca-setup/SKILL.md) — env331 preparation, install verification, and the *I332 have no install yet* path with the public NGC333 DOCA container. This skill assumes its334 preconditions are satisfied (DOCA installed335 with the telemetry component, BlueField visible336 to DOCA).337- [`doca-debug`](../../doca-debug/SKILL.md) — the338 cross-cutting debug ladder. Telemetry-utils339 feeds the cross-cutting ladder by surfacing the340 counter schema + per-device support truth at the341 runtime layer; exporter-pipeline regressions342 often resolve at the schema layer before343 touching the collector / network path.344- [`doca-structured-tools-contract`](../../doca-structured-tools-contract/SKILL.md)345 — the bundle's detect → prefer → fall back →346 report contract for structured helper tools. The347 command appendix in [`TASKS.md`](TASKS.md)348 honors this contract.349- [`doca-programming-guide`](../../doca-programming-guide/SKILL.md)350 — general DOCA programming patterns shared by351 every library / tool surface, including the352 cross-library `DOCA_ERROR_*` taxonomy this353 tool's host-side error layer overlays on top of354 when downstream collector / exporter code355 surfaces a related error.