Added db stats in trace metadata

This commit is contained in:
emeric
2024-04-03 00:02:48 +02:00
parent 0acef3bfd4
commit 8438da9fde
6 changed files with 56 additions and 9 deletions
+25 -9
View File
@@ -69,6 +69,15 @@ namespace lms::core::tracing
_freeBuffers.push_back(&buffer);
LMS_LOG(UTILS, INFO, "TraceLogger: using " << _buffers.size() << " buffers. Buffer size = " << std::to_string(BufferSize) << ", entry size = " << sizeof(CompleteEventEntry) << ", entry count per buffer = " << Buffer::CompleteEventCount);
setMetadata("cpu_count", std::to_string(std::thread::hardware_concurrency()));
setMetadata("build_type",
#ifndef NDEBUG
"debug"
#else
"release"
#endif
);
}
bool TraceLogger::isLevelActive(Level level) const
@@ -203,15 +212,16 @@ namespace lms::core::tracing
os << std::endl;
os << "\t]," << std::endl;
os << "\t\"meta_registered_arg_count\" : " << getRegisteredArgCount() << ", " << std::endl;
os << "\t\"meta_cpu_count\" : " << std::thread::hardware_concurrency() << ", " << std::endl;
os << "\t\"meta_build_type\" : ";
#ifndef NDEBUG
os << "\"debug\"";
#else
os << "\"release\"";
#endif
os << std::endl;
{
std::scoped_lock lock{ _metadataMutex };
for (const auto& [metadata, value] : _metadata)
{
os << "\t\"meta_" << metadata << "\": \"";
stringUtils::writeJsonEscapedString(os, value);
os << "\"," << std::endl;
}
}
os << "\t\"meta_registered_arg_count\" : " << getRegisteredArgCount() << std::endl;
os << "}" << std::endl;
}
@@ -262,6 +272,12 @@ namespace lms::core::tracing
}
}
void TraceLogger::setMetadata(std::string_view metadata, std::string_view value)
{
const std::scoped_lock lock{ _metadataMutex };
_metadata[std::string{ metadata }] = value;
}
std::size_t TraceLogger::getRegisteredArgCount() const
{
const std::shared_lock lock{ _argMutex };
+6
View File
@@ -21,6 +21,7 @@
#include <array>
#include <deque>
#include <map>
#include <mutex>
#include <shared_mutex>
#include <thread>
@@ -44,6 +45,8 @@ namespace lms::core::tracing
void dumpCurrentBuffer(std::ostream& os) override;
void setThreadName(std::thread::id id, std::string_view threadName) override;
ArgHashType registerArg(LiteralString argType, std::string_view argValue) override;
void setMetadata(std::string_view metadata, std::string_view value) override;
std::size_t getRegisteredArgCount() const;
static ArgHashType computeArgHash(LiteralString type, std::string_view value);
@@ -92,6 +95,9 @@ namespace lms::core::tracing
std::mutex _threadNameMutex;
std::unordered_map<std::thread::id, std::string> _threadNames;
std::mutex _metadataMutex;
std::map<std::string, std::string> _metadata;
std::mutex _mutex;
std::deque<Buffer*> _freeBuffers;