1 #include <ObSensorGpu.h> 2 #include <ObSensorSystem.h> 3 #include <ObSensorTest.h> 5 #include <glibtop/cpu.h> 6 #include <spdlog/fmt/ostr.h> 7 #include <spdlog/sinks/stdout_color_sinks.h> 8 #include <spdlog/spdlog.h> 10 static std::shared_ptr<spdlog::logger> logger =
nullptr;
15 auto console = spdlog::stdout_color_mt(
"console");
16 logger = spdlog::get(
"console");
17 spdlog::set_level(spdlog::level::trace);
19 char *hostname = zsys_hostname();
21 zsock_t *writer = zsock_new_push(
"@tcp://127.0.0.1:5560");
23 assert(zsock_resolve(writer) != writer);
24 assert(streq(zsock_type_str(writer),
"PUSH"));
26 zsock_t *reader = zsock_new_pull(
">tcp://127.0.0.1:5560");
28 assert(zsock_resolve(reader) != reader);
29 assert(streq(zsock_type_str(reader),
"PULL"));
35 glibtop_get_cpu(&cpu1);
42 glibtop_get_cpu(&cpu2);
45 double cpu_usage =
static_cast<double>(cpu2.user - cpu1.user) /
46 (cpu2.total - cpu1.total) * 100;
48 logger->info(
"Sending 'cpu total : {:.2f}' ...", cpu_usage);
50 zstr_sendf(writer,
"cpu total : %.2f", cpu_usage);
51 zmsg_t *msg = zmsg_recv(reader);
53 char *
string = zmsg_popstr(msg);
54 logger->info(
"Received : '{}'",
string);
60 zsock_destroy(&writer);
61 zsock_destroy(&reader);
63 logger->info(
"Running ObSensorTest ...");
73 const int timeout = 1000;
75 zclock_sleep(timeout);
77 for (
int i = 0; i < 3; ++i) {
79 std::string json = s.json();
80 logger->info(
"json={}", json.data());
81 zclock_sleep(timeout);
84 logger->info(
"Done running ObSensorTest ...");
86 zsock_t *sub = zsock_new_sub(
">tcp://localhost:10001",
"");
89 while (!zsys_interrupted) {
94 char *sub_str = zmsg_popstr(msg);
95 char *cluster = zmsg_popstr(msg);
96 char *host = zmsg_popstr(msg);
97 char *json_str = zmsg_popstr(msg);
99 logger->info(
"sub={} cluster={} host={} json={}\n", sub_str, cluster, host,
System Obmon sensor class
Tesing Obmon sensor class