using System.Threading.Tasks;
namespace StatsdClient
{
///
/// Interface for the statsd.net client
///
public interface IStatsd
{
///
/// Log a count for a metric
///
Task LogCountAsync(string name, long count = 1);
///
/// Log a gauge value
///
Task LogGaugeAsync(string name, long value);
///
/// Log a latency / Timing
///
Task LogTimingAsync(string name, long milliseconds);
///
/// Log the number of unique occurrances of something
///
///
///
Task LogSetAsync(string name, long value);
///
/// Log a calendargram metric
///
/// The metric namespace
/// The unique value to be counted in the time period
/// The time period, can be one of h,d,dow,w,m
Task LogCalendargramAsync(string name, string value, string period);
///
/// Log a calendargram metric
///
/// The metric namespace
/// The unique value to be counted in the time period
/// The time period, can be one of h,d,dow,w,m
Task LogCalendargramAsync(string name, long value, string period);
///
/// Log a raw metric that will not get aggregated on the server.
///
/// The metric name.
/// The metric value.
/// (optional) The epoch timestamp. Leave this blank to have the server assign an epoch for you.
Task LogRawAsync(string name, long value, long? epoch = null);
}
}