Skip to content

Commit 734ba02

Browse files
committed
HPCC-33338 Convert statically allocated metrics to dynamic allocation
Removed statically allocated metrics in favor of using MODULE_INIT Signed-Off-By: Kenneth Rowland kenneth.rowland@lexisnexisrisk.com
1 parent 5b9ce6b commit 734ba02

File tree

4 files changed

+57
-12
lines changed

4 files changed

+57
-12
lines changed

dali/base/danqs.cpp

+11-1
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,17 @@
3333
#pragma warning (disable : 4355)
3434
#endif
3535

36-
static auto pNqRequestsCount = hpccMetrics::registerCounterMetric("dali.nq.requests.received", "The total number of Dali NQ requests received", SMeasureCount);
36+
static std::shared_ptr<hpccMetrics::CounterMetric> pNqRequestsCount;
37+
MODULE_INIT(INIT_PRIORITY_STANDARD)
38+
{
39+
pNqRequestsCount = hpccMetrics::registerCounterMetric("dali.nq.requests.received", "The total number of Dali NQ requests received", SMeasureCount);
40+
return true;
41+
}
42+
43+
MODULE_EXIT()
44+
{
45+
pNqRequestsCount = nullptr;
46+
}
3747

3848
enum MQueueRequestKind {
3949
MQR_ADD_QUEUE,

dali/base/dasds.cpp

+21-4
Original file line numberDiff line numberDiff line change
@@ -84,10 +84,27 @@ static unsigned readWriteTimeout = 60000;
8484
#define DEFAULT_LCIDLE_RATE 1 // 1 write transactions per idle period. <= this rate is deemed idle (suitable for save)
8585
#define STORENOTSAVE_WARNING_PERIOD 72 // hours
8686

87-
static auto pSdsRequestsReceived = hpccMetrics::registerCounterMetric("dali.sds.requests.received", "The total number of Dali SDS requests received", SMeasureCount);
88-
static auto pSdsRequestsStarted = hpccMetrics::registerCounterMetric("dali.sds.requests.started", "The total number of Dali SDS requests started", SMeasureCount);
89-
static auto pSdsRequestsCompleted = hpccMetrics::registerCounterMetric("dali.sds.requests.completed", "The total number of Dali SDS requests completed", SMeasureCount);
90-
static auto pSdsRequestsPending = hpccMetrics::registerGaugeFromCountersMetric("dali.sds.requests.pending", "Current number of pending SDS requests", SMeasureCount, pSdsRequestsReceived, pSdsRequestsStarted);
87+
static std::shared_ptr<hpccMetrics::CounterMetric> pSdsRequestsReceived;
88+
static std::shared_ptr<hpccMetrics::CounterMetric> pSdsRequestsStarted;
89+
static std::shared_ptr<hpccMetrics::CounterMetric> pSdsRequestsCompleted;
90+
static std::shared_ptr<hpccMetrics::GaugeMetricFromCounters> pSdsRequestsPending;
91+
92+
MODULE_INIT(INIT_PRIORITY_STANDARD)
93+
{
94+
pSdsRequestsReceived = hpccMetrics::registerCounterMetric("dali.sds.requests.received", "The total number of Dali SDS requests received", SMeasureCount);
95+
pSdsRequestsStarted = hpccMetrics::registerCounterMetric("dali.sds.requests.started", "The total number of Dali SDS requests started", SMeasureCount);
96+
pSdsRequestsCompleted = hpccMetrics::registerCounterMetric("dali.sds.requests.completed", "The total number of Dali SDS requests completed", SMeasureCount);
97+
pSdsRequestsPending = hpccMetrics::registerGaugeFromCountersMetric("dali.sds.requests.pending", "Current number of pending SDS requests", SMeasureCount, pSdsRequestsReceived, pSdsRequestsStarted);
98+
return true;
99+
}
100+
101+
MODULE_EXIT()
102+
{
103+
pSdsRequestsReceived = nullptr;
104+
pSdsRequestsStarted = nullptr;
105+
pSdsRequestsCompleted = nullptr;
106+
pSdsRequestsPending = nullptr;
107+
}
91108

92109
// #define TEST_NOTIFY_HANDLER
93110

esp/platform/espprotocol.cpp

+14-6
Original file line numberDiff line numberDiff line change
@@ -27,26 +27,34 @@
2727
#endif
2828
#include "jmetrics.hpp"
2929

30-
static RelaxedAtomic<unsigned> gActiveRequests;
30+
static std::shared_ptr<hpccMetrics::GaugeMetric> pActiveRequests;
3131

32-
static auto pActiveRequests = hpccMetrics::registerCustomMetric("esp.requests.active", "Number of active requests",
33-
hpccMetrics::METRICS_GAUGE, gActiveRequests, SMeasureCount);
32+
MODULE_INIT(INIT_PRIORITY_STANDARD)
33+
{
34+
pActiveRequests = hpccMetrics::registerGaugeMetric("esp.requests.active", "Number of active requests", SMeasureCount);
35+
return true;
36+
}
37+
38+
MODULE_EXIT()
39+
{
40+
pActiveRequests = nullptr;
41+
}
3442

3543
typedef IXslProcessor * (*getXslProcessor_func)();
3644

3745
unsigned ActiveRequests::getCount()
3846
{
39-
return gActiveRequests;
47+
return pActiveRequests->queryValue();
4048
}
4149

4250
ActiveRequests::ActiveRequests()
4351
{
44-
gActiveRequests++;
52+
pActiveRequests->adjust(1);
4553
}
4654

4755
ActiveRequests::~ActiveRequests()
4856
{
49-
gActiveRequests--;
57+
pActiveRequests->adjust(-1);
5058
}
5159

5260
CEspApplicationPort::CEspApplicationPort(bool viewcfg, CEspProtocol* prot) : viewConfig(viewcfg), rootAuth(false), navResize(false), navScroll(false), navWidth(165), protocol(prot)

esp/platform/txsummary.cpp

+11-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,17 @@
2424

2525
#define MATCH_ENTRY [&](const EntryValue& e) {return strieq(e.get()->name, pathPart);}
2626

27-
static auto pRequestCount = hpccMetrics::registerCounterMetric("esp.requests.received", "Number of requests received", SMeasureCount);
27+
static std::shared_ptr<hpccMetrics::CounterMetric> pRequestCount;
28+
MODULE_INIT(INIT_PRIORITY_STANDARD)
29+
{
30+
pRequestCount = hpccMetrics::registerCounterMetric("esp.requests.received", "Number of requests received", SMeasureCount);
31+
return true;
32+
}
33+
34+
MODULE_EXIT()
35+
{
36+
pRequestCount = nullptr;
37+
}
2838

2939
inline bool validate(const char* k)
3040
{

0 commit comments

Comments
 (0)