Skip to content

Commit

Permalink
HPCC-33338 Convert statically allocated metrics to dynamic allocation
Browse files Browse the repository at this point in the history
Removed statically allocated metrics in favor of using MODULE_INIT

Signed-Off-By: Kenneth Rowland [email protected]
  • Loading branch information
kenrowland committed Feb 28, 2025
1 parent 5b9ce6b commit 734ba02
Show file tree
Hide file tree
Showing 4 changed files with 57 additions and 12 deletions.
12 changes: 11 additions & 1 deletion dali/base/danqs.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,17 @@
#pragma warning (disable : 4355)
#endif

static auto pNqRequestsCount = hpccMetrics::registerCounterMetric("dali.nq.requests.received", "The total number of Dali NQ requests received", SMeasureCount);
static std::shared_ptr<hpccMetrics::CounterMetric> pNqRequestsCount;
MODULE_INIT(INIT_PRIORITY_STANDARD)
{
pNqRequestsCount = hpccMetrics::registerCounterMetric("dali.nq.requests.received", "The total number of Dali NQ requests received", SMeasureCount);
return true;
}

MODULE_EXIT()
{
pNqRequestsCount = nullptr;
}

enum MQueueRequestKind {
MQR_ADD_QUEUE,
Expand Down
25 changes: 21 additions & 4 deletions dali/base/dasds.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -84,10 +84,27 @@ static unsigned readWriteTimeout = 60000;
#define DEFAULT_LCIDLE_RATE 1 // 1 write transactions per idle period. <= this rate is deemed idle (suitable for save)
#define STORENOTSAVE_WARNING_PERIOD 72 // hours

static auto pSdsRequestsReceived = hpccMetrics::registerCounterMetric("dali.sds.requests.received", "The total number of Dali SDS requests received", SMeasureCount);
static auto pSdsRequestsStarted = hpccMetrics::registerCounterMetric("dali.sds.requests.started", "The total number of Dali SDS requests started", SMeasureCount);
static auto pSdsRequestsCompleted = hpccMetrics::registerCounterMetric("dali.sds.requests.completed", "The total number of Dali SDS requests completed", SMeasureCount);
static auto pSdsRequestsPending = hpccMetrics::registerGaugeFromCountersMetric("dali.sds.requests.pending", "Current number of pending SDS requests", SMeasureCount, pSdsRequestsReceived, pSdsRequestsStarted);
static std::shared_ptr<hpccMetrics::CounterMetric> pSdsRequestsReceived;
static std::shared_ptr<hpccMetrics::CounterMetric> pSdsRequestsStarted;
static std::shared_ptr<hpccMetrics::CounterMetric> pSdsRequestsCompleted;
static std::shared_ptr<hpccMetrics::GaugeMetricFromCounters> pSdsRequestsPending;

MODULE_INIT(INIT_PRIORITY_STANDARD)
{
pSdsRequestsReceived = hpccMetrics::registerCounterMetric("dali.sds.requests.received", "The total number of Dali SDS requests received", SMeasureCount);
pSdsRequestsStarted = hpccMetrics::registerCounterMetric("dali.sds.requests.started", "The total number of Dali SDS requests started", SMeasureCount);
pSdsRequestsCompleted = hpccMetrics::registerCounterMetric("dali.sds.requests.completed", "The total number of Dali SDS requests completed", SMeasureCount);
pSdsRequestsPending = hpccMetrics::registerGaugeFromCountersMetric("dali.sds.requests.pending", "Current number of pending SDS requests", SMeasureCount, pSdsRequestsReceived, pSdsRequestsStarted);
return true;
}

MODULE_EXIT()
{
pSdsRequestsReceived = nullptr;
pSdsRequestsStarted = nullptr;
pSdsRequestsCompleted = nullptr;
pSdsRequestsPending = nullptr;
}

// #define TEST_NOTIFY_HANDLER

Expand Down
20 changes: 14 additions & 6 deletions esp/platform/espprotocol.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -27,26 +27,34 @@
#endif
#include "jmetrics.hpp"

static RelaxedAtomic<unsigned> gActiveRequests;
static std::shared_ptr<hpccMetrics::GaugeMetric> pActiveRequests;

static auto pActiveRequests = hpccMetrics::registerCustomMetric("esp.requests.active", "Number of active requests",
hpccMetrics::METRICS_GAUGE, gActiveRequests, SMeasureCount);
MODULE_INIT(INIT_PRIORITY_STANDARD)
{
pActiveRequests = hpccMetrics::registerGaugeMetric("esp.requests.active", "Number of active requests", SMeasureCount);
return true;
}

MODULE_EXIT()
{
pActiveRequests = nullptr;
}

typedef IXslProcessor * (*getXslProcessor_func)();

unsigned ActiveRequests::getCount()
{
return gActiveRequests;
return pActiveRequests->queryValue();
}

ActiveRequests::ActiveRequests()
{
gActiveRequests++;
pActiveRequests->adjust(1);
}

ActiveRequests::~ActiveRequests()
{
gActiveRequests--;
pActiveRequests->adjust(-1);
}

CEspApplicationPort::CEspApplicationPort(bool viewcfg, CEspProtocol* prot) : viewConfig(viewcfg), rootAuth(false), navResize(false), navScroll(false), navWidth(165), protocol(prot)
Expand Down
12 changes: 11 additions & 1 deletion esp/platform/txsummary.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,17 @@

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

static auto pRequestCount = hpccMetrics::registerCounterMetric("esp.requests.received", "Number of requests received", SMeasureCount);
static std::shared_ptr<hpccMetrics::CounterMetric> pRequestCount;
MODULE_INIT(INIT_PRIORITY_STANDARD)
{
pRequestCount = hpccMetrics::registerCounterMetric("esp.requests.received", "Number of requests received", SMeasureCount);
return true;
}

MODULE_EXIT()
{
pRequestCount = nullptr;
}

inline bool validate(const char* k)
{
Expand Down

0 comments on commit 734ba02

Please sign in to comment.