# lttng-health-check

## NAME



           **DEPRECATED**
    
           lttng_health_check - Monitor health of the session daemon
    


## SYNOPSIS



           **#include <lttng/lttng.h>**
    
           **int lttng_health_check(enum lttng_health_component c);**
    
           Link with -llttng-ctl.
    


## DESCRIPTION



           The **lttng_health_check**() is used to check the session daemon
           health for either a specific component **c** or for all of them. Each
           component represent a subsystem of the session daemon.  Those
           components are set with health counters that are atomically
           incremented once reached. An even value indicates progress in the
           execution of the component. An odd value means that the code has
           entered a blocking state which is not a poll(7) wait period.
    
           A bad health is defined by a fatal error code path reached or any
           IPC used in the session daemon that was blocked for more than 20
           seconds (default timeout).  The condition for this bad health to
           be detected is that one or many of the counters are odd.
    
           The health check mechanism of the session daemon can only be
           reached through the health socket which is a different one from
           the command and the application socket. An isolated thread serves
           this socket and only computes the health counters across the code
           when asked by the lttng control library (using this call). This
           subsystem is highly unlikely to fail due to its simplicity.
    
           The **c** argument can be one of the following values:
    
           **LTTNG_HEALTH_CMD**
                  Command subsystem which handles user commands coming from
                  the liblttng-ctl or the lttng(1) command line interface.
    
           **LTTNG_HEALTH_APP_MANAGE**
                  The session daemon manages application socket in order to
                  route client command and check if they get closed which
                  indicates the application shutdown.
    
           **LTTNG_HEALTH_APP_REG**
                  The application registration mechanism is an important and
                  vital part of for user space tracing. Upon startup,
                  applications instrumented with lttng-ust(3) try to register
                  to the session daemon through this subsystem.
    
           **LTTNG_HEALTH_KERNEL**
                  Monitor the Kernel tracer streams and main channel of
                  communication (/proc/lttng). If this component malfunction,
                  the Kernel tracer is not usable anymore by lttng-tools.
    
           **LTTNG_HEALTH_CONSUMER**
                  The session daemon can spawn up to **three** consumer daemon
                  for kernel, user space 32 and 64 bit. This subsystem
                  monitors the consumer daemon(s). A bad health state means
                  that the consumer(s) are not usable anymore hence likely
                  making tracing not usable.
    
           **LTTNG_HEALTH_ALL**
                  Check all components. If only one of them is in a bad
                  state, a health check error is returned.
    


## RETURN VALUE



           Return 0 if the health is OK, or 1 is it's in a bad state. A
           return code of -1 indicates that the control library was not able
           to connect to the session daemon health socket.
    


## LIMITATIONS



           For the LTTNG_HEALTH_CONSUMER, you can not know which consumer
           daemon has failed but only that either the consumer subsystem has
           failed or that a lttng-consumerd died.
    


* * *