Questions tagged [statsd]

A simple, lightweight network daemon to collect and aggregate metrics over UDP.

About

StatsD is developed by Etsy team and is written in node.js. It is a network daemon which listens on a predefined port for UDP packets that are send to it which describe different data metrics, aggregates them, and flushes the aggregated data through back end defined by the user.

The applications can feed any number of UDP packets in formats defined by statsD termed as buckets.

StatsD aggregates the data received over UDP and creates the result for the defined flush interval and sends it to the defined backend.

The default backend provided by statsD is graphite and it has options to choose the backend that may fit the application scenario.

Concepts

  1. 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)
  2. values : Each stat will have a value. How it is interpreted depends on modifiers
  3. flush : After the flush interval timeout (default 10 seconds), stats are munged and sent over to Graphite or any other backend choosen.

Supported Backends

  1. Graphite (graphite): An open-source time-series data store that provides visualization through a web-browser.
  2. Console (console): Outputs the received metrics to stdout (see what's going on during development).
  3. Repeater (repeater): Utilizes the packet emit API to forward raw packets retrieved by StatsD to multiple backend StatsD instances.
  4. More options available as separate packges can be found here

Open Source

fork StatsD from here: http://github.com/etsy/statsd

323 questions
9
votes
1 answer

Graphite: sum all stats that match a pattern?

I'm sending stats to a Graphite server via statsd. My stats are fairly fine-grained, and can be easily added by developers. I'd like to roll up all statistics matching a certain pattern (stats.timers.api.*.200.count, for example). Is that possible…
Patrick Linskey
  • 1,124
  • 1
  • 13
  • 24
8
votes
0 answers

Adding Custom Metrics rule in Airflow to monitor Airflow-Worker logs via prometheus

I want to monitor my Airflow-Worker logs via Prometheus. Currently I am sending my Airflow-Webserver Metrics available in the official documentation - Airflow-Metrics-docs . So That statsd exporter send these metrics to prometheus to monitor. Is…
dataintransit
  • 174
  • 1
  • 7
8
votes
1 answer

Defining "global" behavior in Gulp (measuring task duration)

I'm working on moving us from ant to gulp, and as part of the effort I want to write timing stats to Graphite. We're doing this in ant as well (no idea how, beside the point anyway). My question is, I'd prefer to not have to add some or other plugin…
Steven
  • 1,566
  • 2
  • 16
  • 38
8
votes
1 answer

How to alert in Seyren with Graphite if transactions in last 60 minutes are less than x?

I'm using Graphite+Statsd (with Python client) to collect custom metrics from a webapp: a counter for successful transactions. Let's say the counter is stats.transactions.count, that also has a rate/per/second metric available at…
dukebody
  • 7,025
  • 3
  • 36
  • 61
8
votes
4 answers

Deleted/Empty Graphite Whisper Files Automatically Re-Generating

I am trying to delete some old graphite test whisper metrics without any success. I can delete the metrics by removing the files. (See: How to cleanup the graphite whisper's data? ) But, within a few seconds of blowing away the files they…
Jeff
  • 8,020
  • 34
  • 99
  • 157
8
votes
2 answers

How do you run utility services on Heroku?

Heroku is fantastic for prototyping ideas and running simple web services, I often use it to run Python web services like Flask and Django and try out ideas. However I've always struggled to understand how you can use the infrastricture to run those…
Matt Alcock
  • 12,399
  • 14
  • 45
  • 61
7
votes
1 answer

what is the use case of statsd gauge?

I'm struggling to understand about the concept of gauge in statsd. Please explain how it works and and some example when it can be useful. The doc is not really clear to me Set a gauge value. stat: the name of the gauge to set. value: the current…
Jerry
  • 1,704
  • 5
  • 20
  • 40
7
votes
1 answer

How to analyze memcache key hit rate with graphite?

I have a Rails app which uses caching extensively and I want to know cache hit rate for different places in the app. Low hit rate places obviously need attention. But measure first! To obtain real data I use graphite + statsd combo and a custom…
7
votes
1 answer

How can I get a cumulated count graph with statsd and graphite?

I'm using statsd (the latest version from the git master branch) with graphite (0.9.10) as the backend. In my (Django) code I call statsd.incr("signups") when a user signs up. In graphite's web interface, I now see a beautiful graph showing the…
MiniQuark
  • 46,633
  • 36
  • 147
  • 183
7
votes
3 answers

scaling statsd with multiple servers

I am laying out an architecture where we will be using statsd and graphite. I understand how graphite works and how a single statsd server could communicate with it. I am wondering how the architecture and set up would work for scaling out statsd…
Shawn
  • 260
  • 4
  • 8
6
votes
1 answer

Pass variable that includes double quotes (") in its value to a container from K8s deployment

I am trying to deploy the statsd exporter (https://github.com/prometheus/statsd_exporter) software as a docker container in a K8s cluster. However, I want some parameters to be configurable. In order to do that, I am passing some arguments to the…
6
votes
1 answer

How to set the time precision of the telegraf statsd (influxdb)?

I'm using telegraf with influxdb, and in the telegraf I'm using the statsd_input plugin. The statsd_input.conf: [[inputs.statsd]] ## Address and port to host UDP listener on service_address = ":8126" ## The following configuration options…
Yuval Pruss
  • 8,716
  • 15
  • 42
  • 67
6
votes
1 answer

Send Datadog tags in exometer

I am using exometer and the exometer_report_statsd reporter to report Phoenix endpoints response times to Datadog via dogstatsd. From a Plug, I am calling :exometer.update/2 to send the response time to Datadog. E.g: :exometer.update [:app_name,…
carpamon
  • 6,515
  • 3
  • 38
  • 51
6
votes
3 answers

Obtaining a total of two series of data from InfluxDB in Grafana

I am perplexed at this point. I spent a day or three in the deep end of Influx and Grafana, to get some graphs plotted that are crucial to my needs. However, with the last one I need to total up two metrics (two increment counts, in column value).…
6
votes
2 answers

Pattern matching based on the function signature

In F# can you pattern match on a function signature. I want to decorate a number of functions with a function that measures the execution of the function and calls out to statsd. The current function I have is: let…
bstack
  • 2,466
  • 3
  • 25
  • 38
1
2
3
21 22