Provided by: libpcp3-dev_6.3.3-1_amd64 bug

NAME

       pmSearchSetup,          pmSearchSetSlots,         pmSearchSetEventLoop,         pmSearchSetConfiguration,
       pmSearchSetMetricRegistry, pmSearchClose - fast, scalable and full-text capable search services

C SYNOPSIS

       #include <pcp/pmwebapi.h>

       int pmSearchSetup(pmSearchModule *module, void *arg);

       int pmSearchSetSlots(pmSearchModule *module, void *slots);
       int pmSearchSetEventLoop(pmSearchModule *module, void *events);
       int pmSearchSetConfiguration(pmSearchModule *module, struct dict *config);
       int pmSearchSetMetricRegistry(pmSearchModule *module, struct mmv_registry *registry);

       int pmSearchClose(pmSearchModule *module);

       cc ... -lpcp_web

DESCRIPTION

       The pmSearchSetup and related API functions prepare an application for accessing the  fast  and  scalable
       metric,  instance  and instance domain, full-text capable, searching functionality of the Performance Co-
       Pilot (PCP).

       This functionality is provided trough asynchronous APIs, which function in event-driven fashion. The  in‐
       terface  described  here  prepare  a  given search module which associates callback routines with certain
       asynchronous events that occur as part of servicing search requests.

       As a general pattern, all interfaces in these APIs that need to invoke callbacks provided by the  calling
       program  will  take  an  opaque  (void * pointer) arg parameter.  This pointer will be passed through un‐
       changed and is typically used to access a data structure maintaining state within the calling program.

       Where asynchronous setup is required by pmSearchSetup its completion will be indicated through use of the
       on_setup callback, which is part of the passed in pmSearchModule structure. This structure also  provides
       for custom diagnostics handling, through the on_info callback. These are self-explanatory, see <pcp/pmwe‐
       bapi.h> for exact calling conventions.

       The callbacks registered by pmSearchSetup to handle events are as follows:

       pmSearchTextResultCallBack on_text_result
            Callback  is  called  once  for  each item of search result that matches a given query passed by pm‐
            SearchTextInDom(3), pmSearchTextQuery(3), pmSearchTextSuggest(3).

       pmSearchMetricsCallBack on_metrics
            Callback is called for results of a call to pmSearchInfo(3).

       pmSearchDoneCallBack on_done
            On completion of all asynchronous interfaces that return success (zero return code),  this  callback
            will  be  called.   It provides a status code indicating overall success (zero) or failure (negative
            PMAPI code) of the operation.

       The helper functions pmSearchSetSlots (key-value server), pmSearchSetEventLoop  (libuv),  pmSearchSetCon‐
       figuration  (configuration file) and pmSearchSetMetricRegistry (MMV instrumentation) interfaces provide a
       mechanism for passing in state for each of the associated subsystems.

       Finally, a call to pmSearchClose is used to end services available from a search module previously estab‐
       lished through pmSearchSetup.

       Within PCP, the pmproxy(1) and pmsearch(1) utilities are the primary users of the  interfaces,  providing
       REST API and command line search services respectively.

DIAGNOSTICS

       Where  these functions return a status code, this is always zero on success.  On failure a negative PMAPI
       error code is returned.

SEE ALSO

       pmproxy(1), pmlogger(1), pmsearch(1), mmv_stats_registry(3), pmSearchInfo(3),  pmSearchTextInDom(3),  pm‐
       SearchTextQuery(3), pmSearchTextSuggest(3), PMAPI(3) and PMWEBAPI(3).

Performance Co-Pilot                                   PCP                                      PMSEARCHSETUP(3)