Skip to content

Commit 6d81f3e

Browse files
committed
WIP: Implement reporter.log.opentelemetry
1 parent ec626f8 commit 6d81f3e

File tree

5 files changed

+280
-22
lines changed

5 files changed

+280
-22
lines changed

Cargo.lock

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

Cargo.toml

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,11 @@ reqwest = { version = "0.12.23", features = ["json", "gzip", "multipart"] }
2424
serde = { version = "1.0.228", features = ["derive", "rc"] }
2525
serde_json = "1.0.145"
2626
shadow-rs = "1.4.0"
27-
spdlog-rs = { version = "0.5.1", features = ["source-location"] }
27+
# spdlog-rs = { version = "0.5.1", features = ["source-location"] }
28+
spdlog-rs = { path = "../../spdlog-rs/spdlog-rs/spdlog", features = [
29+
"source-location",
30+
] }
31+
spdlog-opentelemetry = { path = "../../spdlog-rs/spdlog-opentelemetry" }
2832
tempfile = "3.23.0"
2933
thiserror = "2.0.17"
3034
tokio = { version = "1.47.1", features = [
@@ -37,6 +41,9 @@ tokio = { version = "1.47.1", features = [
3741
] }
3842
toml = "0.9.8"
3943
warp = { version = "0.4.2", features = ["server"] }
44+
opentelemetry = "0.31.0"
45+
opentelemetry-otlp = { version = "0.31.0", features = ["grpc-tonic", "logs"] }
46+
opentelemetry_sdk = "0.31.0"
4047

4148
[build-dependencies]
4249
shadow-rs = "1.4.0"

src/cli.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ use shadow_rs::{formatcp, shadow};
55
shadow!(build);
66
use build::*;
77

8-
const VER: &str = formatcp!(
8+
pub(crate) const VER: &str = formatcp!(
99
"{}, {BRANCH} ({SHORT_COMMIT}{}), {BUILD_TIME}, {BUILD_RUST_CHANNEL}",
1010
env!("CARGO_PKG_VERSION"),
1111
if !build::GIT_CLEAN { ", dirty" } else { "" }

src/config/mod.rs

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -376,9 +376,12 @@ impl NotifyMap {
376376

377377
#[cfg(test)]
378378
mod tests {
379+
use reqwest::Url;
380+
379381
use super::*;
380382
use crate::reporter::{
381383
ConfigHeartbeat, ConfigHeartbeatHttpGet, ConfigHeartbeatKind, ConfigReporterLog,
384+
ConfigReporterLogOpenTelemetry,
382385
};
383386

384387
#[test]
@@ -387,7 +390,15 @@ mod tests {
387390
r#"
388391
interval = '1min'
389392
equidistant_intervals = true
390-
reporter = { log = { notify = ["meow"] }, heartbeat = { type = "HttpGet", url = "https://example.com/", interval = '1min' } }
393+
394+
[reporter.log]
395+
notify = ["meow"]
396+
opentelemetry = { endpoint = "http://localhost:4317" }
397+
398+
[reporter.heartbeat]
399+
type = "HttpGet"
400+
url = "https://example.com/"
401+
interval = '1min'
391402
392403
[platform.QQ.account.MyQQ]
393404
lagrange = { remote_http = { host = "localhost", port = 8000 } }
@@ -424,7 +435,10 @@ notify = ["meow", "woof", { ref = "woof", id = 123 }]
424435
equidistant_intervals: true,
425436
reporter: Accessor::new(Some(ConfigReporterRaw {
426437
log: Accessor::new(Some(ConfigReporterLog {
427-
notify_ref: vec![NotifyRef::Direct("meow".into())],
438+
opentelemetry: Some(ConfigReporterLogOpenTelemetry {
439+
endpoint: Url::parse("http://localhost:4317").unwrap(),
440+
}),
441+
notify_ref: Some(vec![NotifyRef::Direct("meow".into())]),
428442
})),
429443
heartbeat: Accessor::new(Some(ConfigHeartbeat {
430444
kind: ConfigHeartbeatKind::HttpGet(ConfigHeartbeatHttpGet {

0 commit comments

Comments
 (0)