Pergunta

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
Foi útil?

Solução

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 the application.conf file instead.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top