From c6ae3fe3fa3ddd5df92b3ba58717614d0387ba38 Mon Sep 17 00:00:00 2001 From: emeric Date: Sun, 10 Mar 2024 12:21:01 +0100 Subject: [PATCH] Renamed profiling to tracing --- ...ofilercontroller.xml => admin-tracing.xml} | 4 +- approot/main.xml | 2 +- approot/messages.xml | 10 ++-- approot/messages_fr.xml | 10 ++-- approot/messages_it.xml | 10 ++-- approot/messages_zh.xml | 8 ++-- conf/lms.conf | 10 ++-- src/libs/database/impl/Session.cpp | 6 +-- src/libs/database/impl/Utils.hpp | 6 +-- .../database/include/database/Session.hpp | 6 +-- src/libs/metadata/impl/TagLibTagReader.cpp | 4 +- .../scanner/impl/ScanStepScanFiles.cpp | 10 ++-- src/libs/subsonic/impl/SubsonicResource.cpp | 10 ++-- src/libs/subsonic/impl/responses/Album.cpp | 4 +- src/libs/subsonic/impl/responses/Artist.cpp | 4 +- src/libs/subsonic/impl/responses/Song.cpp | 4 +- src/libs/utils/CMakeLists.txt | 2 +- src/libs/utils/bench/CMakeLists.txt | 2 +- ...ProfilerBench.cpp => TraceLoggerBench.cpp} | 18 ++++---- src/libs/utils/impl/IOContextRunner.cpp | 6 +-- .../impl/{Profiler.cpp => TraceLogger.cpp} | 46 ++++++++++--------- .../impl/{Profiler.hpp => TraceLogger.hpp} | 8 ++-- src/libs/utils/impl/http/SendQueue.cpp | 6 +-- .../utils/{IProfiler.hpp => ITraceLogger.hpp} | 44 +++++++++--------- src/libs/utils/test/CMakeLists.txt | 2 +- .../test/{Profiler.cpp => TraceLogger.cpp} | 14 +++--- src/lms/CMakeLists.txt | 2 +- src/lms/main.cpp | 25 +++++----- src/lms/ui/LmsApplication.cpp | 26 +++++------ ...ProfilerController.cpp => TracingView.cpp} | 24 +++++----- ...ProfilerController.hpp => TracingView.hpp} | 4 +- src/lms/ui/resource/AudioFileResource.cpp | 4 +- src/lms/ui/resource/CoverResource.cpp | 4 +- 33 files changed, 173 insertions(+), 172 deletions(-) rename approot/{admin-profilercontroller.xml => admin-tracing.xml} (67%) rename src/libs/utils/bench/{ProfilerBench.cpp => TraceLoggerBench.cpp} (64%) rename src/libs/utils/impl/{Profiler.cpp => TraceLogger.cpp} (76%) rename src/libs/utils/impl/{Profiler.hpp => TraceLogger.hpp} (92%) rename src/libs/utils/include/utils/{IProfiler.hpp => ITraceLogger.hpp} (61%) rename src/libs/utils/test/{Profiler.cpp => TraceLogger.cpp} (74%) rename src/lms/ui/admin/{ProfilerController.cpp => TracingView.cpp} (71%) rename src/lms/ui/admin/{ProfilerController.hpp => TracingView.hpp} (90%) diff --git a/approot/admin-profilercontroller.xml b/approot/admin-tracing.xml similarity index 67% rename from approot/admin-profilercontroller.xml rename to approot/admin-tracing.xml index 0467e410..eeb1ad43 100644 --- a/approot/admin-profilercontroller.xml +++ b/approot/admin-tracing.xml @@ -1,9 +1,9 @@ - +
- ${tr:Lms.Admin.ProfilerController.profiler} + ${tr:Lms.Admin.Tracing.tracing}
${export-btn class="btn btn-primary"} diff --git a/approot/main.xml b/approot/main.xml index 8d63c533..aad114b9 100644 --- a/approot/main.xml +++ b/approot/main.xml @@ -49,7 +49,7 @@
  • ${scan-settings class="dropdown-item"}
  • ${scanner class="dropdown-item"}
  • ${users class="dropdown-item"}
  • -
  • ${profiler class="dropdown-item"}
  • +
  • ${tracing class="dropdown-item"}
  • ${} diff --git a/approot/messages.xml b/approot/messages.xml index 51441308..e78a91e9 100644 --- a/approot/messages.xml +++ b/approot/messages.xml @@ -45,9 +45,9 @@ Libraries - Profiler Scan settings Scanner + Tracing Users @@ -64,10 +64,6 @@ Path must be an existing directory Root directory - -Export profiling data -Profiler - Delimiter to be used for splitting artist tags Daily @@ -118,6 +114,10 @@ Scanning files: {1}/{2} files ({3}%)... Step status + +Export traces +Tracing + New user Admin diff --git a/approot/messages_fr.xml b/approot/messages_fr.xml index 1ec396db..b0627408 100644 --- a/approot/messages_fr.xml +++ b/approot/messages_fr.xml @@ -45,9 +45,9 @@ Bibliothèques - Profileur Paramètres du scan Scanner + Traces Utilisateurs @@ -64,10 +64,6 @@ Le chemin doit référencer un répertoire existant Répertoire racine - -Exporter les données de profilage -Profileur - Délimiteur à utiliser pour séparer les tags d'artistes Tous les jours @@ -118,6 +114,10 @@ Scan des fichiers : {1}/{2} fichiers ({3}%)... Statut de l'étape + +Exporter les traces +Traces + Ajouter Admin diff --git a/approot/messages_it.xml b/approot/messages_it.xml index a8f164b2..aa675ec5 100644 --- a/approot/messages_it.xml +++ b/approot/messages_it.xml @@ -45,9 +45,9 @@ Librerie - Profilatore Impostazioni di scansione Scanner + Tracing Utenti @@ -64,10 +64,6 @@ Il percorso deve essere una directory esistente Cartella principale - -Esporta dati di profilazione -Profilatore - Delimitatore da utilizzare per separare i tag degli artisti Giornaliera @@ -118,6 +114,10 @@ Scansione files: {1}/{2} files ({3}%)... Stato passo + +Esporta tracce +Tracing + Nuovo utente Amministratore diff --git a/approot/messages_zh.xml b/approot/messages_zh.xml index 00e2d059..3a89f689 100644 --- a/approot/messages_zh.xml +++ b/approot/messages_zh.xml @@ -64,10 +64,6 @@ - - - - 每日 @@ -118,6 +114,10 @@ 扫描文件中: {1}/{2} 个文件 ({3}%)... 当前步骤状态 + + + + 新建用户 管理员 diff --git a/conf/lms.conf b/conf/lms.conf index 5823be3a..58d89bbb 100644 --- a/conf/lms.conf +++ b/conf/lms.conf @@ -93,12 +93,12 @@ artist-image-file-names = ("artist"); # Playqueue max entry count playqueue-max-entry-count = 1000; -# Internal profiling, enable only if necessary as it brings some runtime overhead! +# Internal tracing for profiling purposes. Enable only if necessary, as it incurs some runtime overhead! # Possible values are "disabled", "overview" or "detailed". -# If enabled, profiling information has to be dumped in the profiler view located in the admin menu -profiling-level = "disabled"; -# The profiling buffer size, in MBytes (min is 16) -profiling-buffer-size = 16; +# If enabled, data has to be dumped in the tracing view located in the admin menu +tracing-level = "disabled"; +# The tracing buffer size, in MBytes (min is 16) +tracing-buffer-size = 16; # Set to true if you want to hide duplicate tracks scanner-skip-duplicate-mbid = false; diff --git a/src/libs/database/impl/Session.cpp b/src/libs/database/impl/Session.cpp index 0eba00f5..9d977a27 100644 --- a/src/libs/database/impl/Session.cpp +++ b/src/libs/database/impl/Session.cpp @@ -23,7 +23,7 @@ #include "utils/Exception.hpp" #include "utils/ILogger.hpp" -#include "utils/IProfiler.hpp" +#include "utils/ITraceLogger.hpp" #include "database/Artist.hpp" #include "database/AuthToken.hpp" @@ -190,7 +190,7 @@ namespace Database void Session::analyze() { - LMS_SCOPED_PROFILE_DETAILED("Database", "Analyze"); + LMS_SCOPED_TRACE_DETAILED("Database", "Analyze"); LMS_LOG(DB, INFO, "Analyzing database..."); { auto transaction{ createWriteTransaction() }; @@ -201,7 +201,7 @@ namespace Database void Session::optimize() { - LMS_SCOPED_PROFILE_DETAILED("Database", "Optimize"); + LMS_SCOPED_TRACE_DETAILED("Database", "Optimize"); LMS_LOG(DB, INFO, "Optimizing database..."); { auto transaction{ createWriteTransaction() }; diff --git a/src/libs/database/impl/Utils.hpp b/src/libs/database/impl/Utils.hpp index 25041b91..29be679c 100644 --- a/src/libs/database/impl/Utils.hpp +++ b/src/libs/database/impl/Utils.hpp @@ -27,7 +27,7 @@ #include #include "database/Types.hpp" -#include "utils/IProfiler.hpp" +#include "utils/ITraceLogger.hpp" namespace Database::Utils { @@ -48,7 +48,7 @@ namespace Database::Utils template RangeResults execQuery(Query& query, std::optional range) { - LMS_SCOPED_PROFILE_DETAILED("Database", "ExecQueryRange"); + LMS_SCOPED_TRACE_DETAILED("Database", "ExecQueryRange"); RangeResults res; @@ -80,7 +80,7 @@ namespace Database::Utils for (const auto& res : query.resultList()) { - LMS_SCOPED_PROFILE_DETAILED("Database", "ExecQueryResult"); + LMS_SCOPED_TRACE_DETAILED("Database", "ExecQueryResult"); func(res); } } diff --git a/src/libs/database/include/database/Session.hpp b/src/libs/database/include/database/Session.hpp index 601e32d1..07edf49a 100644 --- a/src/libs/database/include/database/Session.hpp +++ b/src/libs/database/include/database/Session.hpp @@ -22,7 +22,7 @@ #include #include -#include "utils/IProfiler.hpp" +#include "utils/ITraceLogger.hpp" #include "utils/RecursiveSharedMutex.hpp" #include "database/Object.hpp" #include "database/TransactionChecker.hpp" @@ -42,7 +42,7 @@ namespace Database WriteTransaction& operator=(const WriteTransaction&) = delete; std::unique_lock _lock; - profiling::ScopedEvent _profilingEvent{ "Database", profiling::Level::Detailed, "WriteTransaction" }; // before actual transaction + tracing::ScopedTrace _trace{ "Database", tracing::Level::Detailed, "WriteTransaction" }; // before actual transaction Wt::Dbo::Transaction _transaction; }; @@ -58,7 +58,7 @@ namespace Database ReadTransaction(const ReadTransaction&) = delete; ReadTransaction& operator=(const ReadTransaction&) = delete; - profiling::ScopedEvent _profilingEvent{ "Database", profiling::Level::Detailed, "ReadTransaction" }; // before actual transaction + tracing::ScopedTrace _trace{ "Database", tracing::Level::Detailed, "ReadTransaction" }; // before actual transaction Wt::Dbo::Transaction _transaction; }; diff --git a/src/libs/metadata/impl/TagLibTagReader.cpp b/src/libs/metadata/impl/TagLibTagReader.cpp index 6096e575..f03e3321 100644 --- a/src/libs/metadata/impl/TagLibTagReader.cpp +++ b/src/libs/metadata/impl/TagLibTagReader.cpp @@ -35,7 +35,7 @@ #include "metadata/Exception.hpp" #include "utils/ILogger.hpp" -#include "utils/IProfiler.hpp" +#include "utils/ITraceLogger.hpp" #include "utils/String.hpp" namespace MetaData @@ -173,7 +173,7 @@ namespace MetaData TagLib::FileRef parseFile(const std::filesystem::path& p, ParserReadStyle parserReadStyle) { - LMS_SCOPED_PROFILE_DETAILED("MetaData", "TagLibParseFile"); + LMS_SCOPED_TRACE_DETAILED("MetaData", "TagLibParseFile"); return TagLib::FileRef{ p.string().c_str() , true // read audio properties diff --git a/src/libs/services/scanner/impl/ScanStepScanFiles.cpp b/src/libs/services/scanner/impl/ScanStepScanFiles.cpp index e52caa4f..54cc7b06 100644 --- a/src/libs/services/scanner/impl/ScanStepScanFiles.cpp +++ b/src/libs/services/scanner/impl/ScanStepScanFiles.cpp @@ -34,7 +34,7 @@ #include "utils/IConfig.hpp" #include "utils/ILogger.hpp" #include "utils/Path.hpp" -#include "utils/IProfiler.hpp" +#include "utils/ITraceLogger.hpp" namespace Scanner { @@ -257,7 +257,7 @@ namespace Scanner _scanContext.post([=, this] { - LMS_SCOPED_PROFILE_OVERVIEW("Scanner", "AudioFileParseJob"); + LMS_SCOPED_TRACE_OVERVIEW("Scanner", "AudioFileParseJob"); std::unique_ptr track; @@ -315,7 +315,7 @@ namespace Scanner void ScanStepScanFiles::MetadataScanQueue::wait(std::size_t maxScanRequestCount) { - LMS_SCOPED_PROFILE_OVERVIEW("Scanner", "WaitParseResults"); + LMS_SCOPED_TRACE_OVERVIEW("Scanner", "WaitParseResults"); std::unique_lock lock{ _mutex }; _condVar.wait(lock, [=, this] { return _ongoingScanCount <= maxScanRequestCount; }); @@ -349,7 +349,7 @@ namespace Scanner { PathUtils::exploreFilesRecursive(mediaLibrary.rootDirectory, [&](std::error_code ec, const std::filesystem::path& path) { - LMS_SCOPED_PROFILE_DETAILED("Scanner", "OnExploreFile"); + LMS_SCOPED_TRACE_DETAILED("Scanner", "OnExploreFile"); if (_abortScan) return false; @@ -444,7 +444,7 @@ namespace Scanner void ScanStepScanFiles::processMetaDataScanResults(ScanContext& context, std::span scanResults, const ScannerSettings::MediaLibraryInfo& libraryInfo) { - LMS_SCOPED_PROFILE_OVERVIEW("Scanner", "ProcessScanResults"); + LMS_SCOPED_TRACE_OVERVIEW("Scanner", "ProcessScanResults"); Database::Session& dbSession{ _db.getTLSSession() }; auto transaction{ dbSession.createWriteTransaction() }; diff --git a/src/libs/subsonic/impl/SubsonicResource.cpp b/src/libs/subsonic/impl/SubsonicResource.cpp index b9333208..0f2e23b2 100644 --- a/src/libs/subsonic/impl/SubsonicResource.cpp +++ b/src/libs/subsonic/impl/SubsonicResource.cpp @@ -31,7 +31,7 @@ #include "utils/LiteralString.hpp" #include "utils/IConfig.hpp" #include "utils/ILogger.hpp" -#include "utils/IProfiler.hpp" +#include "utils/ITraceLogger.hpp" #include "utils/Service.hpp" #include "utils/String.hpp" #include "utils/Utils.hpp" @@ -311,7 +311,7 @@ namespace API::Subsonic auto itEntryPoint{ requestEntryPoints.find(requestPath) }; if (itEntryPoint != requestEntryPoints.end()) { - LMS_SCOPED_PROFILE_OVERVIEW("Subsonic", itEntryPoint->first); + LMS_SCOPED_TRACE_OVERVIEW("Subsonic", itEntryPoint->first); if (itEntryPoint->second.checkFunc) itEntryPoint->second.checkFunc(); @@ -319,12 +319,12 @@ namespace API::Subsonic checkUserTypeIsAllowed(requestContext, itEntryPoint->second.allowedUserTypes); const Response resp{ [&] { - LMS_SCOPED_PROFILE_DETAILED("Subsonic", "HandleRequest"); + LMS_SCOPED_TRACE_DETAILED("Subsonic", "HandleRequest"); return itEntryPoint->second.func(requestContext); }()}; { - LMS_SCOPED_PROFILE_DETAILED("Subsonic", "WriteResponse"); + LMS_SCOPED_TRACE_DETAILED("Subsonic", "WriteResponse"); resp.write(response.out(), format); response.setMimeType(std::string{ ResponseFormatToMimeType(format) }); @@ -337,7 +337,7 @@ namespace API::Subsonic auto itStreamHandler{ mediaRetrievalHandlers.find(requestPath) }; if (itStreamHandler != mediaRetrievalHandlers.end()) { - LMS_SCOPED_PROFILE_OVERVIEW("Subsonic", itStreamHandler->first); + LMS_SCOPED_TRACE_OVERVIEW("Subsonic", itStreamHandler->first); itStreamHandler->second(requestContext, request, response); LMS_LOG(API_SUBSONIC, DEBUG, "Request " << requestId << " '" << requestPath << "' handled!"); diff --git a/src/libs/subsonic/impl/responses/Album.cpp b/src/libs/subsonic/impl/responses/Album.cpp index 1a1f1b10..fc97fb47 100644 --- a/src/libs/subsonic/impl/responses/Album.cpp +++ b/src/libs/subsonic/impl/responses/Album.cpp @@ -25,7 +25,7 @@ #include "database/User.hpp" #include "services/feedback/IFeedbackService.hpp" #include "services/scrobbling/IScrobblingService.hpp" -#include "utils/IProfiler.hpp" +#include "utils/ITraceLogger.hpp" #include "utils/Service.hpp" #include "utils/String.hpp" @@ -41,7 +41,7 @@ namespace API::Subsonic Response::Node createAlbumNode(RequestContext& context, const Release::pointer& release, const User::pointer& user, bool id3) { - LMS_SCOPED_PROFILE_DETAILED("Subsonic", "CreateAlbum"); + LMS_SCOPED_TRACE_DETAILED("Subsonic", "CreateAlbum"); Response::Node albumNode; diff --git a/src/libs/subsonic/impl/responses/Artist.cpp b/src/libs/subsonic/impl/responses/Artist.cpp index bee9631c..68cbfea3 100644 --- a/src/libs/subsonic/impl/responses/Artist.cpp +++ b/src/libs/subsonic/impl/responses/Artist.cpp @@ -24,7 +24,7 @@ #include "database/TrackArtistLink.hpp" #include "database/User.hpp" #include "services/feedback/IFeedbackService.hpp" -#include "utils/IProfiler.hpp" +#include "utils/ITraceLogger.hpp" #include "utils/Service.hpp" #include "utils/String.hpp" @@ -76,7 +76,7 @@ namespace API::Subsonic Response::Node createArtistNode(RequestContext& context, const Artist::pointer& artist, const User::pointer& user, bool id3) { - LMS_SCOPED_PROFILE_DETAILED("Subsonic", "CreateArtist"); + LMS_SCOPED_TRACE_DETAILED("Subsonic", "CreateArtist"); Response::Node artistNode{ createArtistNode(artist) }; diff --git a/src/libs/subsonic/impl/responses/Song.cpp b/src/libs/subsonic/impl/responses/Song.cpp index e06d4820..807d9130 100644 --- a/src/libs/subsonic/impl/responses/Song.cpp +++ b/src/libs/subsonic/impl/responses/Song.cpp @@ -30,7 +30,7 @@ #include "database/User.hpp" #include "services/feedback/IFeedbackService.hpp" #include "services/scrobbling/IScrobblingService.hpp" -#include "utils/IProfiler.hpp" +#include "utils/ITraceLogger.hpp" #include "utils/Service.hpp" #include "utils/String.hpp" #include "responses/Artist.hpp" @@ -97,7 +97,7 @@ namespace API::Subsonic Response::Node createSongNode(RequestContext& context, const Track::pointer& track, const User::pointer& user) { - LMS_SCOPED_PROFILE_DETAILED("Subsonic", "CreateSong"); + LMS_SCOPED_TRACE_DETAILED("Subsonic", "CreateSong"); Response::Node trackResponse; diff --git a/src/libs/utils/CMakeLists.txt b/src/libs/utils/CMakeLists.txt index 69cacb0a..7d00aaa1 100644 --- a/src/libs/utils/CMakeLists.txt +++ b/src/libs/utils/CMakeLists.txt @@ -10,11 +10,11 @@ add_library(lmsutils SHARED impl/Logger.cpp impl/NetAddress.cpp impl/Path.cpp - impl/Profiler.cpp impl/Random.cpp impl/RecursiveSharedMutex.cpp impl/StreamLogger.cpp impl/String.cpp + impl/TraceLogger.cpp impl/UUID.cpp impl/WtLogger.cpp ) diff --git a/src/libs/utils/bench/CMakeLists.txt b/src/libs/utils/bench/CMakeLists.txt index 8f1361c1..f8326be4 100644 --- a/src/libs/utils/bench/CMakeLists.txt +++ b/src/libs/utils/bench/CMakeLists.txt @@ -1,6 +1,6 @@ add_executable(bench-utils - ProfilerBench.cpp + TraceLoggerBench.cpp ) target_link_libraries(bench-utils PRIVATE diff --git a/src/libs/utils/bench/ProfilerBench.cpp b/src/libs/utils/bench/TraceLoggerBench.cpp similarity index 64% rename from src/libs/utils/bench/ProfilerBench.cpp rename to src/libs/utils/bench/TraceLoggerBench.cpp index d8bde857..68cf20f3 100644 --- a/src/libs/utils/bench/ProfilerBench.cpp +++ b/src/libs/utils/bench/TraceLoggerBench.cpp @@ -22,32 +22,32 @@ #include #include "utils/ILogger.hpp" -#include "utils/IProfiler.hpp" +#include "utils/ITraceLogger.hpp" #include "utils/StreamLogger.hpp" -// Profiler is meant to built/destroyed once +// The trace logger is meant to built/destroyed once Service logger{ std::make_unique(std::cout, StreamLogger::allSeverities) }; -Service profiler{ profiling::createProfiler(::profiling::Level::Overview) }; +Service traceLogger{ tracing::createTraceLogger(::tracing::Level::Overview) }; -static void BM_Profiler_Overview(benchmark::State& state) +static void BM_TraceLogger_Overview(benchmark::State& state) { for (auto _ : state) { - LMS_SCOPED_PROFILE_OVERVIEW("Cat", "Test"); + LMS_SCOPED_TRACE_OVERVIEW("Cat", "Test"); } } -static void BM_Profiler_Detailed(benchmark::State& state) +static void BM_TraceLogger_Detailed(benchmark::State& state) { for (auto _ : state) { // Should do nothing - LMS_SCOPED_PROFILE_DETAILED("Cat", "Test"); + LMS_SCOPED_TRACE_DETAILED("Cat", "Test"); } } -BENCHMARK(BM_Profiler_Overview)->Threads(1)->Threads(std::thread::hardware_concurrency()); -BENCHMARK(BM_Profiler_Detailed)->Threads(1)->Threads(std::thread::hardware_concurrency()); +BENCHMARK(BM_TraceLogger_Overview)->Threads(1)->Threads(std::thread::hardware_concurrency()); +BENCHMARK(BM_TraceLogger_Detailed)->Threads(1)->Threads(std::thread::hardware_concurrency()); BENCHMARK_MAIN(); \ No newline at end of file diff --git a/src/libs/utils/impl/IOContextRunner.cpp b/src/libs/utils/impl/IOContextRunner.cpp index 3814eb1a..15199bee 100644 --- a/src/libs/utils/impl/IOContextRunner.cpp +++ b/src/libs/utils/impl/IOContextRunner.cpp @@ -22,7 +22,7 @@ #include #include "utils/ILogger.hpp" -#include "utils/IProfiler.hpp" +#include "utils/ITraceLogger.hpp" IOContextRunner::IOContextRunner(boost::asio::io_service& ioService, std::size_t threadCount, std::string_view name) : _ioService{ ioService } @@ -43,8 +43,8 @@ IOContextRunner::IOContextRunner(boost::asio::io_service& ioService, std::size_t { if (!threadName.empty()) { - if (auto * profiler{ Service::get() }) - profiler->setThreadName(std::this_thread::get_id(), threadName); + if (auto * traceLogger{ Service::get() }) + traceLogger->setThreadName(std::this_thread::get_id(), threadName); } try diff --git a/src/libs/utils/impl/Profiler.cpp b/src/libs/utils/impl/TraceLogger.cpp similarity index 76% rename from src/libs/utils/impl/Profiler.cpp rename to src/libs/utils/impl/TraceLogger.cpp index 2849290e..4cde78c5 100644 --- a/src/libs/utils/impl/Profiler.cpp +++ b/src/libs/utils/impl/TraceLogger.cpp @@ -17,7 +17,7 @@ * along with LMS. If not, see . */ -#include "Profiler.hpp" +#include "TraceLogger.hpp" #include #include @@ -25,58 +25,58 @@ #include "utils/Exception.hpp" #include "utils/ILogger.hpp" -namespace profiling +namespace tracing { namespace { class CurrentThreadUnregisterer { public: - CurrentThreadUnregisterer(Profiler* profiler) : _profiler{ profiler } {} + CurrentThreadUnregisterer(TraceLogger* logger) : _logger{ logger } {} ~CurrentThreadUnregisterer() { - if (_profiler) - _profiler->onThreadPreDestroy(); + if (_logger) + _logger->onThreadPreDestroy(); } private: CurrentThreadUnregisterer(const CurrentThreadUnregisterer&) = delete; CurrentThreadUnregisterer& operator=(const CurrentThreadUnregisterer&) = delete; - Profiler* _profiler; + TraceLogger* _logger; }; } - thread_local Profiler::Buffer* Profiler::_currentBuffer{}; + thread_local TraceLogger::Buffer* TraceLogger::_currentBuffer{}; - std::unique_ptr createProfiler(Level minLevel, std::size_t bufferSizeInMbytes) + std::unique_ptr createTraceLogger(Level minLevel, std::size_t bufferSizeInMbytes) { - return std::make_unique(minLevel, bufferSizeInMbytes); + return std::make_unique(minLevel, bufferSizeInMbytes); } - Profiler::Profiler(Level minLevel, std::size_t bufferSizeinMBytes) + TraceLogger::TraceLogger(Level minLevel, std::size_t bufferSizeinMBytes) : _minLevel{ minLevel } , _start{ clock::now() } , _creatorThreadId{ std::this_thread::get_id() } , _buffers((bufferSizeinMBytes * 1024 * 1024) / BufferSize) { if (bufferSizeinMBytes < MinBufferSizeInMBytes) - throw LmsException{ "Profiler must be configured with at least " + std::to_string(MinBufferSizeInMBytes) + " MBytes" }; + throw LmsException{ "TraceLogger must be configured with at least " + std::to_string(MinBufferSizeInMBytes) + " MBytes" }; setThreadName(_creatorThreadId, "MainThread"); for (Buffer& buffer : _buffers) _freeBuffers.push_back(&buffer); - LMS_LOG(UTILS, INFO, "Profiler: using " << _buffers.size() << " buffers. Buffer size = " << std::to_string(BufferSize)); + LMS_LOG(UTILS, INFO, "TraceLogger: using " << _buffers.size() << " buffers. Buffer size = " << std::to_string(BufferSize)); } - bool Profiler::isLevelActive(Level level) const + bool TraceLogger::isLevelActive(Level level) const { return static_cast>(level) <= static_cast>(_minLevel); } - void Profiler::write(const CompleteEvent& event) + void TraceLogger::write(const CompleteEvent& event) { if (!_currentBuffer) _currentBuffer = acquireBuffer(); @@ -91,21 +91,21 @@ namespace profiling } } - void Profiler::onThreadPreDestroy() + void TraceLogger::onThreadPreDestroy() { if (_currentBuffer) releaseBuffer(_currentBuffer); } - Profiler::Buffer* Profiler::acquireBuffer() + TraceLogger::Buffer* TraceLogger::acquireBuffer() { - // We consider the creator thread will survive the profiler (thus we don't want to release anything on thread destruction) + // We consider the creator thread will survive the trace logger (thus we don't want to release anything on thread destruction) static thread_local CurrentThreadUnregisterer currentThreadUnregister{ _creatorThreadId == std::this_thread::get_id() ? nullptr : this }; std::scoped_lock lock{ _mutex }; assert(!_freeBuffers.empty()); - Profiler::Buffer* buffer{ _freeBuffers.front() }; + TraceLogger::Buffer* buffer{ _freeBuffers.front() }; _freeBuffers.pop_front(); // Empty new buffer only now (we want to keep history on released buffers since we dump them) @@ -113,7 +113,7 @@ namespace profiling return buffer; } - void Profiler::releaseBuffer(Buffer* buffer) + void TraceLogger::releaseBuffer(Buffer* buffer) { assert(buffer); @@ -121,7 +121,7 @@ namespace profiling _freeBuffers.push_back(buffer); } - void Profiler::dumpCurrentBuffer(std::ostream& os) + void TraceLogger::dumpCurrentBuffer(std::ostream& os) { os << "{" << std::endl; os << "\t\"traceEvents\": [" << std::endl; @@ -154,10 +154,12 @@ namespace profiling for (Buffer& buffer : _buffers) { - // Looks like tracing viewer is not pleased when nested event start at the same timestamp for (std::size_t i{}; i < buffer.currentDurationIndex; ++i) { + // Looks like tracing viewer is not pleased when nested event start at the same timestamp + // Hence the double representation as the microsecond unit is not precise enough using clockMicro = std::chrono::duration; + const CompleteEvent& event{ buffer.durationEvents[i] }; if (first) @@ -184,7 +186,7 @@ namespace profiling os << "}" << std::endl; } - void Profiler::setThreadName(std::thread::id id, std::string_view threadName) + void TraceLogger::setThreadName(std::thread::id id, std::string_view threadName) { std::scoped_lock lock{ _threadNameMutex }; _threadNames.emplace(id, threadName); diff --git a/src/libs/utils/impl/Profiler.hpp b/src/libs/utils/impl/TraceLogger.hpp similarity index 92% rename from src/libs/utils/impl/Profiler.hpp rename to src/libs/utils/impl/TraceLogger.hpp index b8b4fdc2..c786f282 100644 --- a/src/libs/utils/impl/Profiler.hpp +++ b/src/libs/utils/impl/TraceLogger.hpp @@ -26,14 +26,14 @@ #include #include -#include "utils/IProfiler.hpp" +#include "utils/ITraceLogger.hpp" -namespace profiling +namespace tracing { - class Profiler : public IProfiler + class TraceLogger : public ITraceLogger { public: - Profiler(Level minLevel, std::size_t bufferSizeinMBytes); + TraceLogger(Level minLevel, std::size_t bufferSizeinMBytes); void onThreadPreDestroy(); diff --git a/src/libs/utils/impl/http/SendQueue.cpp b/src/libs/utils/impl/http/SendQueue.cpp index b5880d2e..4c5ccee2 100644 --- a/src/libs/utils/impl/http/SendQueue.cpp +++ b/src/libs/utils/impl/http/SendQueue.cpp @@ -24,7 +24,7 @@ #include "utils/Exception.hpp" #include "utils/ILogger.hpp" -#include "utils/IProfiler.hpp" +#include "utils/ITraceLogger.hpp" #include "utils/String.hpp" #define LOG(sev, message) LMS_LOG(SCROBBLING, sev, "[Http SendQueue] - " << message) @@ -118,7 +118,7 @@ namespace Http bool SendQueue::sendRequest(const ClientRequest& request) { - LMS_SCOPED_PROFILE_DETAILED("SendQueue", "SendRequest"); + LMS_SCOPED_TRACE_DETAILED("SendQueue", "SendRequest"); std::string url {_baseUrl + request.getParameters().relativeUrl}; LOG(DEBUG, "Sending request to url '" << url << "'"); @@ -144,7 +144,7 @@ namespace Http void SendQueue::onClientDone(Wt::AsioWrapper::error_code ec, const Wt::Http::Message& msg) { - LMS_SCOPED_PROFILE_DETAILED("SendQueue", "OnClientDone"); + LMS_SCOPED_TRACE_DETAILED("SendQueue", "OnClientDone"); if (ec == boost::asio::error::operation_aborted) { diff --git a/src/libs/utils/include/utils/IProfiler.hpp b/src/libs/utils/include/utils/ITraceLogger.hpp similarity index 61% rename from src/libs/utils/include/utils/IProfiler.hpp rename to src/libs/utils/include/utils/ITraceLogger.hpp index 35cd3d12..ea3a1f4a 100644 --- a/src/libs/utils/include/utils/IProfiler.hpp +++ b/src/libs/utils/include/utils/ITraceLogger.hpp @@ -28,22 +28,22 @@ #include "LiteralString.hpp" #include "Service.hpp" -#define LMS_ENABLE_PROFILING 1 +#define LMS_SUPPORT_TRACING 1 #define LMS_CONCAT_IMPL(x, y) x##y #define LMS_CONCAT(x, y) LMS_CONCAT_IMPL(x, y) -#if LMS_ENABLE_PROFILING -#define LMS_SCOPED_PROFILE(CATEGORY, LEVEL, NAME) ::profiling::ScopedEvent LMS_CONCAT(scopedEvent_, __LINE__){ CATEGORY, LEVEL, NAME } +#if LMS_SUPPORT_TRACING +#define LMS_SCOPED_TRACE(CATEGORY, LEVEL, NAME) ::tracing::ScopedTrace LMS_CONCAT(ScopedTrace_, __LINE__){ CATEGORY, LEVEL, NAME } #else -#define LMS_SCOPED_PROFILE(CATEGORY, LEVEL, NAME) (void)0 +#define LMS_SCOPED_TRACE(CATEGORY, LEVEL, NAME) (void)0 #endif -#define LMS_SCOPED_PROFILE_OVERVIEW(CATEGORY, NAME) LMS_SCOPED_PROFILE(CATEGORY, ::profiling::Level::Overview, NAME) -#define LMS_SCOPED_PROFILE_DETAILED(CATEGORY, NAME) LMS_SCOPED_PROFILE(CATEGORY, ::profiling::Level::Detailed, NAME) +#define LMS_SCOPED_TRACE_OVERVIEW(CATEGORY, NAME) LMS_SCOPED_TRACE(CATEGORY, ::tracing::Level::Overview, NAME) +#define LMS_SCOPED_TRACE_DETAILED(CATEGORY, NAME) LMS_SCOPED_TRACE(CATEGORY, ::tracing::Level::Detailed, NAME) -namespace profiling +namespace tracing { using clock = std::chrono::steady_clock; @@ -53,7 +53,7 @@ namespace profiling Detailed, }; - class IProfiler + class ITraceLogger { public: struct CompleteEvent @@ -65,7 +65,7 @@ namespace profiling LiteralString category; }; - virtual ~IProfiler() = default; + virtual ~ITraceLogger() = default; virtual bool isLevelActive(Level level) const = 0; virtual void write(const CompleteEvent& entry) = 0; @@ -74,16 +74,16 @@ namespace profiling }; static constexpr std::size_t MinBufferSizeInMBytes = 16; - std::unique_ptr createProfiler(Level minLevel = Level::Overview, std::size_t bufferSizeInMbytes = MinBufferSizeInMBytes); + std::unique_ptr createTraceLogger(Level minLevel = Level::Overview, std::size_t bufferSizeInMbytes = MinBufferSizeInMBytes); - class ScopedEvent + class ScopedTrace { public: - ScopedEvent(LiteralString category, Level level, LiteralString name, IProfiler* profiler = Service::get()) + ScopedTrace(LiteralString category, Level level, LiteralString name, ITraceLogger* traceLogger = Service::get()) { - if (profiler && profiler->isLevelActive(level)) + if (traceLogger && traceLogger->isLevelActive(level)) { - _profiler = profiler; + _traceLogger = traceLogger; _event.start = clock::now(); _event.threadId = std::this_thread::get_id(); @@ -92,24 +92,24 @@ namespace profiling } else { - _profiler = nullptr; + _traceLogger = nullptr; } } - ~ScopedEvent() + ~ScopedTrace() { - if (_profiler) + if (_traceLogger) { _event.duration = clock::now() - _event.start; - _profiler->write(_event); + _traceLogger->write(_event); } } private: - ScopedEvent(const ScopedEvent&) = delete; - ScopedEvent& operator=(const ScopedEvent&) = delete; + ScopedTrace(const ScopedTrace&) = delete; + ScopedTrace& operator=(const ScopedTrace&) = delete; - IProfiler* _profiler; - IProfiler::CompleteEvent _event; + ITraceLogger* _traceLogger; + ITraceLogger::CompleteEvent _event; }; } \ No newline at end of file diff --git a/src/libs/utils/test/CMakeLists.txt b/src/libs/utils/test/CMakeLists.txt index b8762ad8..b6d2012e 100644 --- a/src/libs/utils/test/CMakeLists.txt +++ b/src/libs/utils/test/CMakeLists.txt @@ -4,9 +4,9 @@ add_executable(test-utils EnumSet.cpp LiteralString.cpp Path.cpp - Profiler.cpp RecursiveSharedMutex.cpp String.cpp + TraceLogger.cpp Utils.cpp ) diff --git a/src/libs/utils/test/Profiler.cpp b/src/libs/utils/test/TraceLogger.cpp similarity index 74% rename from src/libs/utils/test/Profiler.cpp rename to src/libs/utils/test/TraceLogger.cpp index 45e02eed..f6aca813 100644 --- a/src/libs/utils/test/Profiler.cpp +++ b/src/libs/utils/test/TraceLogger.cpp @@ -21,22 +21,22 @@ #include #include -#include "utils/IProfiler.hpp" +#include "utils/ITraceLogger.hpp" -namespace profiling::tests +namespace tracing::tests { // not much can be tested with this implementation - TEST(Profiler, MultipleThreads) + TEST(TraceLogger, MultipleThreads) { - auto profiler{ createProfiler(Level::Overview) }; + auto traceLogger{ createTraceLogger(Level::Overview) }; std::vector threads; for (std::size_t i{}; i < 16; ++i) { threads.emplace_back([&] { - ScopedEvent loggedEvent{ "MyCategory", Level::Overview, "MyEventLogged", profiler.get() }; - ScopedEvent notLoggedEvent{ "MyCategory", Level::Detailed, "MyEventNotLogged", profiler.get() }; + ScopedTrace loggedEvent{ "MyCategory", Level::Overview, "MyEventLogged", traceLogger.get() }; + ScopedTrace notLoggedEvent{ "MyCategory", Level::Detailed, "MyEventNotLogged", traceLogger.get() }; }); } @@ -44,7 +44,7 @@ namespace profiling::tests t.join(); std::ostringstream oss; - profiler->dumpCurrentBuffer(oss); + traceLogger->dumpCurrentBuffer(oss); EXPECT_NE(oss.str().find("MyEventLogged"), std::string::npos); EXPECT_EQ(oss.str().find("MyEventNotLogged"), std::string::npos); diff --git a/src/lms/CMakeLists.txt b/src/lms/CMakeLists.txt index 2154e399..6b926f17 100644 --- a/src/lms/CMakeLists.txt +++ b/src/lms/CMakeLists.txt @@ -14,7 +14,7 @@ add_executable(lms ui/admin/InitWizardView.cpp ui/admin/MediaLibrariesView.cpp ui/admin/MediaLibraryModal.cpp - ui/admin/ProfilerController.cpp + ui/admin/TracingView.cpp ui/admin/ScannerController.cpp ui/admin/ScanSettingsView.cpp ui/admin/UserView.cpp diff --git a/src/lms/main.cpp b/src/lms/main.cpp index ef20d249..f1bc70cc 100644 --- a/src/lms/main.cpp +++ b/src/lms/main.cpp @@ -43,7 +43,7 @@ #include "utils/IChildProcessManager.hpp" #include "utils/IConfig.hpp" #include "utils/IOContextRunner.hpp" -#include "utils/IProfiler.hpp" +#include "utils/ITraceLogger.hpp" #include "utils/Service.hpp" #include "utils/String.hpp" #include "utils/WtLogger.hpp" @@ -76,18 +76,18 @@ namespace throw LmsException{ "Invalid config value for 'log-min-severity'" }; } - std::optional getProfilingLevel() + std::optional getTracingLevel() { - std::string_view profilingLevel{ Service::get()->getString("profiling-level", "disabled") }; + std::string_view tracingLevel{ Service::get()->getString("tracing-level", "disabled") }; - if (profilingLevel == "disabled") + if (tracingLevel == "disabled") return std::nullopt; - else if (profilingLevel == "overview") - return profiling::Level::Overview; - else if (profilingLevel == "detailed") - return profiling::Level::Detailed; + else if (tracingLevel == "overview") + return tracing::Level::Overview; + else if (tracingLevel == "detailed") + return tracing::Level::Detailed; - throw LmsException{ "Invalid config value for 'profiling-level'" }; + throw LmsException{ "Invalid config value for 'tracing-level'" }; } std::vector generateWtConfig(std::string execPath, Severity minSeverity) @@ -248,9 +248,9 @@ int main(int argc, char* argv[]) Service config{ createConfig(configFilePath) }; const Severity minLogSeverity{getLogMinSeverity()}; Service logger{ std::make_unique(minLogSeverity) }; - std::optional> profiler; - if (const auto level{ getProfilingLevel() }) - profiler.emplace(profiling::createProfiler(level.value(), config->getULong("profiling-buffer-size", profiling::MinBufferSizeInMBytes))); + std::optional> traceLogger; + if (const auto level{ getTracingLevel() }) + traceLogger.emplace(tracing::createTraceLogger(level.value(), config->getULong("tracing-buffer-size", tracing::MinBufferSizeInMBytes))); // use system locale. libarchive relies on this to write filenames if (char* locale{ ::setlocale(LC_ALL, "") }) @@ -261,7 +261,6 @@ int main(int argc, char* argv[]) // Make sure the working directory exists std::filesystem::create_directories(config->getPath("working-dir")); std::filesystem::create_directories(config->getPath("working-dir") / "cache"); - std::filesystem::create_directories(config->getPath("working-dir") / "profiling"); // Construct WT configuration and get the argc/argv back const std::vector wtServerArgs{ generateWtConfig(argv[0], minLogSeverity) }; diff --git a/src/lms/ui/LmsApplication.cpp b/src/lms/ui/LmsApplication.cpp index 735341d5..e9704765 100644 --- a/src/lms/ui/LmsApplication.cpp +++ b/src/lms/ui/LmsApplication.cpp @@ -38,13 +38,13 @@ #include "database/User.hpp" #include "services/scrobbling/IScrobblingService.hpp" #include "utils/ILogger.hpp" -#include "utils/IProfiler.hpp" +#include "utils/ITraceLogger.hpp" #include "utils/Service.hpp" #include "utils/String.hpp" #include "admin/InitWizardView.hpp" #include "admin/MediaLibrariesView.hpp" -#include "admin/ProfilerController.hpp" +#include "admin/TracingView.hpp" #include "admin/ScannerController.hpp" #include "admin/ScanSettingsView.hpp" #include "admin/UserView.hpp" @@ -79,9 +79,9 @@ namespace UserInterface res->use(appRoot + "admin-initwizard"); res->use(appRoot + "admin-medialibraries"); res->use(appRoot + "admin-medialibrary"); - res->use(appRoot + "admin-profilercontroller"); res->use(appRoot + "admin-scannercontroller"); res->use(appRoot + "admin-scansettings"); + res->use(appRoot + "admin-tracing"); res->use(appRoot + "admin-user"); res->use(appRoot + "admin-users"); res->use(appRoot + "artist"); @@ -122,7 +122,7 @@ namespace UserInterface IdxAdminScanner, IdxAdminUsers, IdxAdminUser, - IdxAdminProfiler, + IdxAdminTracing, }; void handlePathChange(Wt::WStackedWidget& stack, bool isAdmin) @@ -150,7 +150,7 @@ namespace UserInterface { "/admin/scanner", IdxAdminScanner, true, Wt::WString::tr("Lms.Admin.ScannerController.scanner") }, { "/admin/users", IdxAdminUsers, true, Wt::WString::tr("Lms.Admin.Users.users") }, { "/admin/user", IdxAdminUser, true, std::nullopt }, - { "/admin/profiler", IdxAdminProfiler, true, Wt::WString::tr("Lms.Admin.ProfilerController.profiler") }, + { "/admin/tracing", IdxAdminTracing, true, Wt::WString::tr("Lms.Admin.Tracing.tracing") }, }; LMS_LOG(UI, DEBUG, "Internal path changed to '" << wApp->internalPath() << "'"); @@ -269,7 +269,7 @@ namespace UserInterface void LmsApplication::init() { - LMS_SCOPED_PROFILE_OVERVIEW("UI", "ApplicationInit"); + LMS_SCOPED_TRACE_OVERVIEW("UI", "ApplicationInit"); setTheme(std::make_shared()); @@ -388,7 +388,7 @@ namespace UserInterface void LmsApplication::createHome() { - LMS_SCOPED_PROFILE_OVERVIEW("UI", "ApplicationCreateHome"); + LMS_SCOPED_TRACE_OVERVIEW("UI", "ApplicationCreateHome"); _coverResource = std::make_shared(); @@ -445,11 +445,11 @@ namespace UserInterface navbar->bindNew("scan-settings", Wt::WLink{ Wt::LinkType::InternalPath, "/admin/scan-settings" }, Wt::WString::tr("Lms.Admin.menu-scan-settings")); navbar->bindNew("scanner", Wt::WLink{ Wt::LinkType::InternalPath, "/admin/scanner" }, Wt::WString::tr("Lms.Admin.menu-scanner")); navbar->bindNew("users", Wt::WLink{ Wt::LinkType::InternalPath, "/admin/users" }, Wt::WString::tr("Lms.Admin.menu-users")); - // Hide the entry if the profiler is not enabled - if (Service<::profiling::IProfiler>::get()) - navbar->bindNew("profiler", Wt::WLink{ Wt::LinkType::InternalPath, "/admin/profiler" }, Wt::WString::tr("Lms.Admin.menu-profiler")); + // Hide the entry if the trace logger is not enabled + if (Service<::tracing::ITraceLogger>::get()) + navbar->bindNew("tracing", Wt::WLink{ Wt::LinkType::InternalPath, "/admin/tracing" }, Wt::WString::tr("Lms.Admin.menu-tracing")); else - navbar->bindEmpty("profiler"); + navbar->bindEmpty("tracing"); } // Contents @@ -481,7 +481,7 @@ namespace UserInterface mainStack->addNew(); mainStack->addNew(); mainStack->addNew(); - mainStack->addNew(); + mainStack->addNew(); } explore->getPlayQueueController().setMaxTrackCountToEnqueue(_playQueue->getCapacity()); @@ -559,7 +559,7 @@ namespace UserInterface { try { - LMS_SCOPED_PROFILE_OVERVIEW("UI", "ProcessEvent"); + LMS_SCOPED_TRACE_OVERVIEW("UI", "ProcessEvent"); WApplication::notify(event); } catch (LmsApplicationException& e) diff --git a/src/lms/ui/admin/ProfilerController.cpp b/src/lms/ui/admin/TracingView.cpp similarity index 71% rename from src/lms/ui/admin/ProfilerController.cpp rename to src/lms/ui/admin/TracingView.cpp index 4de5d1a4..2e156b32 100644 --- a/src/lms/ui/admin/ProfilerController.cpp +++ b/src/lms/ui/admin/TracingView.cpp @@ -17,14 +17,14 @@ * along with LMS. If not, see . */ -#include "ProfilerController.hpp" +#include "TracingView.hpp" #include #include #include #include -#include "utils/IProfiler.hpp" +#include "utils/ITraceLogger.hpp" #include "utils/String.hpp" namespace UserInterface @@ -34,8 +34,8 @@ namespace UserInterface class ReportResource : public Wt::WResource { public: - ReportResource(::profiling::IProfiler& profiler) - : _profiler{ profiler } + ReportResource(::tracing::ITraceLogger& traceLogger) + : _traceLogger{ traceLogger } { } @@ -46,26 +46,26 @@ namespace UserInterface void handleRequest(const Wt::Http::Request&, Wt::Http::Response& response) { - suggestFileName(StringUtils::toISO8601String(Wt::WDateTime::currentDateTime()) + "-profiling.json"); + suggestFileName(StringUtils::toISO8601String(Wt::WDateTime::currentDateTime()) + "-traces.json"); response.setMimeType("application/json"); - _profiler.dumpCurrentBuffer(response.out()); + _traceLogger.dumpCurrentBuffer(response.out()); } private: - profiling::IProfiler& _profiler; + tracing::ITraceLogger& _traceLogger; }; } - ProfilerController::ProfilerController() - : Wt::WTemplate{ Wt::WString::tr("Lms.Admin.ProfilerController.template") } + TracingView::TracingView() + : Wt::WTemplate{ Wt::WString::tr("Lms.Admin.Tracing.template") } { addFunction("tr", &Wt::WTemplate::Functions::tr); - Wt::WPushButton* dumpBtn{ bindNew("export-btn", Wt::WString::tr("Lms.Admin.ProfilerController.export-current-buffer")) }; + Wt::WPushButton* dumpBtn{ bindNew("export-btn", Wt::WString::tr("Lms.Admin.Tracing.export-current-buffer")) }; - if (auto profiler{ Service::get() }) + if (auto traceLogger{ Service::get() }) { - Wt::WLink link{ std::make_shared(*profiler) }; + Wt::WLink link{ std::make_shared(*traceLogger) }; link.setTarget(Wt::LinkTarget::NewWindow); dumpBtn->setLink(link); } diff --git a/src/lms/ui/admin/ProfilerController.hpp b/src/lms/ui/admin/TracingView.hpp similarity index 90% rename from src/lms/ui/admin/ProfilerController.hpp rename to src/lms/ui/admin/TracingView.hpp index 22a92b8c..acf82584 100644 --- a/src/lms/ui/admin/ProfilerController.hpp +++ b/src/lms/ui/admin/TracingView.hpp @@ -23,9 +23,9 @@ namespace UserInterface { - class ProfilerController : public Wt::WTemplate + class TracingView : public Wt::WTemplate { public: - ProfilerController(); + TracingView(); }; } // namespace UserInterface diff --git a/src/lms/ui/resource/AudioFileResource.cpp b/src/lms/ui/resource/AudioFileResource.cpp index 58b84adc..5b10ff56 100644 --- a/src/lms/ui/resource/AudioFileResource.cpp +++ b/src/lms/ui/resource/AudioFileResource.cpp @@ -27,7 +27,7 @@ #include "database/Session.hpp" #include "database/Track.hpp" #include "utils/ILogger.hpp" -#include "utils/IProfiler.hpp" +#include "utils/ITraceLogger.hpp" #include "utils/String.hpp" #include "LmsApplication.hpp" @@ -84,7 +84,7 @@ namespace UserInterface void AudioFileResource::handleRequest(const Wt::Http::Request& request, Wt::Http::Response& response) { - LMS_SCOPED_PROFILE_OVERVIEW("UI", "HandleAudioFileRequest"); + LMS_SCOPED_TRACE_OVERVIEW("UI", "HandleAudioFileRequest"); std::shared_ptr fileResourceHandler; diff --git a/src/lms/ui/resource/CoverResource.cpp b/src/lms/ui/resource/CoverResource.cpp index 21cfaf80..080b4431 100644 --- a/src/lms/ui/resource/CoverResource.cpp +++ b/src/lms/ui/resource/CoverResource.cpp @@ -26,7 +26,7 @@ #include "database/Track.hpp" #include "utils/Exception.hpp" #include "utils/ILogger.hpp" -#include "utils/IProfiler.hpp" +#include "utils/ITraceLogger.hpp" #include "utils/Service.hpp" #include "utils/String.hpp" @@ -62,7 +62,7 @@ namespace UserInterface void CoverResource::handleRequest(const Wt::Http::Request& request, Wt::Http::Response& response) { - LMS_SCOPED_PROFILE_OVERVIEW("UI", "HandleCoverRequest"); + LMS_SCOPED_TRACE_OVERVIEW("UI", "HandleCoverRequest"); // Retrieve parameters const std::string* trackIdStr = request.getParameter("trackid");