Skip to content

Commit 813e416

Browse files
committed
CCDB: report stats about CCDB fetches / misses to DPL
1 parent 1d4b3ef commit 813e416

File tree

5 files changed

+40
-1
lines changed

5 files changed

+40
-1
lines changed

CCDB/include/CCDB/BasicCCDBManager.h

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@
2020
#include "CommonUtils/NameConf.h"
2121
#include "Framework/DataTakingContext.h"
2222
#include "Framework/DefaultsHelpers.h"
23+
#include "Framework/ServiceRegistryRef.h"
24+
#include "Framework/DataProcessingStats.h"
2325
#include <string>
2426
#include <chrono>
2527
#include <map>
@@ -340,6 +342,13 @@ T* CCDBManagerInstance::getForTimeStamp(std::string const& path, long timestamp,
340342
}
341343
auto end = std::chrono::system_clock::now();
342344
mTimerMS += std::chrono::duration_cast<std::chrono::milliseconds>(end - start).count();
345+
auto *ref = o2::framework::ServiceRegistryRef::globalDeviceRef();
346+
if (ref && ref->active<framework::DataProcessingStats>()) {
347+
auto& stats = ref->get<o2::framework::DataProcessingStats>();
348+
stats.updateStats({(int)o2::framework::ProcessingStatsId::CCDB_CACHE_HIT, o2::framework::DataProcessingStats::Op::Set, (int64_t)mQueries - mFailures - mFetches});
349+
stats.updateStats({(int)o2::framework::ProcessingStatsId::CCDB_CACHE_MISS, o2::framework::DataProcessingStats::Op::Set, (int64_t)mFetches});
350+
stats.updateStats({(int)o2::framework::ProcessingStatsId::CCDB_CACHE_FAILURE, o2::framework::DataProcessingStats::Op::Set, (int64_t)mFailures});
351+
}
343352
return ptr;
344353
}
345354

@@ -391,4 +400,4 @@ class BasicCCDBManager : public CCDBManagerInstance
391400

392401
} // namespace o2::ccdb
393402

394-
#endif //O2_BASICCCDBMANAGER_H
403+
#endif // O2_BASICCCDBMANAGER_H

CCDB/src/BasicCCDBManager.cxx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@
1313
// Created by Sandro Wenzel on 2019-08-14.
1414
//
1515
#include "CCDB/BasicCCDBManager.h"
16+
#include "Framework/ServiceRegistryRef.h"
17+
#include "Framework/DataProcessingStats.h"
1618
#include <boost/lexical_cast.hpp>
1719
#include <fairlogger/Logger.h>
1820
#include <string>

Framework/Core/include/Framework/DataProcessingStats.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,9 @@ enum struct ProcessingStatsId : short {
6969
RESOURCES_MISSING,
7070
RESOURCES_INSUFFICIENT,
7171
RESOURCES_SATISFACTORY,
72+
CCDB_CACHE_HIT,
73+
CCDB_CACHE_MISS,
74+
CCDB_CACHE_FAILURE,
7275
AVAILABLE_MANAGED_SHM_BASE = 512,
7376
};
7477

Framework/Core/src/CommonServices.cxx

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1152,6 +1152,30 @@ o2::framework::ServiceSpec CommonServices::dataProcessingStats()
11521152
.scope = Scope::DPL,
11531153
.minPublishInterval = 0,
11541154
.maxRefreshLatency = 10000,
1155+
.sendInitialValue = true},
1156+
MetricSpec{.name = "ccdb-cache-hit",
1157+
.enabled = true,
1158+
.metricId = static_cast<short>(ProcessingStatsId::CCDB_CACHE_HIT),
1159+
.kind = Kind::UInt64,
1160+
.scope = Scope::DPL,
1161+
.minPublishInterval = 1000,
1162+
.maxRefreshLatency = 10000,
1163+
.sendInitialValue = true},
1164+
MetricSpec{.name = "ccdb-cache-miss",
1165+
.enabled = true,
1166+
.metricId = static_cast<short>(ProcessingStatsId::CCDB_CACHE_MISS),
1167+
.kind = Kind::UInt64,
1168+
.scope = Scope::DPL,
1169+
.minPublishInterval = 1000,
1170+
.maxRefreshLatency = 10000,
1171+
.sendInitialValue = true},
1172+
MetricSpec{.name = "ccdb-cache-failure",
1173+
.enabled = true,
1174+
.metricId = static_cast<short>(ProcessingStatsId::CCDB_CACHE_FAILURE),
1175+
.kind = Kind::UInt64,
1176+
.scope = Scope::DPL,
1177+
.minPublishInterval = 1000,
1178+
.maxRefreshLatency = 10000,
11551179
.sendInitialValue = true}};
11561180

11571181
for (auto& metric : metrics) {

Framework/Core/src/runDataProcessing.cxx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1248,6 +1248,7 @@ std::vector<std::regex> getDumpableMetrics()
12481248
dumpableMetrics.emplace_back("^total-timeframes.*");
12491249
dumpableMetrics.emplace_back("^device_state.*");
12501250
dumpableMetrics.emplace_back("^total_wall_time_ms$");
1251+
dumpableMetrics.emplace_back("^ccdb-.*$");
12511252
return dumpableMetrics;
12521253
}
12531254

0 commit comments

Comments
 (0)