-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Disabling monitoring of system actors has no effect on Live Actors and Actor Start/Stop panels #86
Comments
Hi @object - looks like the issue here is the Akka.NET controls how those |
This is fixed in our latest |
Did some testing of this and it still needs more time to cook - we're going to have to make a patch to Akka.NET in order to have this work consistently. In this particular instance, shutting off all |
We basically need to push the decision about which metrics get recorded to the edges (the actors themselves), not the accumulator we use to produce the metric. |
This issue has been resolved, properly in Phobos 2.8.1 https://phobos.petabridge.com/articles/releases/RELEASE_NOTES.html |
@Aaronontheweb Thanks for the quick update. I have rebuilt our services with Akka 1.5.36 and Phobos 2.8.1. I no longer see in the dashboard some of the system actors that were listed earlier, but other actors from Akka namespace are there. Here's what I see now:
How is actor classified as a system actor? By namespace or from a pre-defined list? Can the decision be made based on a namespace? |
It's classified by where the actor is on the hierarchy - actors that fall under the We can probably disable metrics on those by default too - it's just that normally we treat the sharding / distributed pub sub actors like they are |
The one of your list that makes me the most interested are the |
Well I'll be damned, that is an Akka.NET bug for certain: https://github.com/akkadotnet/akka.net/blob/759e93f55f66e79d8356f6ad1526144126d0b479/src/core/Akka.Persistence/Journal/AsyncWriteJournal.cs#L84 How on earth did you end up with 100k of them though? |
It's a first time I see Akka.Persistence.Journal.AsyncWriteJournal+Resequencer in that list, and I should have seen it earlier because of its huge number of instances. That must certainly be a bug. It can't be that high. We don't have so many live actors, and only a fraction of them are persistent. |
Well, Phobos is doing it's job here then and letting us know about real problems with the framework itself 😂 |
@object using previous versions of Phobos, do you see a huge number of journal actors too or just re-sequencers? |
Using "/system" to classify an actor as system makes sense, even though it would be nice to have a way to exclude cluster sharding. Perhaps a different flag, e.g. SetMonitorShardManagementActors? But that's not a crucial thing. |
It's a first time I see such huge number here. Usually it's max a couple of hundred of actors of a certain type, and it is correct. Our system it about media files management, not stock trading. During peak times we may have a few thousand files simultaneously handled, most of the times it's just hundreds. |
I'm wondering if there's a journal implementation that is creating huge numbers of them during |
Filed an issue here: akkadotnet/akka.net#7480 - which Akka.Persistence journal are you using? |
It's SQL Server. But I see huge number of exceptions after upgrading. Checking what's going on. |
Could not load file or assembly 'Microsoft.Bcl.AsyncInterfaces, Version=8.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. The system cannot find the file specified. This is exactly the same error I saw after trying to update Akka.Management to version 1.5.35. I filed another bug there: akkadotnet/Akka.Management#3079 But now it's in Akka.Persistence.Sql.Journal.SqlWriteJournal And it may explain absurd number of instances. I will rollback to previous version. |
@Aaronontheweb |
I think we've gotten to the bottom of this - some of our packages are not dual targeted:
Our BCL upgrade to 8.x is creating problems for these packages. We're going to fix this by shipping a dual-targeted version. |
Rolling back helped. No exceptions and Akka.Persistence.Journal.AsyncWriteJournal+Resequencer disappeared from the list. |
It looks like the BCL upgrade we did for .NET Standard packages only was the issue - we'll address this in a new release of Akka.NET, but for now we can also fix it by pushing some package upgrades and ensuring that they are dual-targeted |
I see. That explains it. Was it only two packages (Akka.Persistence.Sql and Akka.Discovery.Azure) that were affected? |
First two we've found so far - but basically it was any package that didn't do dual-targeting has this issue. The other thing I'll do is downgrade the BCL version back to 6.0. |
This will stop the |
The DLL hell issue will be resolved via akkadotnet/akka.net#7482 |
Finally we can see our customized F# actor type names (thanks for fixing it so quickly), so we can see our actor types in "Live Actors by Type" and "Actor Starts and Stops" panels. But the panels show mostly system actors, even though monitoring of them is disabled with the following code:
For example, "Live Actors by Type" dashboard looks like this:
Only 3 of 8 actor types represent our own actors, the rest are system actors which are of no interest for us to collect metrics for.
Shouldn't SetMonitorSystemActors(false) disable their monitoring so they don't appear in dashboards? If not, would it be possible to support monitor filtering, so we can configure what actor types should be excluded?
The text was updated successfully, but these errors were encountered: