Provided by: libpcp3-dev_6.3.0-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
       interface  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
       unchanged 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/pmwebapi.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
            pmSearchTextInDom(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  (redis),  pmSearchSetEventLoop  (libuv),  pmSearchSetConfiguration
       (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
       established 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),   redis-server(1),   mmv_stats_registry(3),   pmSearchInfo(3),
       pmSearchTextInDom(3), pmSearchTextQuery(3), pmSearchTextSuggest(3), PMAPI(3) and PMWEBAPI(3).