1 #include <ObSensorSystem.h>
2 #include <ObSensorTest.h>
4 #include <glibtop/cpu.h>
5 #include <spdlog/fmt/ostr.h>
6 #include <spdlog/spdlog.h>
8 std::shared_ptr<spdlog::logger> logger =
nullptr;
13 auto console = spdlog::stdout_logger_mt(
"console");
14 logger = spdlog::get(
"console");
15 spdlog::set_level(spdlog::level::trace);
17 char *hostname = zsys_hostname();
19 zsock_t *writer = zsock_new_push(
"@tcp://127.0.0.1:5560");
21 assert(zsock_resolve(writer) != writer);
22 assert(streq(zsock_type_str(writer),
"PUSH"));
24 zsock_t *reader = zsock_new_pull(
">tcp://127.0.0.1:5560");
26 assert(zsock_resolve(reader) != reader);
27 assert(streq(zsock_type_str(reader),
"PULL"));
33 glibtop_get_cpu(&cpu1);
40 glibtop_get_cpu(&cpu2);
44 (double)(cpu2.user - cpu1.user) / (cpu2.total - cpu1.total) * 100;
46 logger->info(
"Sending 'cpu total : {:.2f}' ...", cpu_usage);
48 zstr_sendf(writer,
"cpu total : %.2f", cpu_usage);
49 zmsg_t *msg = zmsg_recv(reader);
51 char *
string = zmsg_popstr(msg);
52 logger->info(
"Received : '{}'",
string);
58 zsock_destroy(&writer);
59 zsock_destroy(&reader);
61 logger->info(
"Running ObSensorTest ...");
70 const int timeout = 1000;
72 zclock_sleep(timeout);
74 for (
int i = 0; i < 3; ++i) {
76 std::string json = s.json();
77 logger->info(
"json={}", json.data());
78 zclock_sleep(timeout);
81 logger->info(
"Done running ObSensorTest ...");
83 zsock_t* sub = zsock_new_sub(
">tcp://localhost:10001",
"");
86 while (!zsys_interrupted) {
87 zmsg_t* msg = zmsg_recv(sub);
91 char* sub_str = zmsg_popstr(msg);
92 char* cluster = zmsg_popstr(msg);
93 char* host = zmsg_popstr(msg);
94 char* json_str = zmsg_popstr(msg);
96 logger->info(
"sub={} cluster={} host={} json={}\n", sub_str, cluster,host, json_str);
System Obmon sensor class.
Tesing Obmon sensor class.