Skip to content

Commit 01614ec

Browse files
committed
feat: convert timestamp to rfc3339
1 parent 8cc640b commit 01614ec

4 files changed

Lines changed: 20 additions & 3 deletions

File tree

Cargo.lock

Lines changed: 3 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ version = "0.1.0"
44
edition = "2024"
55

66
[dependencies]
7+
chrono = "0.4.41"
78
clap = { version = "4.5.42", features = ["derive"] }
89
elasticsearch = "9.0.0-alpha.1"
910
redis = "0.32.4"

src/elastic_push.rs

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,14 @@ fn elastic_client(config: &ElasticConfig) -> Result<Elasticsearch, Box<dyn Error
1818

1919
/// Convert a LogRecord to the document we want Elastic to ingest
2020
fn json_from_logrecord(record: &LogRecord) -> Result<serde_json::Value, serde_json::Error> {
21-
// Currently a naive implementation but could be:
22-
// serde_json::json!({"field_a": record.a, "field_b": record.b, etc...})
23-
dbg!(serde_json::to_value(record))
21+
// dbg!(serde_json::to_value(record))
22+
dbg!(Ok(serde_json::json!({
23+
"@timestamp": record.time.as_rfc3339(),
24+
"file": record.file,
25+
"function": record.function,
26+
"message": record.message,
27+
"log_type": record.level.name
28+
})))
2429
}
2530

2631
fn make_json_body(

src/redis_logs.rs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
use chrono::TimeZone;
12
use redis::Commands;
23
use rmp_serde;
34
use serde::{Deserialize, Serialize};
@@ -33,6 +34,13 @@ pub struct Timestamp {
3334
pub repr: String,
3435
pub timestamp: f64,
3536
}
37+
38+
impl Timestamp {
39+
pub fn as_rfc3339(&self) -> String {
40+
let ts = chrono::Utc.timestamp_opt(self.timestamp as i64, 0).unwrap();
41+
ts.to_rfc3339()
42+
}
43+
}
3644
#[derive(Debug, PartialEq, Deserialize, Serialize, Clone)]
3745
pub struct LogRecord {
3846
pub elapsed: Elapsed,

0 commit comments

Comments
 (0)