public DeadLetterMonitor() { Receive <DeadLetter>(msg => { var sender = msg.Sender.GetFriendlyName(); var recipient = msg.Recipient.GetFriendlyName(); ActorMonitoring.TrackDeadLetter(sender, recipient, msg.Message); }); }
public ExceptionLoggerActor() { Receive <Error>(msg => { // LogSource akka://AkkaAppActorSystem/user/ConsoleUi/CommandHandler/room1 // look if it's a user created actor var friendlyNameIdx = msg.LogSource.IndexOf(UserMarker); if (friendlyNameIdx >= 0) { var friendlyName = msg.LogSource.Substring(friendlyNameIdx); ActorMonitoring.TrackException(friendlyName, msg.Cause, msg.Message); } }); Receive <InitializeLogger>(mgs => Sender.Tell(new LoggerInitialized())); }
protected void TrackReceivedMessage(object message, bool expires) { ActorMonitoring.TrackReceivedMessage(_friendlyName, message, expires); }
// Not needed anymore, we use the custom logging Actor for tracking exceptions /* * protected override bool AroundReceive(Receive receive, object message) * { * try * { * return base.AroundReceive(receive, message); * } * catch (Exception ex) * { * ActorMonitoring.TrackException(_friendlyName, ex, message); * throw; * } * } */ protected override bool AroundReceive(Receive receive, object message) { ActorMonitoring.TrackReceivedMessage(_friendlyName, message, true); return(base.AroundReceive(receive, message)); }
// specific to Akka.net, we do not have a general counter for this event /* * protected override void PreRestart(Exception reason, object message) * { * base.PreRestart(reason, message); * } */ protected override void PostRestart(Exception reason) { base.PostRestart(reason); ActorMonitoring.TrackActorRestarted(_friendlyName, reason); }
protected override void PostStop() { base.PostStop(); ActorMonitoring.TrackActorStopped(_friendlyName); }
protected override void PreStart() { base.PreStart(); ActorMonitoring.TrackActorStarted(_friendlyName); }
protected ReceiveActorWithMonitoring() { _friendlyName = this.Self.GetFriendlyName(); ActorMonitoring.TrackActorCreated(_friendlyName, Context.Props.Type, Context.Parent.GetFriendlyName()); }
protected void TrackReceivedMessage(object message) { ActorMonitoring.TrackReceivedMessage(_friendlyName, message); }