LogRouterStats did not need to be a separate struct

This commit is contained in:
Evan Tschannen 2019-05-02 16:43:20 -07:00 committed by Alex Miller
parent 8590b710bf
commit c91ac03ec6
1 changed files with 10 additions and 17 deletions

View File

@ -33,21 +33,6 @@
#include "flow/Stats.h"
#include "flow/actorcompiler.h" // This must be the last #include.
struct LogRouterStats {
CounterCollection cc;
Future<Void> logger;
explicit LogRouterStats(UID id, NotifiedVersion* pVersion, NotifiedVersion* pMinPopped, Version* pMinKnownCommittedVersion, Version* pPoppedVersion)
: cc("LogRouterStats", id.toString())
{
specialCounter(cc, "Version", [pVersion](){return pVersion->get(); });
specialCounter(cc, "MinPopped", [pMinPopped](){return pMinPopped->get(); });
specialCounter(cc, "MinKnownCommittedVersion", [pMinKnownCommittedVersion](){ return *pMinKnownCommittedVersion; });
specialCounter(cc, "PoppedVersion", [pPoppedVersion](){ return *pPoppedVersion; });
logger = traceCounters("LogRouterMetrics", id, SERVER_KNOBS->WORKER_LOGGING_INTERVAL, &cc, "LogRouterMetrics");
}
};
struct LogRouterData {
struct TagData : NonCopyable, public ReferenceCounted<TagData> {
std::deque<std::pair<Version, LengthPrefixedStringRef>> version_messages;
@ -90,7 +75,6 @@ struct LogRouterData {
};
UID dbgid;
LogRouterStats stats;
Reference<AsyncVar<Reference<ILogSystem>>> logSystem;
NotifiedVersion version;
NotifiedVersion minPopped;
@ -103,6 +87,9 @@ struct LogRouterData {
LogSet logSet;
bool foundEpochEnd;
CounterCollection cc;
Future<Void> logger;
std::vector<Reference<TagData>> tag_data; //we only store data for the remote tag locality
Reference<TagData> getTagData(Tag tag) {
@ -122,7 +109,7 @@ struct LogRouterData {
LogRouterData(UID dbgid, InitializeLogRouterRequest req) : dbgid(dbgid), routerTag(req.routerTag), logSystem(new AsyncVar<Reference<ILogSystem>>()),
version(req.startVersion-1), minPopped(0), startVersion(req.startVersion), allowPops(false), minKnownCommittedVersion(0), poppedVersion(0), foundEpochEnd(false),
stats(dbgid, &version, &minPopped, &minKnownCommittedVersion, &poppedVersion) {
cc("LogRouter", dbgid.toString()) {
//setup just enough of a logSet to be able to call getPushLocations
logSet.logServers.resize(req.tLogLocalities.size());
logSet.tLogPolicy = req.tLogPolicy;
@ -136,6 +123,12 @@ struct LogRouterData {
tagData = createTagData(tag, 0, 0);
}
}
specialCounter(cc, "Version", [this](){return this->version.get(); });
specialCounter(cc, "MinPopped", [this](){return this->minPopped.get(); });
specialCounter(cc, "MinKnownCommittedVersion", [this](){ return this->minKnownCommittedVersion; });
specialCounter(cc, "PoppedVersion", [this](){ return this->poppedVersion; });
logger = traceCounters("LogRouterMetrics", dbgid, SERVER_KNOBS->WORKER_LOGGING_INTERVAL, &cc, "LogRouterMetrics");
}
};