Skip to content
This repository has been archived by the owner on Jun 12, 2020. It is now read-only.


Repository files navigation

Statsd Client - DEPRECATED

This project is deprecated as of March 4, 2019. There's no official maintainer, and better alternatives exist. Security only related updates will be considered going forward. Currently active versions will remain on NuGet.

We suggest migrating to JustEat.StatsD, which has a very similar API to this project, plenty of additional features, and is actively maintained.

Thanks to all the contributors and your many PRs and reported issues over the years, the numerous developers that have forked or been inspired by this client, and everyone that used it successfully in production!


Original readme...

Build status NuGet Version

A .NET Standard compatible C# client to interface with Etsy's excellent statsd server.

Install the client via NuGet with the StatsdClient package.


At app startup, configure the Metrics class:

Metrics.Configure(new MetricsConfig
  StatsdServerName = "hostname",
  Prefix = ""

Start measuring all the things!

Metrics.Time(() => myMethod(), "timer-name");
var result = Metrics.Time(() => GetResult(), "timer-name");
var result = await Metrics.Time(async () => await myAsyncMethod(), "timer-name");
Metrics.GaugeAbsoluteValue("gauge-name", 35);
Metrics.GaugeDelta("gauge-name", -5);
Metrics.Set("something-special", "3");

using (Metrics.StartTimer("stat-name"))
  // Lots of code here

Advanced Features

To enable these, see the MetricsConfig class discussed above.

  • UseTcpProtocol: sends metrics to statsd via TCP. While supported, UDP is recommended in most cases. If you need TCP reliability, a relay service running locally on the server which you'd send UDP to, and it would relay via TCP, is advised.


See the Contributing guidelines.