12 releases
0.5.1 | Dec 2, 2024 |
---|---|
0.5.0 | Nov 17, 2023 |
0.4.4 | Nov 17, 2023 |
0.4.3 | Aug 15, 2023 |
0.1.2 | Jan 7, 2023 |
#1113 in Network programming
171 downloads per month
30KB
643 lines
tokio-fluent
Installation
Add this to your Cargo.toml
[dependencies]
tokio-fluent = "0.5.1"
Example
use std::collections::HashMap;
use tokio_fluent::{Client, Config, FluentClient};
use tokio_fluent::record::{Map, Value};
use tokio_fluent::record_map;
#[tokio::main]
async fn main() {
// Connect to server using TCP
let client = Client::new_tcp(
"127.0.0.1:24224".parse().unwrap(),
&Config {..Default::default()}
)
.await
.unwrap();
// Or connecting using unix socket
let client_unix = Client::new_unix(
"/path/to/fluentd.sock",
&Config {..Default::default()}
)
.await
.unwrap();
// With Map::new()
let mut map = Map::new();
map.insert("age".to_string(), 22.into());
map.insert(
"scores".to_string(),
vec![80, 90]
.into_iter()
.map(|e| e.into())
.collect::<Vec<_>>()
.into(),
);
client.send("fluent.test", map).unwrap();
// With record_map! macro
let map_from_macro = record_map!(
"age".to_string() => 22.into(),
"scores".to_string() => [80, 90].into_iter().map(|e| e.into()).collect::<Vec<_>>().into(),
);
client.send("fluent.test", map_from_macro).unwrap();
}
Setting config values
let client = Client::new_tcp(
"127.0.0.1:24224".parse().unwrap(),
&Config {..Default::default()}
)
.await
.unwrap();
timeout
Set the timeout value of std::time::Duration
to connect to the destination. The default is 3 seconds.
retry_wait
Set the duration of the initial wait for the first retry, in milliseconds.
The actual retry wait will be r * 1.5^(N-1)
(r: this value, N: the number of retries).
The default is 500.
max_retry
Sets the maximum number of retries. If the number of retries become larger than this value, the write/send operation will fail. The default is 10.
max_retry_wait
The maximum duration of wait between retries, in milliseconds. If calculated retry wait is larger than this value, operation will fail. The default is 60,000 (60 seconds).
max_connection_lifetime
The maximum lifetime of a connection before reconnection is attempted.
Note that reconnection is only triggered when new log lines are sent. If no new log lines are received within this timeframe, the connection will remain open, even if it's older than the value. The default is 0 (no reconnection).
Dependencies
~5–13MB
~154K SLoC