new cobra to python bot (still sending to statsd)
values + string building can be done in python (we are embedding it)
This commit is contained in:
@ -32,6 +32,15 @@ if (NOT JSONCPP_FOUND)
|
||||
set(JSONCPP_SOURCES ../third_party/jsoncpp/jsoncpp.cpp)
|
||||
endif()
|
||||
|
||||
find_package(Python COMPONENTS Development)
|
||||
if (NOT Python_FOUND)
|
||||
message(FATAL_ERROR "Python3 not found")
|
||||
endif()
|
||||
message("Python_FOUND:${Python_FOUND}")
|
||||
message("Python_VERSION:${Python_VERSION}")
|
||||
message("Python_Development_FOUND:${Python_Development_FOUND}")
|
||||
message("Python_LIBRARIES:${Python_LIBRARIES}")
|
||||
|
||||
add_executable(ws
|
||||
../third_party/msgpack11/msgpack11.cpp
|
||||
../third_party/cpp-linenoise/linenoise.cpp
|
||||
@ -71,6 +80,9 @@ target_link_libraries(ws ixcrypto)
|
||||
target_link_libraries(ws ixcore)
|
||||
|
||||
target_link_libraries(ws spdlog)
|
||||
if (NOT WIN32)
|
||||
target_link_libraries(ws ${Python_LIBRARIES})
|
||||
endif()
|
||||
|
||||
if (JSONCPP_FOUND)
|
||||
target_include_directories(ws PUBLIC ${JSONCPP_INCLUDE_DIRS})
|
||||
|
29
ws/ws.cpp
29
ws/ws.cpp
@ -11,6 +11,7 @@
|
||||
|
||||
#include <cli11/CLI11.hpp>
|
||||
#include <fstream>
|
||||
#include <ixbots/IXCobraToPythonBot.h>
|
||||
#include <ixbots/IXCobraToSentryBot.h>
|
||||
#include <ixbots/IXCobraToStatsdBot.h>
|
||||
#include <ixbots/IXCobraToStdoutBot.h>
|
||||
@ -121,6 +122,7 @@ int main(int argc, char** argv)
|
||||
std::string project;
|
||||
std::string key;
|
||||
std::string logfile;
|
||||
std::string scriptPath;
|
||||
ix::SocketTLSOptions tlsOptions;
|
||||
ix::CobraConfig cobraConfig;
|
||||
ix::CobraBotConfig cobraBotConfig;
|
||||
@ -352,6 +354,16 @@ int main(int argc, char** argv)
|
||||
addTLSOptions(cobra2statsd);
|
||||
addCobraBotConfig(cobra2statsd);
|
||||
|
||||
CLI::App* cobra2python = app.add_subcommand("cobra_to_python", "Cobra to python");
|
||||
cobra2python->fallthrough();
|
||||
cobra2python->add_option("--host", hostname, "Statsd host");
|
||||
cobra2python->add_option("--port", statsdPort, "Statsd port");
|
||||
cobra2python->add_option("--prefix", prefix, "Statsd prefix");
|
||||
cobra2python->add_option("--script", scriptPath, "Python script path")->check(CLI::ExistingPath);
|
||||
cobra2python->add_option("--pidfile", pidfile, "Pid file");
|
||||
addTLSOptions(cobra2python);
|
||||
addCobraBotConfig(cobra2python);
|
||||
|
||||
CLI::App* cobraMetrics2statsd = app.add_subcommand("cobra_metrics_to_statsd", "Cobra metrics to statsd");
|
||||
cobraMetrics2statsd->fallthrough();
|
||||
cobraMetrics2statsd->add_option("--host", hostname, "Statsd host");
|
||||
@ -590,6 +602,23 @@ int main(int argc, char** argv)
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (app.got_subcommand("cobra_to_python"))
|
||||
{
|
||||
ix::StatsdClient statsdClient(hostname, statsdPort, prefix, verbose);
|
||||
|
||||
std::string errMsg;
|
||||
bool initialized = statsdClient.init(errMsg);
|
||||
if (!initialized)
|
||||
{
|
||||
spdlog::error(errMsg);
|
||||
ret = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
ret = (int) ix::cobra_to_python_bot(
|
||||
cobraBotConfig, statsdClient, scriptPath);
|
||||
}
|
||||
}
|
||||
else if (app.got_subcommand("cobra_metrics_to_statsd"))
|
||||
{
|
||||
ix::StatsdClient statsdClient(hostname, statsdPort, prefix, verbose);
|
||||
|
Reference in New Issue
Block a user