RTBKit  0.9
Open-source framework to create real-time ad bidding systems.
core/monitor/monitor_service_runner.cc
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 }
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator