in src/main/scala/com/twitter/iago/launcher/LocalMode.scala [156:181]
private def checkJvmUptime(
iagoServerClient: Service[Request, Response],
iagoFeederClient: Service[Request, Response]
) {
val request = Request("admin/metrics", ("m", "jvm/uptime"))
def checkJvmUptimeUtil(client: Service[Request, Response]) = {
val responseStr = client(request).map(_.getContentString())
val mapper = new ObjectMapper()
val node = responseStr.map { mapper.readTree(_).get(0) }
val jvmUptime = node.map { n =>
Option(n.get("value"))
}
jvmUptime.transform {
case Return(None) => throw new RuntimeException("jvm/uptime is not defined")
case Return(Some(value)) if value.asInt() == 0 =>
throw new RuntimeException("jvm/uptime is down to 0")
}
}
// Check Iago server
checkJvmUptimeUtil(iagoServerClient)
// Check Iago feeder
checkJvmUptimeUtil(iagoFeederClient)
}