I have a Java Akka application and have now added the needed configuration to integrate it with the Typesafe Console and monitor the system. My system contains several remote nodes and it runs fine but the Typesafe Console doesn't get/show anything.
The common.conf
I'm using is the following:
akka {
actor {
provider = "akka.remote.RemoteActorRefProvider"
}
remote.netty.tcp.port = 0
remote.log-remote-lifecycle-events = off
loggers = ["akka.event.slf4j.Slf4jLogger", "com.typesafe.atmos.trace.Slf4jTraceContextLogger"]
loglevel = "INFO"
remote {
transport-failure-detector {
heartbeat-interval = 3 s
threshold = 10.0
max-sample-size = 100
min-std-deviation = 200 ms
acceptable-heartbeat-pause = 5 s
}
watch-failure-detector {
heartbeat-interval = 3 s
threshold = 12.0
max-sample-size = 200
min-std-deviation = 200 ms
acceptable-heartbeat-pause = 7 s
unreachable-nodes-reaper-interval = 3 s
expected-response-after = 6 s
}
}
}
atmos {
trace {
enabled = true
node = ${HOSTNAME}
traceable {
"*" = on
}
sampling {
"*" = 1
}
}
}
I find a bit fishy that the configuration of atmos does not require any references to where the Typesafe Console is running.
The application.conf
I'm using is the following:
MapReduceSystem {
include "common"
akka {
actor {
deployment {
/mapActor {
router = round-robin
nr-of-instances = ${MAPREDUCE_NUMBER_OF_JOBS}
target.nodes = ["akka.tcp://MapReduceSystem@olympus:2552", "akka.tcp://MapReduceNode@zeus:2552", "akka.tcp://MapReduceNode@hera:2552"]
}
/reduceActor {
remote = "akka.tcp://MapReduceSystem@olympus:2552"
router = round-robin
nr-of-instances = 1
}
/masterActor {
remote = "akka.tcp://MapReduceSystem@olympus:2552"
nr-of-instances = 1
}
}
}
remote.netty.tcp.port = 2552
remote.enabled-transports = ["akka.remote.netty.tcp"]
remote.netty.tcp.hostname = "olympus"
}
}
MapReduceNode {
include "common"
akka {
remote.netty.tcp.port = 2552
remote.enabled-transports = ["akka.remote.netty.tcp"]
remote.netty.tcp.hostname = ${HOSTNAME}
}
}
UPDATE:
atmos log shows only this:
azg@olympus:~/code/hpcmom/hpcmom-mapreduce$ sudo $TYPESAFE_CONSOLE_ROOT/bin/typesafe-console atmos
2013-11-20 15:10:46,922 INFO [akka.event.slf4j.Slf4jEventHandler] [] [] : Slf4jEventHandler started
2013-11-20 15:10:46,954 INFO [U] [ActorSystem(query)] [query-akka.actor.default-dispatcher-2] : *** No license available. Defaulting to in-memory persistence. ***
2013-11-20 15:10:47,169 INFO [akka.event.slf4j.Slf4jEventHandler] [] [] : Slf4jEventHandler started
2013-11-20 15:10:47,199 INFO [akka.event.slf4j.Slf4jEventHandler] [] [] : Slf4jEventHandler started
2013-11-20 15:10:47,508 INFO [akka://query/user/IO-HTTP/listener-0] [akka://query/user/IO-HTTP/listener-0] [query-akka.actor.default-dispatcher-12] : Bound to olympus/192.168.92.21:8660
Since you import the common config in the
MapReduceSystem
context Atmos will not be able to find the atmos configuration section. It expects the atmos configuration at the root level. Try adding the atmos section directly to theapplication.conf
file instead.