diff --git a/docs/EN_US/ContainerizedHPCC/ContainerizedMods/ContainerLogging.xml b/docs/EN_US/ContainerizedHPCC/ContainerizedMods/ContainerLogging.xml index 5cbef70cf29..51787bcf528 100644 --- a/docs/EN_US/ContainerizedHPCC/ContainerizedMods/ContainerLogging.xml +++ b/docs/EN_US/ContainerizedHPCC/ContainerizedMods/ContainerLogging.xml @@ -619,7 +619,7 @@ ContainerLog Target Audience Filtering The availble target audiences include operator(OPR), user(USR), - programmer(PRO), audit(ADT), or all. The filter is controlled by the + programmer(PRO), monitor(MON), audit(ADT), or all. The filter is controlled by the <section>.logging.audiences value. The string value is comprised of 3 letter codes delimited by the aggregation operator (+) or the removal operator (-). @@ -634,7 +634,7 @@ ContainerLog Target Category Filtering The available target categories include disaster(DIS), error(ERR), - information(INF), warning(WRN), progress(PRO), metrics(MET). The + information(INF), warning(WRN), progress(PRO), event(EVT), metrics(MET). The category (or class) filter is controlled by the <section>.logging.classes value, comprised of 3 letter codes delimited by the aggregation operator (+) or the removal operator diff --git a/esp/scm/ws_logaccess.ecm b/esp/scm/ws_logaccess.ecm index 455561e7f7f..d89dc4d4a30 100644 --- a/esp/scm/ws_logaccess.ecm +++ b/esp/scm/ws_logaccess.ecm @@ -108,7 +108,8 @@ ESPenum LogEventClass : string Warning("WRN"), Info("INF"), Progress("PRO"), - Metric("MET") + Metric("MET"), + Event("EVT") }; /* @@ -133,12 +134,14 @@ ESPenum LogEventClass : string * INF - Information * PRO - Progress * MET - Metric +* EVT - Event * *If searching by "ByTargetAudience", the SearchByValue should contain the 3 letter code associated with the target audience of interest. * valid values at time of writing are: * OPR - Operator * USR - User * PRO - Programmer +* MON - Monitor * ADT - Audit *If searching by "BySourceInstance", the SearchByValue should contain the instance of interest *If searching by "BySourceNode", the SearchByValue should contain the node of interest diff --git a/esp/services/ws_workunits/ws_workunitsHelpers.hpp b/esp/services/ws_workunits/ws_workunitsHelpers.hpp index 37534458b2b..efaad03fce9 100644 --- a/esp/services/ws_workunits/ws_workunitsHelpers.hpp +++ b/esp/services/ws_workunits/ws_workunitsHelpers.hpp @@ -261,7 +261,7 @@ struct WUComponentLogOptions logFetchFilter = getBinaryLogAccessFilter(logFetchFilter, componentsFilterObj, LOGACCESS_FILTER_and); ILogAccessFilter * logEventTypeFilterObj = nullptr; - StringBuffer logType; //"DIS","ERR","WRN","INF","PRO","MET","ALL" + StringBuffer logType; //"DIS","ERR","WRN","INF","PRO","MET","EVT","ALL" zapHttpRequest->getParameter("LogFilter_LogEventType", logType); if (!logType.isEmpty() && strcmp(logType.str(), "ALL") != 0) logEventTypeFilterObj = getClassLogAccessFilter(LogMsgClassFromAbbrev(logType.str())); diff --git a/helm/examples/azure/log-analytics/loganalytics-hpcc-logaccess.yaml b/helm/examples/azure/log-analytics/loganalytics-hpcc-logaccess.yaml index 56400e03de4..fc01b818c41 100644 --- a/helm/examples/azure/log-analytics/loganalytics-hpcc-logaccess.yaml +++ b/helm/examples/azure/log-analytics/loganalytics-hpcc-logaccess.yaml @@ -40,6 +40,7 @@ global: - code: OPR - code: USR - code: PRO + - code: MON - code: ADT columnMode: "DEFAULT" columnType: "enum" @@ -51,6 +52,7 @@ global: - code: WRN - code: INF - code: PRO + - code: EVT - code: MET columnMode: "DEFAULT" columnType: "enum" diff --git a/helm/examples/logging/README.md b/helm/examples/logging/README.md index 75e7185420c..63f51fed542 100644 --- a/helm/examples/logging/README.md +++ b/helm/examples/logging/README.md @@ -73,7 +73,7 @@ The logs can be filtered by TargetAudience, Category or Detail Level, and the ou ### Target Audience Filtering -The availble target audiences include operator(OPR), user(USR), programmer(PRO), audit(ADT), or all. The filter is controlled by the +The availble target audiences include operator(OPR), user(USR), programmer(PRO), monitor(MON), audit(ADT), or all. The filter is controlled by the `
`.logging.audiences value. The string value is comprised of 3 letter codes delimited by the aggregation operator (+) or the removal operator (-). For example, all component log output to include Programmer and User messages only: @@ -81,7 +81,7 @@ The availble target audiences include operator(OPR), user(USR), programmer(PRO), ### Target Category Filtering -The available target categories include disaster(DIS), error(ERR), warning(WRN),information(INF),progress(PRO),metrics(MET). The category (or class) filter is controlled by the `
`.logging.classes value, comprised of 3 letter codes delimited by the aggregation operator (+) or the removal operator (-). +The available target categories include disaster(DIS), error(ERR), warning(WRN),information(INF),progress(PRO),metrics(MET),event(EVT). The category (or class) filter is controlled by the `
`.logging.classes value, comprised of 3 letter codes delimited by the aggregation operator (+) or the removal operator (-). For example, the mydali instance's log output to include all classes except for progress: helm install myhpcc ./hpcc --set dali[0].logging.classes="ALL-PRO" --set dali[0].name="mydali" diff --git a/helm/managed/logging/elastic/elastic4hpcclogs-hpcc-logaccess.yaml b/helm/managed/logging/elastic/elastic4hpcclogs-hpcc-logaccess.yaml index 3aba0f02d82..d1d32312fc5 100644 --- a/helm/managed/logging/elastic/elastic4hpcclogs-hpcc-logaccess.yaml +++ b/helm/managed/logging/elastic/elastic4hpcclogs-hpcc-logaccess.yaml @@ -29,6 +29,7 @@ global: - code: OPR - code: USR - code: PRO + - code: MON - code: ADT columnMode: "DEFAULT" columnType: "enum" @@ -40,6 +41,7 @@ global: - code: WRN - code: INF - code: PRO + - code: EVT - code: MET columnMode: "DEFAULT" columnType: "enum" diff --git a/system/jlib/jexcept.cpp b/system/jlib/jexcept.cpp index 035d6243990..2b4ed2d2f64 100644 --- a/system/jlib/jexcept.cpp +++ b/system/jlib/jexcept.cpp @@ -465,6 +465,7 @@ const char* serializeMessageAudience(MessageAudience ma) case MSGAUD_operator: ret = "operator"; break; case MSGAUD_user: ret = "user"; break; case MSGAUD_programmer: ret = "programmer"; break; + case MSGAUD_monitor: ret = "monitor"; break; case MSGAUD_all: ret = "all"; break; default: ret = "unknown"; break; } @@ -482,6 +483,8 @@ MessageAudience deserializeMessageAudience(const char* text) ma = MSGAUD_user; else if (!strcmp(text, "programmer")) ma = MSGAUD_programmer; + else if (!strcmp(text, "monitor")) + ma = MSGAUD_monitor; else if (!strcmp(text, "all")) ma = MSGAUD_all; } diff --git a/system/jlib/jlog.hpp b/system/jlib/jlog.hpp index 582aebdbced..9686e21feca 100644 --- a/system/jlib/jlog.hpp +++ b/system/jlib/jlog.hpp @@ -69,7 +69,8 @@ typedef enum MSGCLS_metric = 0x20, // A metric line MSGCLS_addid = 0x40, // Internal use within log system MSGCLS_removeid = 0x80, // Internal use within log system - MSGCLS_all = 0xFF // Use as a filter to select all messages + MSGCLS_event = 0x100, // A timestamp or event where the time it occurs is significant + MSGCLS_all = 0xFFFF // Use as a filter to select all messages } LogMsgClass; /* ------------------------------------------------------------------------------------ * * NOTES: * @@ -142,6 +143,8 @@ inline const char * LogMsgAudienceToVarString(LogMsgAudience audience) return("User"); case MSGAUD_programmer: return("Programmer"); + case MSGAUD_monitor: + return("Monitor"); case MSGAUD_audit: return("Audit"); default: @@ -159,6 +162,8 @@ inline const char * LogMsgAudienceToFixString(LogMsgAudience audience) return("USR"); case MSGAUD_programmer: return("PRG"); + case MSGAUD_monitor: + return("MON"); case MSGAUD_audit: return("AUD"); default: @@ -173,6 +178,8 @@ inline MessageAudience LogMsgAudFromAbbrev(char const * abbrev) return MSGAUD_user; if(strnicmp(abbrev, "PRO", 3)==0) return MSGAUD_programmer; + if(strnicmp(abbrev, "MON", 3)==0) + return MSGAUD_monitor; if(strnicmp(abbrev, "ADT", 3)==0) return MSGAUD_audit; if(strnicmp(abbrev, "ALL", 3)==0) @@ -196,6 +203,8 @@ inline const char * LogMsgClassToVarString(LogMsgClass msgClass) return("Progress"); case MSGCLS_metric: return("Metric"); + case MSGCLS_event: + return("Event"); default: return("UNKNOWN"); } @@ -217,6 +226,8 @@ inline const char * LogMsgClassToFixString(LogMsgClass msgClass) return("PRO"); case MSGCLS_metric: return("MET"); + case MSGCLS_event: + return("EVT"); default: return("UNK"); } @@ -236,6 +247,8 @@ inline LogMsgClass LogMsgClassFromAbbrev(char const * abbrev) return MSGCLS_progress; if(strnicmp(abbrev, "MET", 3)==0) return MSGCLS_metric; + if(strnicmp(abbrev, "EVT", 3)==0) + return MSGCLS_event; if(strnicmp(abbrev, "ALL", 3)==0) return MSGCLS_all; return MSGCLS_unknown; diff --git a/system/jlib/jscm.hpp b/system/jlib/jscm.hpp index 6a08dbdca92..718d6f3a215 100644 --- a/system/jlib/jscm.hpp +++ b/system/jlib/jscm.hpp @@ -310,7 +310,8 @@ typedef enum // would not be resolvable by sysadmin or ECL developers. Additional information that may // be useful for improving the platform. MSGAUD_programmer = 0x20, - // MSGAUD_legacy = 0x40, REMOVED - may be reused later + // Target audience: Automatic monitoring tools + MSGAUD_monitor = 0x40, // Target audience: persons involved in accounting and security audits MSGAUD_audit = 0x80, // MSGAUD_all is to be used for filtering or specifying which messages are to be logged