These are chat archives for akkadotnet/akka.net

12th
Jun 2016
Stanley Goldman
@StanleyGoldman
Jun 12 2016 02:14
So how do I go about visualizing the message queues for my various actors?
Aaron Stannard
@Aaronontheweb
Jun 12 2016 02:15
you don't have access to it directly
the message queue, that is
that's on purpose
there are some folks who've been working on a visualizer demo where you can see where messages are going
@corneliutusnea and others
but we don't have anything we officially support for doing that
Stanley Goldman
@StanleyGoldman
Jun 12 2016 02:16
Hmm
okay
i'm trying to make a cluster to work through a large payload of data
i have a few different pools
and i wanted to know how efficient i was, or where most of my messages are holed up at any given point
I found a package that lets me use elastic search as an nlog target
so i'm able to get a decent overview with kibana
i was just hoping there was some metric somewhere i could report that would help me build the graph in kibana
Aaron Stannard
@Aaronontheweb
Jun 12 2016 02:20
the way I would suggest logging that
Stanley Goldman
@StanleyGoldman
Jun 12 2016 02:20
i feel like i'm blindly testing with different pool sizes
seeing where it leads me
Aaron Stannard
@Aaronontheweb
Jun 12 2016 02:21
https://github.com/petabridge/akka-monitoring - I wrote this and used it in production with StatsD originally
that way I would log the issue you're trying to solve
is to take two measurements
increment one counter when you flush a message to the pool
decrement another when you finish processing a message from the pool
you can do that in kibana too probably
and then in your dashboard, you can do a comparison between your input and your output counters
you can also use a gauge to time how long it takes an actor to process each message
that sort of thing
I'd do that rather than try to rip the guts out of the Mailbox
Stanley Goldman
@StanleyGoldman
Jun 12 2016 02:24
yea
makes sense
Tyagit3
@Tyagit3
Jun 12 2016 06:02
Question on ActorSelection in Remote actor system: Can akka.tcp protocol be used to communicate between client & server, while client is connected to internet without a static ip allocated? And is the case similar with peer to peer communication?
Maciek Misztal
@mmisztal1980
Jun 12 2016 07:59
@Tyagit3 why would the client need a static IP ? It's not in listening for incoming TCP connections - is it?
Stanley Goldman
@StanleyGoldman
Jun 12 2016 15:40
@Aaronontheweb thanks, it took me a bit, but I can measure messageboxsize with akka.monitoring, i just wish it were built in
ilhadad
@ilhadad
Jun 12 2016 16:41
@Horusiath You are correct it is the persistence plugin. I looks there have been some changes. I will need some help to update it to meet the latest interface needs.
Aaron Stannard
@Aaronontheweb
Jun 12 2016 18:03
@Tyagit3 @mmisztal1980 yep, you only need a fixed IP + port if you intend on being able to accept inbound connections
if your client is always responsible for establishing a connection to the server
then you don't need to worry about it
if the server can issue a reconnect back to the client, however, then the client needs to bind to the same IP / port each time it restarts
most people, when designing client-server software, follow a strict "client connects to server" model
reason is that if you can't control the client's environment
you're at the mercy of their firewall, proxies, and other evil stuff
and your ability to connect to the client will be diminished
whereas you can totally control the server's environment
and usually client OSes will allow outbound connections (might prompt the user for permission for the first time)
so that's just easier to manage
qwoz
@qwoz
Jun 12 2016 21:10
I'm just getting start with trying to get Akka.NET running on Azure and have been reading through the recent discussions. I've put together a really bare-bones wiki: https://github.com/qwoz/Akka.NET-on-Azure/wiki
frasermolyneux
@frasermolyneux
Jun 12 2016 21:12
Although I have given up on Azure it would be good to see how to properly do it - have you managed to get a stable cluster hosted on Azure?
qwoz
@qwoz
Jun 12 2016 21:12
As I start exploring cluster/remote and getting Akka.NET running as a service (eg: Topshelf) I'll update as I go along. If others wish to contribute, let me know. Or if @Aaronontheweb and crew would like to maintain this in the main Akka.NET repo/wiki, I'm happy to contribute there instead.
@frasermolyneux no I haven't gotten that far. Right now it's just hooking up an API and using actors to do the work. Very MVP for now.
frasermolyneux
@frasermolyneux
Jun 12 2016 21:14
I hit issues as soon as I tried to bring in remoting/clustering :/ What are you thinking for deployment? classic Azure or RM?
qwoz
@qwoz
Jun 12 2016 21:15
RM?
frasermolyneux
@frasermolyneux
Jun 12 2016 21:15
Resource Manager
qwoz
@qwoz
Jun 12 2016 21:16
yeah, it'd be nice to use Resource Manager and/or something like Service Fabric to handle the lifecycle of everything with rolling upgrades, etc. For now I'm using classic Azure but would like to explore better ways... when I get there. :)
frasermolyneux
@frasermolyneux
Jun 12 2016 21:16
Microsoft is phasing out the classic options so it would be good to see a deployment on the newer stuff like service fabric
The issues I had with the classic cloud service were first IpEndpoints and then unstable connections between node instances for the cluster
qwoz
@qwoz
Jun 12 2016 21:18
Agreed. Perhaps someone at Microsoft would even be interested in helping out with something authoritative. Not sure if anyone there is currently following Akka.NET
Have you tried just a collection of dumb VMs in a private network running your own services? I'd think that'd be fairly stable.
frasermolyneux
@frasermolyneux
Jun 12 2016 21:21
Not on Azure no - I have tried that sort of thing locally and spread across multiple machines on a business network. Ideally I would like a deployment pipeline that provisions the resources it needs from Azure or another cloud company
(Preferably Azure as I get the £95pm credits in my msdn subscription)
qwoz
@qwoz
Jun 12 2016 21:23
and I assume clustering was stable when run across multiple machines on your own network?
frasermolyneux
@frasermolyneux
Jun 12 2016 21:25
yeah it was pretty solid - I have also messed around with a cluster spread across multiple dedi servers in the same datacentre and that's also stable.
qwoz
@qwoz
Jun 12 2016 21:31
@frasermolyneux oh and when you say you've given up on Azure, does that mean you're still running Akka.NET for your app, but just managing the individual servers yourself via AWS or some other platform? If so, wouldn't that be the same as plain old Azure VMs?
frasermolyneux
@frasermolyneux
Jun 12 2016 21:33
I have given up on the Azure classic cloud option, I still plan on figuring out deployment to an Azure VM or such like but for now am content with just deploying to one of my dedicated servers
qwoz
@qwoz
Jun 12 2016 21:35
:plus1:
Alex Valuyskiy
@alexvaluyskiy
Jun 12 2016 21:42
@Aaronontheweb how is it going with ActorCell refactoring. I'm waiting for for cell.Mailbox.IsScheduled and for MailboxType type. I need it for my routers' stuff
@Aaronontheweb what should I do with backward compatibility? I have completely rewritten routers and I cant make it 100% compatible with thr previous version
Alex Valuyskiy
@alexvaluyskiy
Jun 12 2016 21:50
Have you changed Post method to SendMessage(envelop)?
Aaron Stannard
@Aaronontheweb
Jun 12 2016 22:35
@alexvaluyskiy current status
blob
trying to upload the damn thing and I can't connect to Github lol
just finished fixing the last bug
found an issue where the RemoteDeploymentWatcher was not working
unrelated to these other changes
I've left the name Post still
even though I kind of wanted to rename it lol
@qwoz that looks awesome dude!
I was checking it our earlier
signed off before I could comment so I could wrap up this last change in a big PR I've spent about 50 hours on this week
@alexvaluyskiy I implemented both of those
the mailboxtype
and the IsScheduled
heads up though: IsScheduled is a method and not a property in my implementation
wanted to use aggressive inlining on that method, per what the JVM does
can't do that on a property in the CLR
going to restart my computer and see if this helps
would love to have CI pick this thing up
Aaron Stannard
@Aaronontheweb
Jun 12 2016 22:49
@alexvaluyskiy got it akkadotnet/akka.net#2086
Alex Valuyskiy
@alexvaluyskiy
Jun 12 2016 22:58
@Aaronontheweb nice
Aaron Stannard
@Aaronontheweb
Jun 12 2016 23:43
added a bunch of comments to make it easier on the reviewers
I'm going to do some performance tuning on it, probably tomorrow
and it looks like I have some specs failing there
racy ones like the Resizer and the Reny create spec
figure some folks will have some input on what to do around those