While Romeo has laid out the basic facts I'd like to add a bit of experience to the answer:
Basics Cacti is focused on graphs. It doesn't do any of the up/down monitoring that is provided by something like Nagios. Classically Nagios does not provide any useful graphs, but more on that later.
Config Scaling Cacti tends to be configured through the GUI ...
Nagios is generic monitoring solution which can be extended by using snmp agents, custom plugins and so on.
Cacti is a complete frontend to RRDTool, it stores all of the
necessary information to create graphs and populate them with data in
a MySQL database
Cacti can be used as graph solution in Nagios to represent in graphic manner ...
ELK stack does not provide monitoring. It only provides reporting unless you configure additional add-ons such as ElastAlert.
ELK also only reports (or alerts if configured) on the data that you feed into it. So to turn the question around:
Do you have your network devices configured to send micro service and network latency logging information to your ...
I've started abusing SyncThing for this purpose (among others), configuring it as a system service on laptops, then locking down it's UI to prevent it from being able to be used by a local connection originator to manipulate or access files. I get connectivity monitoring and robust rsync-like backup of field data.
It's fantastic at punching through ...
I can think of 3 possibility (Not exactly Riemann metrics based, but around anomaly detection):
Outdated but the most efficient in anomaly detectionI know: Shyline + Oculus from Etsy Both tools available from etsy's github as Skyline and oculus, check the network graph for more up to date forks. Best one I found is earthgecko/skyline with its doc
In our environment we use Appdynamics and logz.io for all levels of monitoring and it's a best tool,
Basically it monitor it for all levels,
Application especially works well on Java based services
service endpoints, etc.,
Also it monitors all the components like, CPU, Memory, Load average, ...
I believe some of the monitoring tools like Dynatrace and Scope show some neat stuff. This really depends on your platform (I'm assuming Kubernetes).
However, if you are running something else checkout Visceral. Here is a neat video of it in action. It's more complicated to get up and going.