NAME¶
pmGetContextHostName,
pmGetContextHostName_r - return the hostname
associated with a Performance Co-Pilot context
C SYNOPSIS¶
#include <pcp/pmapi.h>
const char *pmGetContextHostName(int
id);
char *pmGetContextHostName_r(int
id, char *
buf, int
buflen);
cc ... -lpcp
DESCRIPTION¶
Given a valid PCP context identifier previously created with
pmNewContext(3) or
pmDupContext(3), the
pmGetContextHostName function returns the hostname associated with
id. The
pmGetContextHostName_r function does the same, but
stores the result in a user-supplied buffer
buf of length
buflen, which should have room for at least
MAXHOSTNAMELEN
bytes.
If the context
id is associated with an archive source of data, the
hostname returned is extracted from the archive label using
pmGetArchiveLabel(3).
For live contexts, an attempt will first be made to retrieve the hostname from
the PCP collector system using
pmFetch(3) with the
pmcd.hostname
metric. This allows client tools using this interface to retrieve an accurate
host identifier even in the presence of port forwarding and tunnelled
connections.
Should this not succeed, then a fallback method is used. For local contexts -
with local meaning any of DSO, ``localhost'' or Unix domain socket connection
- a hostname will be sought via
gethostname(3). For other contexts, the
hostname extracted from the initial context host specification will be used.
RETURN VALUE¶
If
id is not a valid PCP context identifier, the returned hostname is a
zero length string.
NOTES¶
pmGetContextHostName returns a pointer to a static buffer, so the
returned value is only valid until the next call to
pmGetContextHostName and hence is not thread-safe. Multi-threaded
applications should use
pmGetContextHostName_r instead.
PCP ENVIRONMENT¶
Environment variables with the prefix
PCP_ are used to parameterize the
file and directory names used by PCP. On each installation, the file
/etc/pcp.conf contains the local values for these variables. The
$PCP_CONF variable may be used to specify an alternative configuration
file, as described in
pcp.conf(5). Values for these variables may be
obtained programmatically using the
pmGetConfig(3) function.
SEE ALSO¶
PCPIntro(1),
PMAPI(3),
gethostname(3),
pmDupContext(3),
pmFetch(3),
pmGetArchiveLabel(3),
pmNewContext(3),
pcp.conf(5) and
pcp.env(5).