in frontend/server/src/main/java/com/amazonaws/ml/mms/util/logging/QLogLayout.java [90:151]
public String toSerializable(LogEvent event) {
Message eventMessage = event.getMessage();
if (eventMessage == null || eventMessage.getParameters() == null) {
return null;
}
String programName =
getStringOrDefault(System.getenv("MXNETMODELSERVER_PROGRAM"), "MXNetModelServer");
String domain = getStringOrDefault(System.getenv("DOMAIN"), "Unknown");
long currentTimeInSec = System.currentTimeMillis() / 1000;
Object[] parameters = eventMessage.getParameters();
StringBuilder stringBuilder = new StringBuilder();
for (Object obj : parameters) {
if (obj instanceof Metric) {
Metric metric = (Metric) obj;
String marketPlace = System.getenv("REALM");
stringBuilder.append("HostName=").append(metric.getHostName());
if (metric.getRequestId() != null && !metric.getRequestId().isEmpty()) {
stringBuilder.append("\nRequestId=").append(metric.getRequestId());
}
// Marketplace format should be : <programName>:<domain>:<realm>
if (marketPlace != null && !marketPlace.isEmpty()) {
stringBuilder
.append("\nMarketplace=")
.append(programName)
.append(':')
.append(domain)
.append(':')
.append(marketPlace);
}
stringBuilder
.append("\nStartTime=")
.append(
getStringOrDefault(
metric.getTimestamp(), Long.toString(currentTimeInSec)));
stringBuilder
.append("\nProgram=")
.append(programName)
.append("\nMetrics=")
.append(metric.getMetricName())
.append('=')
.append(metric.getValue())
.append(' ')
.append(metric.getUnit());
for (Dimension dimension : metric.getDimensions()) {
stringBuilder
.append(' ')
.append(dimension.getName())
.append('|')
.append(dimension.getValue())
.append(' ');
}
stringBuilder.append("\nEOE\n");
}
}
return stringBuilder.toString();
}