[−][src]Crate dogstatsd
A Rust client for interacting with Dogstatsd
Dogstatsd is a custom StatsD
implementation by DataDog
for sending metrics and events to their
system. Through this client you can report any type of metric you want, tag it, and enjoy your
custom metrics.
Usage
Build an options struct and create a client:
use dogstatsd::{Client, Options}; // Binds to a udp socket on an available ephemeral port on 127.0.0.1 for // transmitting, and sends to 127.0.0.1:8125, the default dogstatsd // address. let default_options = Options::default(); let default_client = Client::new(default_options).unwrap(); // Binds to 127.0.0.1:9000 for transmitting and sends to 10.1.2.3:8125, with a // namespace of "analytics". let custom_options = Options::new("127.0.0.1:9000", "10.1.2.3:8125", "analytics"); let custom_client = Client::new(custom_options).unwrap();
Start sending metrics:
use dogstatsd::{Client, Options, ServiceCheckOptions, ServiceStatus}; let client = Client::new(Options::default()).unwrap(); let tags = &["env:production"]; // Increment a counter client.incr("my_counter", tags).unwrap(); // Decrement a counter client.decr("my_counter", tags).unwrap(); // Time a block of code (reports in ms) client.time("my_time", tags, || { // Some time consuming code }).unwrap(); // Report your own timing in ms client.timing("my_timing", 500, tags).unwrap(); // Report an arbitrary value (a gauge) client.gauge("my_gauge", "12345", tags).unwrap(); // Report a sample of a histogram client.histogram("my_histogram", "67890", tags).unwrap(); // Report a sample of a distribution client.distribution("distribution", "67890", tags).unwrap(); // Report a member of a set client.set("my_set", "13579", tags).unwrap(); // Report a service check let service_check_options = ServiceCheckOptions { hostname: Some("my-host.localhost"), ..Default::default() }; client.service_check("redis.can_connect", ServiceStatus::OK, tags, Some(service_check_options)).unwrap(); // Send a custom event client.event("My Custom Event Title", "My Custom Event Body", tags).unwrap();
Structs
Client | The client struct that handles sending metrics to the Dogstatsd server. |
Options | The struct that represents the options available for the Dogstatsd client. |
ServiceCheckOptions | Struct for adding optional pieces to a service check |
Enums
DogstatsdError | This type represents the possible errors that can occur while sending DogstatsD metrics. |
ServiceStatus | Represents the different states a service can be in |
Type Definitions
DogstatsdResult | A type alias for returning a unit type or an error |