host/cxpslib/Telemetry/Stringer.h (528 lines of code) (raw):
#ifndef CXPS_TEL_STRINGER_H
#define CXPS_TEL_STRINGER_H
#include "TelemetryCommon.h"
#define STR(name) static const std::string name(#name)
#define DEF_MDS_COL_NAME(name) STR(name)
namespace CxpsTelemetry
{
namespace Strings
{
// NOTE: Keep the strings as short as possible, as they are redundant
// data (key values) transported over customer's internet.
namespace MdsColumnNames
{
DEF_MDS_COL_NAME(BiosId);
DEF_MDS_COL_NAME(FabType);
DEF_MDS_COL_NAME(PSHostId);
DEF_MDS_COL_NAME(PSAgentVer);
DEF_MDS_COL_NAME(SeqNum);
DEF_MDS_COL_NAME(MessageType);
DEF_MDS_COL_NAME(Message);
DEF_MDS_COL_NAME(PendingReqInfo);
DEF_MDS_COL_NAME(HostId);
DEF_MDS_COL_NAME(Device);
DEF_MDS_COL_NAME(LoggerStartTime);
DEF_MDS_COL_NAME(LoggerEndTime);
DEF_MDS_COL_NAME(ReqsStartTime);
DEF_MDS_COL_NAME(ReqsEndTime);
DEF_MDS_COL_NAME(CustomJson);
}
namespace DynamicJson
{
STR(Pid);
STR(Data);
namespace FileTelemetryData
{
STR(TotReqs);
STR(SuccReqs);
STR(FailedReqs);
STR(TotFiles);
STR(SuccFiles);
STR(FailedFiles);
STR(TotNewReqBlockTime);
STR(TotReqOpTime);
STR(Failures);
STR(TotReqTime);
}
namespace FileTelemetryDataCollection
{
STR(ReqType);
STR(FileType);
STR(FSubType);
STR(MdRange);
STR(Telemetry);
}
namespace PerfCounters
{
STR(TotFWriteTime);
STR(TotFReadTime);
STR(TotNwReadTime);
STR(TotNwWriteTime);
STR(TotFFlushTime);
STR(TotFComprTime);
STR(TotFWriteCnt);
STR(TotFReadCnt);
STR(TotNwReadCnt);
STR(TotNwWriteCnt);
STR(SuccFWriteCnt);
STR(SuccFReadCnt);
STR(SuccNwReadCnt);
STR(SuccNwWriteCnt);
STR(FailedFWriteCnt);
STR(FailedFReadCnt);
STR(FailedNwReadCnt);
STR(FailedNwWriteCnt);
STR(TotNwReadBytes);
STR(TotNwWriteBytes);
STR(TotFReadBytes);
STR(TotFWriteBytes);
STR(TotPutInterReqTime);
STR(NwReadBuckets);
STR(FWriteBuckets);
}
namespace SourceOpsDiffSync
{
namespace FileMetadata
{
STR(FirstPrevEndTS);
STR(FirstPrevSeqNum);
STR(FirstSplitIoSeqId);
STR(LastTS);
STR(LastSeqNum);
STR(LastSplitIoSeqId);
}
}
namespace SourceOpsResync
{
namespace FileMetadata
{
STR(FirstJobId);
STR(FirstTS);
STR(LastJobId);
STR(LastTS);
}
}
namespace SourceGeneral
{
STR(PerReqData);
STR(PerFTypeData);
}
namespace GlobalTel
{
STR(MsgDrops);
STR(TelDataErr);
STR(TelFailures);
STR(ReqFailures);
}
}
namespace MessageType
{
STR(Msg_Inv);
STR(Empty);
STR(Diff);
STR(Resync);
STR(SrcGen);
STR(Global);
STR(Msg_Def);
}
namespace SourceFileType
{
STR(DiffSync);
STR(Resync);
STR(Log);
STR(Telemetry);
STR(ChurStat);
STR(ThrpStat);
STR(TstData);
STR(FileType_Def);
STR(FileType_Inv);
STR(FileType_IntErr);
STR(FileType_Unkn);
}
namespace ResyncFileType
{
STR(Map);
STR(Sync);
STR(Hcd);
STR(Cluster);
STR(Resync_Inv);
STR(Resync_Unkn);
STR(Resync_IntErr);
STR(Resync_Def);
STR(Resync_All);
}
namespace DiffSyncFileType
{
STR(Wo);
STR(Nwo);
STR(Tag);
STR(Tso);
STR(Diff_Inv);
STR(Diff_Unkn);
STR(Diff_IntErr);
STR(Diff_Def);
STR(Diff_All);
}
namespace RequestType
{
STR(Req_Def);
STR(Req_Inv);
STR(PutFile);
STR(LsFile);
STR(RenFile);
STR(DelFile);
STR(GetFile);
STR(Login);
STR(CfsLogin);
STR(FxLogin);
STR(CfsConnBack);
STR(CfsConn);
STR(Logout);
STR(Hbeat);
STR(CfsHbeat);
}
namespace ReqFailType
{
STR(ReqFail_Def);
STR(Success);
STR(MissingVer);
STR(MissingId);
STR(MissingReqId);
STR(MissingHostId);
STR(MissingNonce);
STR(MissingFileName);
STR(MissingCfsSessionId);
STR(MissingCfsSecure);
STR(MissingPathsTag);
STR(InvalidReqId);
STR(UnknownRequest);
STR(VerifLogin);
STR(VerifLogout);
STR(VerifGetFile);
STR(VerifDelFile);
STR(VerifPutFile);
STR(VerifListFile);
STR(VerifRenFile);
STR(VerifHeartBeat);
STR(VerifCfsConnectBack);
STR(VerifCfsConnect);
STR(NotLoggedIn);
STR(BadCnonce);
STR(PutFileNoParam);
STR(PutFileNoParamVal);
STR(PutFileInvalidParams);
STR(PutFileParamsReadTimedOut);
STR(PutFileParamsFailed);
STR(PutFileMissingMoreData);
STR(PutFileExpectedMoreData);
STR(NoCfsPort);
STR(FileAccessDenied);
STR(TimedOut);
STR(ErrorInResponse);
STR(CfsInsecureRequest);
STR(HandshakeFailed);
STR(HandshakeUnknownError);
STR(NwReadFailure);
STR(HandleAsyncReadSomeUnknownError);
STR(HandleAsyncPutFileUnknownError);
STR(ProcessRequestMoreDataExpected);
STR(ProtocolHandlerError);
STR(ProtocolHandlerUnknownError);
STR(RequestHandlerProcessError);
STR(PutFileInProgress);
STR(LoginFailed);
STR(LogoutFailed);
STR(FileOpenFailed);
STR(FileBadState);
STR(FileWriteFailed);
STR(FileReadFailed);
STR(FileInvalidOffset);
STR(NwWriteFailed);
STR(HandleAsyncGetFileUnknownError);
STR(CompleteCfsConnectFailed);
STR(FileOpenInSession);
STR(DeleteFileUnknownError);
STR(DeleteFileFailed);
STR(RenameFileFailed);
STR(ListFileFailed);
STR(HeartbeatFailed);
STR(FileFlushFailed);
STR(UnknownError);
STR(SessionDestroyed);
STR(ServerStopping);
STR(MissingOldName);
STR(MissingNewName);
STR(AcceptErr);
STR(Deprecated_AsyncAccHandlFailed);
STR(AcceptStartSessionFailed);
STR(AcceptNewSessionFailed);
STR(HandleReadEntireDataFromSocketAsyncUnknownError);
STR(CumulativeThrottlingFailure);
STR(DiffThrottlingFailure);
STR(ResyncThrottlingFailure);
}
namespace TelemetryDataError
{
STR(None);
STR(TimerStarted);
STR(TimerNStarted);
STR(AnothOpInProg);
STR(UnexpOpInProg);
STR(DangCurrOp);
STR(NumReqsLE0);
STR(TelDatErr_Def);
}
namespace TelemetryFailures
{
STR(None);
STR(Alloc);
STR(AddToDiffTel);
STR(AddToResyncTel);
STR(AddToSrcGenTel);
STR(AddToGlobalTel);
STR(DiffEmptyMeta);
STR(ResyncEmptyMeta);
STR(AddTelUnknFType);
STR(SrcGenEmptyMeta);
STR(AddTelReachedEof);
STR(AddToTelUnknErr);
STR(TelFail_Def);
}
}
class Stringer
{
public:
#undef MAP
#define MAP(msgType, strObj) case msgType: return Strings::MessageType::strObj
static const std::string& MessageTypeToString(MessageType messageType)
{
switch (messageType)
{
MAP(MsgType_Empty, Empty);
MAP(MsgType_SourceOpsDiffSync, Diff);
MAP(MsgType_SourceOpsResync, Resync);
MAP(MsgType_SourceGeneral, SrcGen);
MAP(MsgType_CxpsGlobal, Global);
MAP(MsgType_Invalid, Msg_Inv);
default:
BOOST_ASSERT(false);
return Strings::MessageType::Msg_Def;
}
}
#undef MAP
#define MAP(srcFileType, strObj) case srcFileType: return Strings::SourceFileType::strObj
static const std::string& SourceFileTypeToString(FileType fileType)
{
switch (fileType)
{
MAP(FileType_Invalid, FileType_Inv);
MAP(FileType_DiffSync, DiffSync);
MAP(FileType_Resync, Resync);
MAP(FileType_Log, Log);
MAP(FileType_Telemetry, Telemetry);
MAP(FileType_ChurStat, ChurStat);
MAP(FileType_ThrpStat, ThrpStat);
MAP(FileType_TstData, TstData);
MAP(FileType_InternalErr, FileType_IntErr);
MAP(FileType_Unknown, FileType_Unkn);
default:
BOOST_ASSERT(false);
return Strings::SourceFileType::FileType_Def;
}
}
#undef MAP
#define MAP(diffFileType, strObj) case diffFileType: return Strings::DiffSyncFileType::strObj
static const std::string& DiffSyncFileTypeToString(DiffSyncFileType diffFileType)
{
switch (diffFileType)
{
MAP(DiffSyncFileType_All, Diff_All); // Used in printing only
MAP(DiffSyncFileType_Invalid, Diff_Inv);
MAP(DiffSyncFileType_WriteOrdered, Wo);
MAP(DiffSyncFileType_NonWriteOrdered, Nwo);
MAP(DiffSyncFileType_Tag, Tag);
MAP(DiffSyncFileType_Tso, Tso);
MAP(DiffSyncFileType_Unknown, Diff_Unkn);
MAP(DiffSyncFileType_InternalErr, Diff_IntErr);
default:
BOOST_ASSERT(false);
return Strings::DiffSyncFileType::Diff_Def;
}
}
#undef MAP
#define MAP(resyncFileType, strObj) case resyncFileType: return Strings::ResyncFileType::strObj
static const std::string& ResyncFileTypeToString(ResyncFileType resyncFileType)
{
switch (resyncFileType)
{
MAP(ResyncFileType_All, Resync_All); // Used in printing only
MAP(ResyncFileType_Invalid, Resync_Inv);
MAP(ResyncFileType_Sync, Sync);
MAP(ResyncFileType_Hcd, Hcd);
MAP(ResyncFileType_Cluster, Cluster);
MAP(ResyncFileType_Map, Map);
MAP(ResyncFileType_Unknown, Resync_Unkn);
MAP(ResyncFileType_InternalErr, Resync_IntErr);
default:
BOOST_ASSERT(false);
return Strings::ResyncFileType::Resync_Def;
}
}
#undef MAP
#define MAP(requestType, strObj) case requestType: return Strings::RequestType::strObj
static const std::string& RequestTypeToString(RequestType requestType)
{
switch (requestType)
{
MAP(RequestType_Invalid, Req_Inv);
MAP(RequestType_PutFile, PutFile);
MAP(RequestType_ListFile, LsFile);
MAP(RequestType_RenameFile, RenFile);
MAP(RequestType_DeleteFile, DelFile);
MAP(RequestType_GetFile, GetFile);
MAP(RequestType_Login, Login);
MAP(RequestType_CfsLogin, CfsLogin);
MAP(RequestType_FxLogin, FxLogin);
MAP(RequestType_CfsConnectBack, CfsConnBack);
MAP(RequestType_CfsConnect, CfsConn);
MAP(RequestType_Logout, Logout);
MAP(RequestType_Heartbeat, Hbeat);
MAP(RequestType_CfsHeartBeat, CfsHbeat);
default:
BOOST_ASSERT(false);
return Strings::RequestType::Req_Def;
}
}
#undef MAP
#define MAP(requestFailureType, strObj) case requestFailureType: return Strings::ReqFailType::strObj
static const std::string& RequestFailureToString(RequestFailure requestFailure)
{
switch (requestFailure)
{
MAP(RequestFailure_Success, Success);
MAP(RequestFailure_MissingVer, MissingVer);
MAP(RequestFailure_MissingId, MissingId);
MAP(RequestFailure_MissingReqId, MissingReqId);
MAP(RequestFailure_MissingHostId, MissingHostId);
MAP(RequestFailure_MissingNonce, MissingNonce);
MAP(RequestFailure_MissingFileName, MissingFileName);
MAP(RequestFailure_MissingCfsSessionId, MissingCfsSessionId);
MAP(RequestFailure_MissingCfsSecure, MissingCfsSecure);
MAP(RequestFailure_MissingPathsTag, MissingPathsTag);
MAP(RequestFailure_InvalidReqId, InvalidReqId);
MAP(RequestFailure_UnknownRequest, UnknownRequest);
MAP(RequestFailure_VerifLogin, VerifLogin);
MAP(RequestFailure_VerifLogout, VerifLogout);
MAP(RequestFailure_VerifGetFile, VerifGetFile);
MAP(RequestFailure_VerifDelFile, VerifDelFile);
MAP(RequestFailure_VerifPutFile, VerifPutFile);
MAP(RequestFailure_VerifListFile, VerifListFile);
MAP(RequestFailure_VerifRenFile, VerifRenFile);
MAP(RequestFailure_VerifHeartBeat, VerifHeartBeat);
MAP(RequestFailure_VerifCfsConnectBack, VerifCfsConnectBack);
MAP(RequestFailure_VerifCfsConnect, VerifCfsConnect);
MAP(RequestFailure_NotLoggedIn, NotLoggedIn);
MAP(RequestFailure_BadCnonce, BadCnonce);
MAP(RequestFailure_PutFileNoParam, PutFileNoParam);
MAP(RequestFailure_PutFileNoParamVal, PutFileNoParamVal);
MAP(RequestFailure_PutFileInvalidParams, PutFileInvalidParams);
MAP(RequestFailure_PutFileParamsReadTimedOut, PutFileParamsReadTimedOut);
MAP(RequestFailure_PutFileParamsFailed, PutFileParamsFailed);
MAP(RequestFailure_PutFileMissingMoreData, PutFileMissingMoreData);
MAP(RequestFailure_PutFileExpectedMoreData, PutFileExpectedMoreData);
MAP(RequestFailure_NoCfsPort, NoCfsPort);
MAP(RequestFailure_FileAccessDenied, FileAccessDenied);
MAP(RequestFailure_TimedOut, TimedOut);
MAP(RequestFailure_ErrorInResponse, ErrorInResponse);
MAP(RequestFailure_CfsInsecureRequest, CfsInsecureRequest);
MAP(RequestFailure_HandshakeFailed, HandshakeFailed);
MAP(RequestFailure_HandshakeUnknownError, HandshakeUnknownError);
MAP(RequestFailure_NwReadFailure, NwReadFailure);
MAP(RequestFailure_HandleAsyncReadSomeUnknownError, HandleAsyncReadSomeUnknownError);
MAP(RequestFailure_HandleAsyncPutFileUnknownError, HandleAsyncPutFileUnknownError);
MAP(RequestFailure_ProcessRequestMoreDataExpected, ProcessRequestMoreDataExpected);
MAP(RequestFailure_ProtocolHandlerError, ProtocolHandlerError);
MAP(RequestFailure_ProtocolHandlerUnknownError, ProtocolHandlerUnknownError);
MAP(RequestFailure_RequestHandlerProcessError, RequestHandlerProcessError);
MAP(RequestFailure_PutFileInProgress, PutFileInProgress);
MAP(RequestFailure_LoginFailed, LoginFailed);
MAP(RequestFailure_LogoutFailed, LogoutFailed);
MAP(RequestFailure_FileOpenFailed, FileOpenFailed);
MAP(RequestFailure_FileBadState, FileBadState);
MAP(RequestFailure_FileWriteFailed, FileWriteFailed);
MAP(RequestFailure_FileReadFailed, FileReadFailed);
MAP(RequestFailure_FileInvalidOffset, FileInvalidOffset);
MAP(RequestFailure_NwWriteFailed, NwWriteFailed);
MAP(RequestFailure_HandleAsyncGetFileUnknownError, HandleAsyncGetFileUnknownError);
MAP(RequestFailure_CompleteCfsConnectFailed, CompleteCfsConnectFailed);
MAP(RequestFailure_FileOpenInSession, FileOpenInSession);
MAP(RequestFailure_DeleteFileUnknownError, DeleteFileUnknownError);
MAP(RequestFailure_DeleteFileFailed, DeleteFileFailed);
MAP(RequestFailure_RenameFileFailed, RenameFileFailed);
MAP(RequestFailure_ListFileFailed, ListFileFailed);
MAP(RequestFailure_HeartbeatFailed, HeartbeatFailed);
MAP(RequestFailure_FileFlushFailed, FileFlushFailed);
MAP(RequestFailure_UnknownError, UnknownError);
MAP(RequestFailure_SessionDestroyed, SessionDestroyed);
MAP(RequestFailure_ServerStopping, ServerStopping);
MAP(RequestFailure_MissingOldName, MissingOldName);
MAP(RequestFailure_MissingNewName, MissingNewName);
MAP(RequestFailure_AcceptError, AcceptErr);
MAP(RequestFailure_Deprecated_AsyncAcceptHandlingFailed, Deprecated_AsyncAccHandlFailed);
MAP(RequestFailure_AcceptStartSessionFailed, AcceptStartSessionFailed);
MAP(RequestFailure_AcceptNewSessionFailed, AcceptNewSessionFailed);
MAP(RequestFailure_HandleReadEntireDataFromSocketAsyncUnknownError, HandleReadEntireDataFromSocketAsyncUnknownError);
MAP(RequestFailure_CumulativeThrottlingFailure, CumulativeThrottlingFailure);
MAP(RequestFailure_DiffThrottlingFailure, DiffThrottlingFailure);
MAP(RequestFailure_ResyncThrottlingFailure, ResyncThrottlingFailure);
default:
BOOST_ASSERT(false);
return Strings::ReqFailType::ReqFail_Def;
}
}
#undef MAP
#define MAP(telFailure, strObj) case telFailure: return Strings::TelemetryFailures::strObj
static const std::string& TelemetryFailureToString(TelemetryFailure telFailure)
{
switch (telFailure)
{
MAP(TelFailure_None, None);
MAP(TelFailure_Alloc, Alloc);
MAP(TelFailure_AddToDiffTel, AddToDiffTel);
MAP(TelFailure_AddToResyncTel, AddToResyncTel);
MAP(TelFailure_AddToSrcGenTel, AddToSrcGenTel);
MAP(TelFailure_AddToGlobalTel, AddToGlobalTel);
MAP(TelFailure_DiffEmptyMeta, DiffEmptyMeta);
MAP(TelFailure_ResyncEmptyMeta, ResyncEmptyMeta);
MAP(TelFailure_AddTelUnknFType, AddTelUnknFType);
MAP(TelFailure_SrcGenEmptyMeta, SrcGenEmptyMeta);
MAP(TelFailure_AddTelReachedEof, AddTelReachedEof);
MAP(TelFailure_AddToTelUnknErr, AddToTelUnknErr);
default:
BOOST_ASSERT(false);
return Strings::TelemetryFailures::TelFail_Def;
}
}
#undef MAP
#define MAP(dataError, strObj) case dataError: return Strings::TelemetryDataError::strObj
static const std::string& TelemetryDataErrorToString(RequestTelemetryDataError dataError)
{
switch (dataError)
{
MAP(ReqTelErr_None, None);
MAP(ReqTelErr_TimerAlreadyStarted, TimerStarted);
MAP(ReqTelErr_TimerNotStarted, TimerNStarted);
MAP(ReqTelErr_AnotherOpInProgress, AnothOpInProg);
MAP(ReqTelErr_UnexpectedOpInProgress, UnexpOpInProg);
MAP(ReqTelErr_DanglingCurrOp, DangCurrOp);
MAP(ReqTelErr_NumReqsLE0, NumReqsLE0);
default:
BOOST_ASSERT(false);
return Strings::TelemetryDataError::TelDatErr_Def;
}
}
#undef MAP
private:
Stringer() {} // Truly static class
};
}
#undef STR
#endif // !CXPS_TEL_STRINGER_H