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