---
name: "pmdapmid"
section: "3"
platform: "linux"
package: "libpcp-pmda3-dev"
version: "4.3.2+really4.3.1-0.1"
release: "Debian 10 (Buster)"
platforms: ["linux"]
url: "https://new.carta.tech/pmdaPMID"
---

# pmdapmid(3)

translate a dynamic performance metric name into a PMID

Part of [pmdaPMID(3)](/pmdaPMID/3.md).

## NAME

**pmdaPMID** - translate a dynamic performance metric name into a PMID

## C SYNOPSIS

**#include \<pcp/pmapi.h\>**\
 **#include \<pcp/pmda.h\>**

**int pmdaPMID(char \****name***, pmID \****pmid***, pmdaExt \****pmda***);**

**cc ... -lpcp\_pmda -lpcp**

## DESCRIPTION

As part of the Performance Metrics Domain Agent (PMDA) API (see [**PMDA**(3)](/PMDA/3.md)), **pmdaPMID** is the generic callback for translating a dynamic metric *name* into a PMID (*pmid*).

Because implementing dynamic performance metrics requires specific PMDA support, and the facility is an optional component of a PMDA (most PMDAs do **not** support dynamic performance metrics), **pmdaPMID** is a skeleton implementation that returns **PM\_ERR\_NAME**.

A PMDA that supports dynamic performance metrics will provide a private callback that replaces **pmdaPMID** (by assignment to *version.four.pmid* of the *pmdaInterface* structure) and implements the translation from a dynamic performance metric *name* into the associated *pmid*.

## DIAGNOSTICS

**pmdaPMID** returns **PM\_ERR\_NAME** if the name is not recognized or cannot be translated, else returns 0.

## CAVEAT

The PMDA must be using  **PMDA\_PROTOCOL\_4** or later, as specified in the call to  [**pmdaDSO**(3)](/pmdaDSO/3.md) or  [**pmdaDaemon**(3)](/pmdaDaemon/3.md).

## SEE ALSO

[**PMAPI**(3)](/PMAPI/3.md), [**PMDA**(3)](/PMDA/3.md), [**pmdaDaemon**(3)](/pmdaDaemon/3.md), [**pmdaDSO**(3)](/pmdaDSO/3.md), [**pmdaMain**(3)](/pmdaMain/3.md) and [**pmLookupName**(3)](/pmLookupName/3.md).
