Cacti vs StatsD: What are the differences?
What is Cacti? Cacti stores all of the necessary information to create graphs and populate them with data in a MySQL database. Cacti is a complete network graphing solution designed to harness the power of RRDTool's data storage and graphing functionality. Cacti provides a fast poller, advanced graph templating, multiple data acquisition methods, and user management features out of the box.
What is StatsD? Simple daemon for easy stats aggregation. StatsD is a front-end proxy for the Graphite/Carbon metrics server, originally written by Etsy's Erik Kastner. StatsD is a network daemon that runs on the Node.js platform and listens for statistics, like counters and timers, sent over UDP and sends aggregates to one or more pluggable backend services (e.g., Graphite).
Cacti and StatsD belong to "Monitoring Tools" category of the tech stack.
Some of the features offered by Cacti are:
- Unlimited number of graph items can be defined for each graph optionally utilizing CDEFs or data sources from within cacti.
- Automatic grouping of GPRINT graph items to AREA, STACK, and LINE[1-3] to allow for quick re-sequencing of graph items.
- Auto-Padding support to make sure graph legend text lines up.
On the other hand, StatsD provides the following key features:
- buckets: Each stat is in its own "bucket". They are not predefined anywhere. Buckets can be named anything that will translate to Graphite (periods make folders, etc)
- values: Each stat will have a value. How it is interpreted depends on modifiers. In general values should be integer.
- flush: After the flush interval timeout (defined by config.flushInterval, default 10 seconds), stats are aggregated and sent to an upstream backend service.
"Free" is the primary reason why developers consider Cacti over the competitors, whereas "Single responsibility" was stated as the key factor in picking StatsD.
StatsD is an open source tool with 14.2K GitHub stars and 1.83K GitHub forks. Here's a link to StatsD's open source repository on GitHub.
According to the StackShare community, StatsD has a broader approval, being mentioned in 72 company stacks & 16 developers stacks; compared to Cacti, which is listed in 5 company stacks and 5 developer stacks.
What is Cacti?
What is StatsD?
Need advice about which tool to choose?Ask the StackShare community!
Sign up to add, upvote and see more prosMake informed product decisions
What are the cons of using Cacti?
Sign up to get full access to all the companiesMake informed product decisions
Sign up to get full access to all the tool integrationsMake informed product decisions
Data science and engineering teams at Lyft maintain several big data pipelines that serve as the foundation for various types of analysis throughout the business.
Apache Airflow sits at the center of this big data infrastructure, allowing users to “programmatically author, schedule, and monitor data pipelines.” Airflow is an open source tool, and “Lyft is the very first Airflow adopter in production since the project was open sourced around three years ago.”
There are several key components of the architecture. A web UI allows users to view the status of their queries, along with an audit trail of any modifications the query. A metadata database stores things like job status and task instance status. A multi-process scheduler handles job requests, and triggers the executor to execute those tasks.
Airflow supports several executors, though Lyft uses CeleryExecutor to scale task execution in production. Airflow is deployed to three Amazon Auto Scaling Groups, with each associated with a celery queue.
Audit logs supplied to the web UI are powered by the existing Airflow audit logs as well as Flask signal.
Datadog, Statsd, Grafana, and PagerDuty are all used to monitor the Airflow system.
We use collectd because of it's low footprint and great capabilities. We use it to monitor our Google Compute Engine machines. More interestingly we setup collectd as StatsD replacement - all our Clojure services push application-level metrics using our own metrics library and collectd pushes them to Stackdriver
A huge part of our continuous deployment practices is to have granular alerting and monitoring across the platform. To do this, we run Sentry on-premise, inside our VPCs, for our event alerting, and we run an awesome observability and monitoring system consisting of StatsD, Graphite and Grafana. We have dashboards using this system to monitor our core subsystems so that we can know the health of any given subsystem at any moment. This system ties into our PagerDuty rotation, as well as alerts from some of our Amazon CloudWatch alarms (we’re looking to migrate all of these to our internal monitoring system soon).
StatsD is used to track the number of messages we're publishing and the type of realtime subscribers. So it shows the number of longpoll connections, the number of websocket connections etc. It also tracks how Redis is performing.