logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

QmcGroup - container representing a single fetch group of metrics from multiple sources

C++ Synopsis

#include<QmcGroup.h>c++...-lpcp_qmc-lpcp

Constructors & Destructor

~QmcGroup();
           Destructor which destroys all metrics and contexts created by this group.

       QmcGroup(boolrestrictArchives=false);
           Construct  a  new  fetch  group.   restrictArchives  will  restrict  the creating of multiple archive
           contexts created from the same host.

Contexts

       The default context of the group is defined as the first context created with  QmcGroup::use  before  the
       first  call  to  QmcGroup::addMetric.   If  no  context  is created before the first metric is added, the
       localhost is used as the default context.  Therefore,  if  any  metrics  specifications  contain  archive
       sources, an archive source must have been created with QmcGroup::use to avoid an error for mixing context
       types.

       uint_tnumContexts()const;
           The number of valid contexts created in this group.

       QmcContextconst&context(uint_tindex)const
           Return a handle to a context.

       QmcContext&context(uint_tindex);
           Return a modifiable handle to a context.

       intmode()const;
           Return the type of context, either PM_CONTEXT_LOCAL, PM_CONTEXT_HOST or PM_CONTEXT_ARCHIVE.

       QmcContext*which()const;
           Return  a  handle  to the current context of this group. This does not call pmUseContext(3) so it may
           not be the current PMAPI(3) context.

       uint_tcontextIndex()const
           The index to the current group context.

       intuse(inttype,charconst*source);
           Use the context of type from source.  If a context to this source already exists in this group,  that
           context  will  become  the  current  PMAPI(3) context.  Otherwise a new context will be created.  The
           result is the PMAPI(3) context handle for the QmcGroup::context or  a  PMAPI(3)  error  code  if  the
           context failed.

       booldefaultDefined()const;
           Returns true if a default context has been determined.

       intuseDefault();
           Use  the  default  context.  If a default context has not been created, the context to the local host
           will be attempted.  A result less than zero indicates that the method failed with the PMAPI(3)  error
           encoded in the result.

       voidcreateLocalContext();
           Create and use a context to the local host.  A result less than zero indicates that the method failed
           with the PMAPI(3) error encoded in the result.

Debugging

voiddump(ostream&os);
           Dump state information about this group to os.

Description

       A  QmcGroup  object is a container for contexts and metrics that should be fetched at the same time.  The
       class  manages  the  QmcContext(3)  objects,  timezones  and  bounds  for  every  context  created   with
       QmcGroup::use and QmcGroup::addMetric.

Diagnostics

       Error  messages are generated using pmprintf(3) but are not flushed. It is the responsibility of the user
       to call pmflush(3) to output any messages.

       Additional diagnostics may be activated by adding the option pmc to the global  debugging  specification,
       as described in pmSetDebug(3).

Metrics

       These  addMetric  methods should be used to create new metrics as the QmcMetric constructors are private.
       These methods will always return a pointer to a QmcMetric object, however the  QmcMetric::status()  field
       should be checked to ensure the metric is valid.

       QmcMetric*addMetric(charconst*str,doubletheScale=0.0,boolactive=false);

           Add  the  metric  str to the group, with a scaling factor of scale.  If active is set the metric will
           use only active instances (see QmcMetric(3)).

       QmcMetric*addMetric(pmMetricSpec*theMetric,doubletheScale=0.0,boolactive);

           Add the metric theMetric to the group, with a scaling factor of scale.  If active is set  the  metric
           will use only active instances (see QmcMetric(3)).

       intfetch(boolupdate=true);
           Fetch  all  the  metrics  in all the contexts in this group.  If update is equal to true, all counter
           metrics will be automatically converted to rates (see QmcMetric(3)).

       intsetArchiveMode(intmode,conststructtimeval*when,intinterval);

           Set the mode and time to access all archive contexts  in  this  group.   See  pmSetMode(3)  for  more
           details.

Name

QmcGroup - container representing a single fetch group of metrics from multiple sources

See Also

PMAPI(3), QMC(3), QmcContext(3), QmcMetric(3), pmflush(3), pmprintf(3) and pmSetMode(3).

Performance Co-Pilot                                   SGI                                           QMCGROUP(3)

Timezones

       These methods assist in the management of multiple timezones and help to control the current timezone.

       enumTimeZoneFlag{localTZ,userTZ,groupTZ,unknownTZ};
           Enumeration  used  to  describe  the  origin  of  the  default timezone.  localTZ, userTZ and groupTZ
           indicate that the timezone was set with  QmcGroup::useLocalTZ,  QmcGroup::useTZ(QStringconst&)  and
           QmcGroup::useTZ()  respectively.   unknownTZ  indicates  that  a  timezone  has not been set.  userTZ
           indicates that the timezone was

       intuseTZ();
           Use the timezone of the current group context as the default.

       intuseTZ(constQString&tz);
           Add and use tz as the default timezone of this group.

       intuseLocalTZ();
           Use the timezone of the localhost as the default for this group.

       voiddefaultTZ(QString&label,QString&tz);
           Return the label and tz string of the default timezone of this group.

       TimeZoneFlagdefaultTZ()const
           Return the origin of the default timezone.

       intuseDefaultTZ();
           Set the timezone to be the default timezone as defined in  a  previous  call  to  QmcGroup::useTZ  or
           QmcGroup::useLocalTZ.

       structtimevalconst&logStart()const;
           Return the earliest starting time of any archives in this group.  Assumes that QmcGroup::updateBounds
           has been called.

       structtimevalconst&logEnd()const;
           Return the latest finish time of any archives in this group.  Assumes that QmcGroup::updateBounds has
           been called.

       voidupdateBounds();
           Determine the earliest start and latest finish times of all archives in this group.

See Also