Product SiteDocumentation Site

2.2. PMDA Architecture

This section discusses the two methods of connecting a PMDA to a PMCD process:
  • As a separate process using some interprocess communication (IPC) protocol.
  • As a dynamically attached library (that is, a dynamic shared object or DSO).

2.2.1. Overview

All PMDAs are launched and controlled by the PMCD process on the local host. PMCD receives requests from the monitoring tools and forwards them to the PMDAs. Responses, when required, are returned through PMCD to the clients. The requests fall into a small number of categories, and the PMDA must handle each request type. For a DSO PMDA, each request type corresponds to a method in the agent. For a daemon PMDA, each request translates to a message or protocol data unit (PDU) that may be sent to a PMDA from PMCD.
For a daemon PMDA, the following request PDUs must be supported:
Request for metric values (see the pmFetch(3) man page.)
A list of instances required for the corresponding metrics in subsequent fetches (see the pmAddProfile(3) man page).
Request for a particular instance domain for instance descriptions (see the pmGetInDom(3) man page).
Request for metadata describing metrics (see the pmLookupDesc(3) man page).
Request for metric help text (see the pmLookupText(3) man page).
Values to store into metrics (see the pmStore(3) man page).
The following request PDUs may optionally be supported:
Request for metric names, given one or more identifiers (see the pmLookupName(3) man page.)
A list of immediate descendent nodes of a given namespace node (see the pmGetChildren(3) man page).
Request for a particular sub-tree of a given namespace node (see the pmTraversePMNS(3) man page).
Perform a reverse name lookup, mapping a metric identifier to a name (see the pmNameID(3) man page).
Handle connection attributes (key/value pairs), such as client credentials and other authentication information (see the __pmParseHostAttrsSpec(3) man page).
Request for metric labels (see the pmLookupLabels(3) man page).
Each PMDA is associated with a unique domain number that is encoded in the domain field of metric and instance identifiers, and PMCD uses the domain number to determine which PMDA can handle the components of any given client request.