diff options
author | José Bollo <jose.bollo@iot.bzh> | 2017-08-27 14:48:05 +0200 |
---|---|---|
committer | José Bollo <jose.bollo@iot.bzh> | 2017-08-27 15:00:29 +0200 |
commit | b2a53cb68658ec297d8b66f4c333a287bf70bc37 (patch) | |
tree | 89f717a149b3146b41982cfc848e4f63d9294c35 | |
parent | 4c1b833e271c8bf6aa5643deef2d47a1781444ea (diff) |
monitoring: Add option --monitoring
Installs basic interface for monitoring and
add the option --monitoring / -M to activate
the alias /monitoring. This makes the page
/monitoring/monitor.html available.
Change-Id: Iebe0959f0a5e7c396fe7ce6862d0f9c883733824
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
-rw-r--r-- | CMakeLists.txt | 14 | ||||
-rw-r--r-- | src/afb-config.c | 19 |
2 files changed, 33 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 5a8d2d2a..eb2d2d12 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -112,6 +112,20 @@ SET(link_libraries SET(binding_install_dir ${CMAKE_INSTALL_FULL_LIBDIR}/afb) +########################################################################### +# activates the monitoring by default +set(INCLUDE_MONITORING ON CACHE BOOL "Activates installation of monitoring") +if(INCLUDE_MONITORING) + add_definitions(-DWITH_MONITORING_OTPION) + INSTALL(DIRECTORY + ${CMAKE_CURRENT_SOURCE_DIR}/test/monitoring + DESTINATION + ${binding_install_dir} + ) +endif() + +########################################################################### + ADD_SUBDIRECTORY(src) ADD_SUBDIRECTORY(include) ADD_SUBDIRECTORY(bindings) diff --git a/src/afb-config.c b/src/afb-config.c index c22dbb5e..2a11458f 100644 --- a/src/afb-config.c +++ b/src/afb-config.c @@ -90,6 +90,9 @@ #define SET_TRACEEVT 'E' #define SET_EXEC 'e' #define DISPLAY_HELP 'h' +#if defined(WITH_MONITORING_OTPION) +#define SET_MONITORING 'M' +#endif #define SET_TCP_PORT 'p' #define SET_QUIET 'q' #define SET_RNDTOKEN 'r' @@ -103,6 +106,9 @@ const char shortopts[] = "c:D:E:ehp:qrT:t:u:Vvw:" +#if defined(WITH_MONITORING_OTPION) + "M" +#endif ; // Command line structure hold cli --command + help text @@ -167,6 +173,9 @@ static AFB_options cliOptions[] = { {SET_NO_HTTPD, 0, "no-httpd", "Forbids HTTP service"}, {SET_EXEC, 0, "exec", "Execute the remaining arguments"}, +#if defined(WITH_MONITORING_OTPION) + {SET_MONITORING, 0, "monitoring", "enable HTTP monitoring at <ROOT>/monitoring/monitor.html"}, +#endif {0, 0, NULL, NULL} /* *INDENT-ON* */ }; @@ -570,7 +579,12 @@ static void parse_arguments(int argc, char **argv, struct afb_config *config) case SET_RNDTOKEN: config->token = random_token(); + +#if defined(WITH_MONITORING_OTPION) + case SET_MONITORING: + config->monitoring = 1; break; +#endif case DISPLAY_VERSION: noarg(optc); @@ -635,6 +649,11 @@ static void config_set_default(struct afb_config *config) if (config->ldpaths == NULL && config->weak_ldpaths == NULL && !config->no_ldpaths) list_add(&config->ldpaths, BINDING_INSTALL_DIR); +#if defined(WITH_MONITORING_OTPION) + if (config->monitoring) + list_add(&config->aliases, strdup("/monitoring:"BINDING_INSTALL_DIR"/monitoring")); +#endif + // if no config dir create a default path from uploaddir if (config->console == NULL) { config->console = malloc(512); |