metrics/test/test.cpp
2025-04-09 22:42:21 +02:00

76 lines
1.7 KiB
C++

#include <iostream>
#include <string>
#include <atomic>
using namespace std;
#include "../lib/metrics.hpp"
using namespace marcelb;
int main() {
// atomic<int> a(0);
// a++;
// cout << a << endl;
Metrics<string> metrika;
cout << " access " << metrika["access"]++ << endl;
cout << " access " << metrika["access"]++ << endl;
cout << " error " << metrika["error"] << endl;
cout << " access " << metrika["access"] << endl;
// metrika.keys();
cout << " error " << metrika["error"] << endl;
cout << " access " << metrika["access"] << endl;
Metrics<uint32_t> metrika2;
enum keys {
access = 1,
error
};
cout << " access " << metrika2[keys::access]++ << endl;
cout << " access " << metrika2[keys::access]++ << endl;
cout << " error " << metrika2[keys::error] << endl;
cout << " access " << metrika2[keys::access] << endl;
// metrika2.keys();
cout << " error " << metrika2[keys::error] << endl;
cout << " access " << metrika2[keys::access] << endl;
// // init
// Metrics stats;
// // operator [] and increment ++
// stats["access"]++;
// // print couter access
// cout << stats["access"];
// // get counters names
// auto listCounterNames = stats.keys();
// // get all couters
// auto data = stats.get_data();
// // reset counters
// stats.clear();
// // set counters
// map<string, uint64_t> MyStats = {{"access", 3},{ "error", 0}};
// stats.set(MyStats);
// // get and clear all counters
auto dataWithClear = metrika.get_data_and_clear();
for (auto& [key, value] : dataWithClear) {
cout << "Log analitic " << key << ", value: " << value << endl;
}
return 0;
}