-
Notifications
You must be signed in to change notification settings - Fork 23
Akka
hughsimpson edited this page Nov 14, 2013
·
13 revisions
The akka monitoring currently logs:
- the number of messages received per actor type
- the number of actors of a given actor type
- actor queue sizes
- duration of an actor's response to receiving a message
- objects published by the EventStream
- invoked failure handling on an actor
and can be configured to sample 1-in-n messages to a given actor type
The org.eigengo.monitor.agent.AgentConfigurationFactory class searches for a mandatory configuration file at META-INF/monitor/agent.conf. The configuration file must have this format:
org.eigengo.monitor.agent {
output {
class: "org.eigengo.monitor.output.datadog.StatsdCounterInterface"
}
akka {
includeRoutees: true
included: [
"akka:*.com.company.project.module.TypeOfActor",
"akka:actorSystem.com.company.project.module.SomeOtherActor"
]
sampling: [
{
rate: 15
for: [ "akka:*.com.company.project.module.TypeOfActor" ]
},
{
rate: 4
for: [ "akka://default/user/*" ]
}
]
excludeAllNotIncluded: false
excluded: [
"akka:*.com.company.project.module.UninterestingActor"
]
includeSystemAgents: false
}
}
- output.class: The class to be used for the output of the pointcut monitoring
- akka.includeRoutees: If true, we tag routed actors with their own full actor path, as well as that of the parent.
- akka.included: The actor classes to monitor. We can match on class name or actor path. This list is treated as a disjunction -- i.e. if an actor matches any of the filters in the list, it is treated as an 'included' actor. Actor type matching filters should be self-evident from the example. Actor path matches must match the exact actor path, except that we also allow '*' wildcards. Wildcards will only match one path element -- i.e. /default/system/a/b/c will not match akka://default/system/*, but will match akka://default/*/a/*/*
- akka.sampling: Defines the rate at which to sample messages. This is optional -- default is to sample every message
- akka.sampling.rate: Integer value 'n' - sample every 'nth' message to an actor type (starting with the first)
-
akka.sampling.for: Associates the sampling rate with an actor filter. If an actor is included and matches this filter, we sample at the
rate. Syntax is the same as for included/excluded. - akka.excludeAllNotIncluded: If this is true, we only include the explicitly 'included' actors.
- akka.excluded: The actor classes to not monitor. Same syntax and rules as included/sampling.
-
akka.includeSystemAgents: If this is false, we only include
useractors, unless a particularsystemactor (or set of system actors) is explicitly included.