Fix: Multiple health monitoring fixes
[lttng-tools.git] / include / lttng / lttng.h
index 4741b68778f77522ad5d2cb975a4e80731bb01f5..7754bcdbce6de2352ab1d0f73c8cd8ae1a9d46a3 100644 (file)
@@ -131,6 +131,16 @@ enum lttng_calibrate_type {
        LTTNG_CALIBRATE_FUNCTION              = 0,
 };
 
+/* Health component for the health check function. */
+enum lttng_health_component {
+       LTTNG_HEALTH_CMD,
+       LTTNG_HEALTH_APP_MANAGE,
+       LTTNG_HEALTH_APP_REG,
+       LTTNG_HEALTH_KERNEL,
+       LTTNG_HEALTH_CONSUMER,
+       LTTNG_HEALTH_ALL,
+};
+
 /* Destination type of lttng URI */
 enum lttng_dst_type {
        LTTNG_DST_IPV4                        = 1,
@@ -269,7 +279,7 @@ struct lttng_event_function_attr {
  *
  * The structures should be initialized to zero before use.
  */
-#define LTTNG_EVENT_PADDING1               16
+#define LTTNG_EVENT_PADDING1               15
 #define LTTNG_EVENT_PADDING2               LTTNG_SYMBOL_NAME_LEN + 32
 struct lttng_event {
        enum lttng_event_type type;
@@ -280,6 +290,7 @@ struct lttng_event {
 
        int32_t enabled;        /* Does not apply: -1 */
        pid_t pid;
+       unsigned char filter;   /* filter enabled ? */
 
        char padding[LTTNG_EVENT_PADDING1];
 
@@ -548,6 +559,17 @@ extern int lttng_add_context(struct lttng_handle *handle,
 extern int lttng_enable_event(struct lttng_handle *handle,
                struct lttng_event *ev, const char *channel_name);
 
+/*
+ * Apply a filter expression to an event.
+ *
+ * If event_name is NULL, the filter is applied to all events of the channel.
+ * If channel_name is NULL, a lookup of the event's channel is done.
+ * If both are NULL, the filter is applied to all events of all channels.
+ */
+extern int lttng_set_event_filter(struct lttng_handle *handle,
+               const char *event_name,
+               const char *channel_name,
+               const char *filter_expression);
 /*
  * Create or enable a channel.
  * The channel name cannot be NULL.
@@ -607,4 +629,16 @@ extern int lttng_enable_consumer(struct lttng_handle *handle);
  */
 extern int lttng_disable_consumer(struct lttng_handle *handle);
 
+/*
+ * Check session daemon health for a specific component.
+ *
+ * Return 0 if health is OK or 1 if BAD. A returned value of -1 indicate that
+ * the control library was not able to connect to the session daemon health
+ * socket.
+ *
+ * Any other positive value is an lttcomm error which can be translate with
+ * lttng_strerror().
+ */
+extern int lttng_health_check(enum lttng_health_component c);
+
 #endif /* _LTTNG_H */
This page took 0.024019 seconds and 4 git commands to generate.