Provided by: libpcp3-dev_6.2.0-1.1build4_amd64 bug

NAME

       pmSearchSetup,          pmSearchSetSlots,         pmSearchSetEventLoop,         pmSearchSetConfiguration,
       pmSearchSetMetricRegistry, pmSearchClose - fast, scalable and fulltext 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, fulltext 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  throught  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
       enstablished 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).