From 0f094d2aa117f3de75e8e7c562698a9f06d07787 Mon Sep 17 00:00:00 2001 From: Jingyu Zhou <jingyuzhou@gmail.com> Date: Tue, 19 Jul 2022 22:27:29 -0700 Subject: [PATCH] Fix ScopeEventFieldTypeMismatch error for TLogMetrics Backport changes made to TLogServer in #4616 back to old TLog implementations. Old implementations were using SpecialCounter, which is string. The new type is int64_t. Without the change, we can have many events like: <Event Severity="30" Time="1658165532.958152" DateTime="2022-07-18T17:32:12Z" Type="ScopeEventFieldTypeMismatch" ID="0000000000000000" EventType="TraceEvent.TLogMetrics" FieldName="QueueDiskBytesUsed" OldType="Int64" NewType="String" ThreadID="2451559325190099131" Machine="10.242.248.26:4703" LogGroup="xxxx" Roles="TL" /> --- fdbserver/OldTLogServer_4_6.actor.cpp | 36 +++++++++++++-------------- fdbserver/OldTLogServer_6_0.actor.cpp | 36 +++++++++++++-------------- fdbserver/OldTLogServer_6_2.actor.cpp | 36 +++++++++++++-------------- 3 files changed, 51 insertions(+), 57 deletions(-) diff --git a/fdbserver/OldTLogServer_4_6.actor.cpp b/fdbserver/OldTLogServer_4_6.actor.cpp index 5d4afd0675..3a8fd868c8 100644 --- a/fdbserver/OldTLogServer_4_6.actor.cpp +++ b/fdbserver/OldTLogServer_4_6.actor.cpp @@ -458,24 +458,6 @@ struct LogData : NonCopyable, public ReferenceCounted<LogData> { specialCounter(cc, "Version", [this]() { return this->version.get(); }); specialCounter(cc, "SharedBytesInput", [tLogData]() { return tLogData->bytesInput; }); specialCounter(cc, "SharedBytesDurable", [tLogData]() { return tLogData->bytesDurable; }); - specialCounter( - cc, "KvstoreBytesUsed", [tLogData]() { return tLogData->persistentData->getStorageBytes().used; }); - specialCounter( - cc, "KvstoreBytesFree", [tLogData]() { return tLogData->persistentData->getStorageBytes().free; }); - specialCounter(cc, "KvstoreBytesAvailable", [tLogData]() { - return tLogData->persistentData->getStorageBytes().available; - }); - specialCounter( - cc, "KvstoreBytesTotal", [tLogData]() { return tLogData->persistentData->getStorageBytes().total; }); - specialCounter( - cc, "QueueDiskBytesUsed", [tLogData]() { return tLogData->rawPersistentQueue->getStorageBytes().used; }); - specialCounter( - cc, "QueueDiskBytesFree", [tLogData]() { return tLogData->rawPersistentQueue->getStorageBytes().free; }); - specialCounter(cc, "QueueDiskBytesAvailable", [tLogData]() { - return tLogData->rawPersistentQueue->getStorageBytes().available; - }); - specialCounter( - cc, "QueueDiskBytesTotal", [tLogData]() { return tLogData->rawPersistentQueue->getStorageBytes().total; }); specialCounter(cc, "ActivePeekStreams", [tLogData]() { return tLogData->activePeekStreams; }); } @@ -1424,7 +1406,23 @@ ACTOR Future<Void> tLogCore(TLogData* self, Reference<LogData> logData) { logData->logId, SERVER_KNOBS->STORAGE_LOGGING_DELAY, &logData->cc, - logData->logId.toString() + "/TLogMetrics")); + logData->logId.toString() + "/TLogMetrics", + [self = self](TraceEvent& te) { + StorageBytes sbTlog = self->persistentData->getStorageBytes(); + te.detail("KvstoreBytesUsed", sbTlog.used); + te.detail("KvstoreBytesFree", sbTlog.free); + te.detail("KvstoreBytesAvailable", sbTlog.available); + te.detail("KvstoreBytesTotal", sbTlog.total); + te.detail("KvstoreBytesTemp", sbTlog.temp); + + StorageBytes sbQueue = self->rawPersistentQueue->getStorageBytes(); + te.detail("QueueDiskBytesUsed", sbQueue.used); + te.detail("QueueDiskBytesFree", sbQueue.free); + te.detail("QueueDiskBytesAvailable", sbQueue.available); + te.detail("QueueDiskBytesTotal", sbQueue.total); + te.detail("QueueDiskBytesTemp", sbQueue.temp); + })); + logData->addActor.send(serveTLogInterface(self, logData->tli, logData, warningCollectorInput)); try { diff --git a/fdbserver/OldTLogServer_6_0.actor.cpp b/fdbserver/OldTLogServer_6_0.actor.cpp index fbcf4d4dd1..e1ae190325 100644 --- a/fdbserver/OldTLogServer_6_0.actor.cpp +++ b/fdbserver/OldTLogServer_6_0.actor.cpp @@ -554,24 +554,6 @@ struct LogData : NonCopyable, public ReferenceCounted<LogData> { specialCounter(cc, "SharedBytesDurable", [tLogData]() { return tLogData->bytesDurable; }); specialCounter(cc, "SharedOverheadBytesInput", [tLogData]() { return tLogData->overheadBytesInput; }); specialCounter(cc, "SharedOverheadBytesDurable", [tLogData]() { return tLogData->overheadBytesDurable; }); - specialCounter( - cc, "KvstoreBytesUsed", [tLogData]() { return tLogData->persistentData->getStorageBytes().used; }); - specialCounter( - cc, "KvstoreBytesFree", [tLogData]() { return tLogData->persistentData->getStorageBytes().free; }); - specialCounter(cc, "KvstoreBytesAvailable", [tLogData]() { - return tLogData->persistentData->getStorageBytes().available; - }); - specialCounter( - cc, "KvstoreBytesTotal", [tLogData]() { return tLogData->persistentData->getStorageBytes().total; }); - specialCounter( - cc, "QueueDiskBytesUsed", [tLogData]() { return tLogData->rawPersistentQueue->getStorageBytes().used; }); - specialCounter( - cc, "QueueDiskBytesFree", [tLogData]() { return tLogData->rawPersistentQueue->getStorageBytes().free; }); - specialCounter(cc, "QueueDiskBytesAvailable", [tLogData]() { - return tLogData->rawPersistentQueue->getStorageBytes().available; - }); - specialCounter( - cc, "QueueDiskBytesTotal", [tLogData]() { return tLogData->rawPersistentQueue->getStorageBytes().total; }); specialCounter(cc, "ActivePeekStreams", [tLogData]() { return tLogData->activePeekStreams; }); } @@ -2241,7 +2223,23 @@ ACTOR Future<Void> tLogCore(TLogData* self, logData->logId, SERVER_KNOBS->STORAGE_LOGGING_DELAY, &logData->cc, - logData->logId.toString() + "/TLogMetrics")); + logData->logId.toString() + "/TLogMetrics", + [self = self](TraceEvent& te) { + StorageBytes sbTlog = self->persistentData->getStorageBytes(); + te.detail("KvstoreBytesUsed", sbTlog.used); + te.detail("KvstoreBytesFree", sbTlog.free); + te.detail("KvstoreBytesAvailable", sbTlog.available); + te.detail("KvstoreBytesTotal", sbTlog.total); + te.detail("KvstoreBytesTemp", sbTlog.temp); + + StorageBytes sbQueue = self->rawPersistentQueue->getStorageBytes(); + te.detail("QueueDiskBytesUsed", sbQueue.used); + te.detail("QueueDiskBytesFree", sbQueue.free); + te.detail("QueueDiskBytesAvailable", sbQueue.available); + te.detail("QueueDiskBytesTotal", sbQueue.total); + te.detail("QueueDiskBytesTemp", sbQueue.temp); + })); + logData->addActor.send(serveTLogInterface(self, tli, logData, warningCollectorInput)); logData->addActor.send(cleanupPeekTrackers(logData.getPtr())); logData->addActor.send(logPeekTrackers(logData.getPtr())); diff --git a/fdbserver/OldTLogServer_6_2.actor.cpp b/fdbserver/OldTLogServer_6_2.actor.cpp index a737c4994c..e08521fb52 100644 --- a/fdbserver/OldTLogServer_6_2.actor.cpp +++ b/fdbserver/OldTLogServer_6_2.actor.cpp @@ -641,24 +641,6 @@ struct LogData : NonCopyable, public ReferenceCounted<LogData> { specialCounter(cc, "SharedBytesDurable", [tLogData]() { return tLogData->bytesDurable; }); specialCounter(cc, "SharedOverheadBytesInput", [tLogData]() { return tLogData->overheadBytesInput; }); specialCounter(cc, "SharedOverheadBytesDurable", [tLogData]() { return tLogData->overheadBytesDurable; }); - specialCounter( - cc, "KvstoreBytesUsed", [tLogData]() { return tLogData->persistentData->getStorageBytes().used; }); - specialCounter( - cc, "KvstoreBytesFree", [tLogData]() { return tLogData->persistentData->getStorageBytes().free; }); - specialCounter(cc, "KvstoreBytesAvailable", [tLogData]() { - return tLogData->persistentData->getStorageBytes().available; - }); - specialCounter( - cc, "KvstoreBytesTotal", [tLogData]() { return tLogData->persistentData->getStorageBytes().total; }); - specialCounter( - cc, "QueueDiskBytesUsed", [tLogData]() { return tLogData->rawPersistentQueue->getStorageBytes().used; }); - specialCounter( - cc, "QueueDiskBytesFree", [tLogData]() { return tLogData->rawPersistentQueue->getStorageBytes().free; }); - specialCounter(cc, "QueueDiskBytesAvailable", [tLogData]() { - return tLogData->rawPersistentQueue->getStorageBytes().available; - }); - specialCounter( - cc, "QueueDiskBytesTotal", [tLogData]() { return tLogData->rawPersistentQueue->getStorageBytes().total; }); specialCounter(cc, "PeekMemoryReserved", [tLogData]() { return tLogData->peekMemoryLimiter.activePermits(); }); specialCounter(cc, "PeekMemoryRequestsStalled", [tLogData]() { return tLogData->peekMemoryLimiter.waiters(); }); specialCounter(cc, "ActivePeekStreams", [tLogData]() { return tLogData->activePeekStreams; }); @@ -2701,7 +2683,23 @@ ACTOR Future<Void> tLogCore(TLogData* self, logData->logId, SERVER_KNOBS->STORAGE_LOGGING_DELAY, &logData->cc, - logData->logId.toString() + "/TLogMetrics")); + logData->logId.toString() + "/TLogMetrics", + [self = self](TraceEvent& te) { + StorageBytes sbTlog = self->persistentData->getStorageBytes(); + te.detail("KvstoreBytesUsed", sbTlog.used); + te.detail("KvstoreBytesFree", sbTlog.free); + te.detail("KvstoreBytesAvailable", sbTlog.available); + te.detail("KvstoreBytesTotal", sbTlog.total); + te.detail("KvstoreBytesTemp", sbTlog.temp); + + StorageBytes sbQueue = self->rawPersistentQueue->getStorageBytes(); + te.detail("QueueDiskBytesUsed", sbQueue.used); + te.detail("QueueDiskBytesFree", sbQueue.free); + te.detail("QueueDiskBytesAvailable", sbQueue.available); + te.detail("QueueDiskBytesTotal", sbQueue.total); + te.detail("QueueDiskBytesTemp", sbQueue.temp); + })); + logData->addActor.send(serveTLogInterface(self, tli, logData, warningCollectorInput)); logData->addActor.send(cleanupPeekTrackers(logData.getPtr())); logData->addActor.send(logPeekTrackers(logData.getPtr()));