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...
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 = "myApp.prod"
});
Start measuring all the things!
Metrics.Counter("stat-name");
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
}
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.