Get Advice Icon

Need advice about which tool to choose?Ask the StackShare community!

Graphite
Graphite

308
265
+ 1
39
StatsD
StatsD

209
163
+ 1
28
Add tool

Graphite vs StatsD: What are the differences?

Developers describe Graphite as "A highly scalable real-time graphing system". Graphite does two things: 1) Store numeric time-series data and 2) Render graphs of this data on demand. On the other hand, StatsD is detailed as "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).

Graphite and StatsD can be categorized as "Monitoring" tools.

Some of the features offered by Graphite are:

  • carbon - a Twisted daemon that listens for time-series data
  • whisper - a simple database library for storing time-series data (similar in design to RRD)
  • graphite webapp - A Django webapp that renders graphs on-demand using Cairo

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.

"Render any graph" is the primary reason why developers consider Graphite over the competitors, whereas "Single responsibility" was stated as the key factor in picking StatsD.

Graphite and StatsD are both open source tools. StatsD with 14.2K GitHub stars and 1.83K forks on GitHub appears to be more popular than Graphite with 4.59K GitHub stars and 1.2K GitHub forks.

Uber Technologies, Twilio SendGrid, and Shutterstock are some of the popular companies that use Graphite, whereas StatsD is used by Lyft, Kickstarter, and Sauce Labs. Graphite has a broader approval, being mentioned in 97 company stacks & 21 developers stacks; compared to StatsD, which is listed in 72 company stacks and 16 developer stacks.

What is Graphite?

Graphite does two things: 1) Store numeric time-series data and 2) Render graphs of this data on demand

What is StatsD?

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).
Get Advice Icon

Need advice about which tool to choose?Ask the StackShare community!

Why do developers choose Graphite?
Why do developers choose StatsD?

Sign up to add, upvote and see more prosMake informed product decisions

    Be the first to leave a con
    What companies use Graphite?
    What companies use StatsD?

    Sign up to get full access to all the companiesMake informed product decisions

    What tools integrate with Graphite?
    What tools integrate with StatsD?

    Sign up to get full access to all the tool integrationsMake informed product decisions

    What are some alternatives to Graphite and StatsD?
    Graphene
    Graphene is a Python library for building GraphQL schemas/types fast and easily.
    Grafana
    Grafana is a general purpose dashboard and graph composer. It's focused on providing rich ways to visualize time series metrics, mainly though graphs but supports other ways to visualize data through a pluggable panel architecture. It currently has rich support for for Graphite, InfluxDB and OpenTSDB. But supports other data sources via plugins.
    Pencil
    A web application microframework for Rust
    Kibana
    Kibana is an open source (Apache Licensed), browser based analytics and search dashboard for Elasticsearch. Kibana is a snap to setup and start using. Kibana strives to be easy to get started with, while also being flexible and powerful, just like Elasticsearch.
    Prometheus
    Prometheus is a systems and service monitoring system. It collects metrics from configured targets at given intervals, evaluates rule expressions, displays the results, and can trigger alerts if some condition is observed to be true.
    See all alternatives
    Decisions about Graphite and StatsD
    StackShare Editors
    StackShare Editors
    Kibana
    Kibana
    Grafana
    Grafana
    Elasticsearch
    Elasticsearch
    Logstash
    Logstash
    Graphite
    Graphite
    Icinga
    Icinga

    One size definitely doesn’t fit all when it comes to open source monitoring solutions, and executing generally understood best practices in the context of unique distributed systems presents all sorts of problems. Megan Anctil, a senior engineer on the Technical Operations team at Slack gave a talk at an O’Reilly Velocity Conference sharing pain points and lessons learned at wrangling known technologies such as Icinga, Graphite, Grafana, and the Elastic Stack to best fit the company’s use cases.

    At the time, Slack used a few well-known monitoring tools since it’s Technical Operations team wasn’t large enough to build an in-house solution for all of these. Nor did the team think it’s sustainable to throw money at the problem, given the volume of information processed and the not-insignificant price and rigidity of many vendor solutions. With thousands of servers across multiple regions and millions of metrics and documents being processed and indexed per second, the team had to figure out how to scale these technologies to fit Slack’s needs.

    On the backend, they experimented with multiple clusters in both Graphite and ELK, distributed Icinga nodes, and more. At the same time, they’ve tried to build usability into Grafana that reflects the team’s mental models of the system and have found ways to make alerts from Icinga more insightful and actionable.

    See more
    Conor Myhrvold
    Conor Myhrvold
    Tech Brand Mgr, Office of CTO at Uber · | 11 upvotes · 1.4M views
    atUber TechnologiesUber Technologies
    Prometheus
    Prometheus
    Graphite
    Graphite
    Grafana
    Grafana
    Nagios
    Nagios

    Why we spent several years building an open source, large-scale metrics alerting system, M3, built for Prometheus:

    By late 2014, all services, infrastructure, and servers at Uber emitted metrics to a Graphite stack that stored them using the Whisper file format in a sharded Carbon cluster. We used Grafana for dashboarding and Nagios for alerting, issuing Graphite threshold checks via source-controlled scripts. While this worked for a while, expanding the Carbon cluster required a manual resharding process and, due to lack of replication, any single node’s disk failure caused permanent loss of its associated metrics. In short, this solution was not able to meet our needs as the company continued to grow.

    To ensure the scalability of Uber’s metrics backend, we decided to build out a system that provided fault tolerant metrics ingestion, storage, and querying as a managed platform...

    https://eng.uber.com/m3/

    (GitHub : https://github.com/m3db/m3)

    See more
    StackShare Editors
    StackShare Editors
    Grafana
    Grafana
    StatsD
    StatsD
    Airflow
    Airflow
    PagerDuty
    PagerDuty
    Datadog
    Datadog
    Celery
    Celery
    AWS EC2
    AWS EC2
    Flask
    Flask

    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.

    See more
    Łukasz Korecki
    Łukasz Korecki
    CTO & Co-founder at EnjoyHQ · | 6 upvotes · 156.5K views
    atEnjoyHQEnjoyHQ
    collectd
    collectd
    Google Compute Engine
    Google Compute Engine
    StatsD
    StatsD
    Clojure
    Clojure
    Stackdriver
    Stackdriver

    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

    See more
    Sentry
    Sentry
    StatsD
    StatsD
    Graphite
    Graphite
    Grafana
    Grafana
    PagerDuty
    PagerDuty
    Amazon CloudWatch
    Amazon CloudWatch

    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).

    See more
    Interest over time
    Reviews of Graphite and StatsD
    No reviews found
    How developers use Graphite and StatsD
    Avatar of Stream
    Stream uses StatsDStatsD

    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.

    Avatar of Onezino Gabriel
    Onezino Gabriel uses GraphiteGraphite

    Utilizando computação em nuvens e o modelo de pagar pelo uso com _graphite _nós conseguimos analisar todos os logs de informação gerada pelo sistema.

    Avatar of Chris Hartwig
    Chris Hartwig uses StatsDStatsD

    Business and system counters go through StatsD and are pushed to InfluxDB

    Avatar of Tongliang Liu
    Tongliang Liu uses GraphiteGraphite

    Great metrics visualization tool together with StatsD.

    Avatar of Tongliang Liu
    Tongliang Liu uses StatsDStatsD

    Arm yourself with sensor all over your application

    How much does Graphite cost?
    How much does StatsD cost?
    Pricing unavailable
    Pricing unavailable