RTBKit
0.9
Open-source framework to create real-time ad bidding systems.
|
00001 /* monitor_service_runner.cc 00002 Wolfgang Sourdeau, February 2013 00003 Copyright (c) 2013 Datacratic. All rights reserved. 00004 00005 Monitor service runner 00006 */ 00007 00008 #include <boost/program_options/parsers.hpp> 00009 #include <boost/program_options/variables_map.hpp> 00010 #include <boost/make_shared.hpp> 00011 00012 #include "jml/arch/timers.h" 00013 #include "soa/service/service_utils.h" 00014 #include "monitor_endpoint.h" 00015 00016 using namespace boost::program_options; 00017 using namespace std; 00018 00019 using namespace Datacratic; 00020 using namespace RTBKIT; 00021 00022 00023 int main(int argc, char ** argv) 00024 { 00025 Datacratic::ServiceProxyArguments args; 00026 00027 options_description options = args.makeProgramOptions("Monitor Service"); 00028 options.add_options() ("help,h", "Print this message"); 00029 00030 variables_map vm; 00031 store(command_line_parser(argc, argv) .options(options) .run(), vm); 00032 notify(vm); 00033 00034 if (vm.count("help")) { 00035 cerr << options << endl; 00036 exit(1); 00037 } 00038 00039 auto proxies = args.makeServiceProxies(); 00040 00041 MonitorEndpoint monitor(proxies, "monitor"); 00042 monitor.init({"router", "postAuction", "masterBanker", "data_logger", 00043 "agentConfigurationService"}); 00044 auto addr = monitor.bindTcp( 00045 proxies->ports->getRange("monitor.zmq"), 00046 proxies->ports->getRange("monitor.http")); 00047 cerr << "monitor is listening on " 00048 << addr.first << "," << addr.second << endl; 00049 00050 proxies->config->dump(cerr); 00051 00052 monitor.startSync(); 00053 00054 return 0; 00055 }