in src/main/scala/com/gu/mobile/logback/MobileLogstashEncoder.scala [60:87]
def setDefaultAppName(defaultAppName: String): Unit = maybeDefaultAppName = Some(defaultAppName)
private lazy val loadAppStackStage: Map[String, String] = {
val defaultAppName: String = maybeDefaultAppName.getOrElse(throw new IllegalArgumentException(
s"""Logback xml must include a defaultAppName like
|<encoder class="${classOf[MobileLogstashEncoder].getCanonicalName}">
| <defaultAppName>APP_NAME_HERE</defaultAppName>
|</encoder>
""".stripMargin))
val identity = Option(System.getenv("MOBILE_LOCAL_DEV")) match {
case Some(_) => DevIdentity(defaultAppName)
case None =>
AppIdentity
.whoAmI(defaultAppName, DefaultCredentialsProvider.builder().build())
.getOrElse(DevIdentity(defaultAppName))
}
(identity match {
case awsIdentity: AwsIdentity => Map(
"app" -> awsIdentity.app,
"stack" -> awsIdentity.stack,
"stage" -> awsIdentity.stage
) ++ Try(EC2MetadataUtils.getInstanceId).toOption.map("ec2_instance" -> _)
case _ => Map("app" -> defaultAppName)
})
}