@import io.prediction.data.storage.EngineInstance @import io.prediction.data.storage.EngineManifest @import io.prediction.workflow.ServerConfig @import org.joda.time.DateTime @import org.joda.time.format.DateTimeFormat @(args: ServerConfig, manifest: EngineManifest, engineInstance: EngineInstance, algorithms: Seq[String], algorithmsParams: Seq[String], models: Seq[String], servingParams: String, serverStartTime: DateTime, feedback: Boolean, eventServerIp: String, eventServerPort: Int) @{manifest.id} @{manifest.version} - PredictionIO Engine Server at @{args.ip}:@{args.port}

Engine Instance Information

ID@{engineInstance.id}
Variant ID@{engineInstance.engineVariant}
Training Start Time@{DateTimeFormat.forStyle("FF").print(engineInstance.startTime)}
Training End Time@{DateTimeFormat.forStyle("FF").print(engineInstance.endTime)}

Feedback Loop Information

Feedback Loop Enabled?@{feedback}
Event Server IP@{eventServerIp}
Event Server Port@{eventServerPort}

Server Information

@for(f <- manifest.files.drop(1)) { }
Start Time@{DateTimeFormat.forStyle("FF").print(serverStartTime)}
Engine Factory Class (Scala/Java)@{engineInstance.engineFactory}
Library Files @{manifest.files.head}
@f

Algorithms and Models

@for(a <- algorithms.zip(algorithmsParams).zip(models).zipWithIndex) { }
#Information
@{a._2 + 1} Class@{a._1._1._1}
Parameters@{a._1._1._2}
Model@{a._1._2}

Serving

Parameters@{servingParams}