Skip to content

Commit bec6e06

Browse files
committed
Add optional telemetry for payjoin-service
This enables structured log output and configures exporters for OpenTelemetry.
1 parent a3ea6ab commit bec6e06

6 files changed

Lines changed: 405 additions & 10 deletions

File tree

Cargo-minimal.lock

Lines changed: 154 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2106,6 +2106,15 @@ version = "1.70.1"
21062106
source = "registry+https://github.com/rust-lang/crates.io-index"
21072107
checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf"
21082108

2109+
[[package]]
2110+
name = "itertools"
2111+
version = "0.14.0"
2112+
source = "registry+https://github.com/rust-lang/crates.io-index"
2113+
checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285"
2114+
dependencies = [
2115+
"either",
2116+
]
2117+
21092118
[[package]]
21102119
name = "itoa"
21112120
version = "1.0.11"
@@ -2512,6 +2521,61 @@ dependencies = [
25122521
"tracing",
25132522
]
25142523

2524+
[[package]]
2525+
name = "opentelemetry-appender-tracing"
2526+
version = "0.31.1"
2527+
source = "registry+https://github.com/rust-lang/crates.io-index"
2528+
checksum = "ef6a1ac5ca3accf562b8c306fa8483c85f4390f768185ab775f242f7fe8fdcc2"
2529+
dependencies = [
2530+
"opentelemetry",
2531+
"tracing",
2532+
"tracing-core",
2533+
"tracing-subscriber",
2534+
]
2535+
2536+
[[package]]
2537+
name = "opentelemetry-http"
2538+
version = "0.31.0"
2539+
source = "registry+https://github.com/rust-lang/crates.io-index"
2540+
checksum = "d7a6d09a73194e6b66df7c8f1b680f156d916a1a942abf2de06823dd02b7855d"
2541+
dependencies = [
2542+
"async-trait",
2543+
"bytes",
2544+
"http",
2545+
"opentelemetry",
2546+
"reqwest",
2547+
]
2548+
2549+
[[package]]
2550+
name = "opentelemetry-otlp"
2551+
version = "0.31.0"
2552+
source = "registry+https://github.com/rust-lang/crates.io-index"
2553+
checksum = "7a2366db2dca4d2ad033cad11e6ee42844fd727007af5ad04a1730f4cb8163bf"
2554+
dependencies = [
2555+
"http",
2556+
"opentelemetry",
2557+
"opentelemetry-http",
2558+
"opentelemetry-proto",
2559+
"opentelemetry_sdk",
2560+
"prost",
2561+
"reqwest",
2562+
"thiserror 2.0.17",
2563+
"tracing",
2564+
]
2565+
2566+
[[package]]
2567+
name = "opentelemetry-proto"
2568+
version = "0.31.0"
2569+
source = "registry+https://github.com/rust-lang/crates.io-index"
2570+
checksum = "a7175df06de5eaee9909d4805a3d07e28bb752c34cab57fa9cff549da596b30f"
2571+
dependencies = [
2572+
"opentelemetry",
2573+
"opentelemetry_sdk",
2574+
"prost",
2575+
"tonic",
2576+
"tonic-prost",
2577+
]
2578+
25152579
[[package]]
25162580
name = "opentelemetry_sdk"
25172581
version = "0.31.0"
@@ -2725,6 +2789,8 @@ dependencies = [
27252789
"config",
27262790
"ohttp-relay",
27272791
"opentelemetry",
2792+
"opentelemetry-appender-tracing",
2793+
"opentelemetry-otlp",
27282794
"opentelemetry_sdk",
27292795
"payjoin-directory",
27302796
"payjoin-test-utils",
@@ -2739,6 +2805,7 @@ dependencies = [
27392805
"tokio-stream",
27402806
"tower",
27412807
"tracing",
2808+
"tracing-opentelemetry",
27422809
"tracing-subscriber",
27432810
]
27442811

@@ -2942,6 +3009,29 @@ dependencies = [
29423009
"unicode-ident",
29433010
]
29443011

3012+
[[package]]
3013+
name = "prost"
3014+
version = "0.14.3"
3015+
source = "registry+https://github.com/rust-lang/crates.io-index"
3016+
checksum = "d2ea70524a2f82d518bce41317d0fae74151505651af45faf1ffbd6fd33f0568"
3017+
dependencies = [
3018+
"bytes",
3019+
"prost-derive",
3020+
]
3021+
3022+
[[package]]
3023+
name = "prost-derive"
3024+
version = "0.14.3"
3025+
source = "registry+https://github.com/rust-lang/crates.io-index"
3026+
checksum = "27c6023962132f4b30eb4c172c91ce92d933da334c59c23cddee82358ddafb0b"
3027+
dependencies = [
3028+
"anyhow",
3029+
"itertools",
3030+
"proc-macro2",
3031+
"quote",
3032+
"syn 2.0.106",
3033+
]
3034+
29453035
[[package]]
29463036
name = "quinn"
29473037
version = "0.11.8"
@@ -4227,6 +4317,38 @@ version = "1.0.4"
42274317
source = "registry+https://github.com/rust-lang/crates.io-index"
42284318
checksum = "df8b2b54733674ad286d16267dcfc7a71ed5c776e4ac7aa3c3e2561f7c637bf2"
42294319

4320+
[[package]]
4321+
name = "tonic"
4322+
version = "0.14.3"
4323+
source = "registry+https://github.com/rust-lang/crates.io-index"
4324+
checksum = "a286e33f82f8a1ee2df63f4fa35c0becf4a85a0cb03091a15fd7bf0b402dc94a"
4325+
dependencies = [
4326+
"async-trait",
4327+
"base64 0.22.1",
4328+
"bytes",
4329+
"http",
4330+
"http-body",
4331+
"http-body-util",
4332+
"percent-encoding",
4333+
"pin-project",
4334+
"sync_wrapper",
4335+
"tokio-stream",
4336+
"tower-layer",
4337+
"tower-service",
4338+
"tracing",
4339+
]
4340+
4341+
[[package]]
4342+
name = "tonic-prost"
4343+
version = "0.14.3"
4344+
source = "registry+https://github.com/rust-lang/crates.io-index"
4345+
checksum = "d6c55a2d6a14174563de34409c9f92ff981d006f56da9c6ecd40d9d4a31500b0"
4346+
dependencies = [
4347+
"bytes",
4348+
"prost",
4349+
"tonic",
4350+
]
4351+
42304352
[[package]]
42314353
name = "tower"
42324354
version = "0.5.2"
@@ -4322,6 +4444,35 @@ dependencies = [
43224444
"tracing-core",
43234445
]
43244446

4447+
[[package]]
4448+
name = "tracing-opentelemetry"
4449+
version = "0.32.0"
4450+
source = "registry+https://github.com/rust-lang/crates.io-index"
4451+
checksum = "1e6e5658463dd88089aba75c7791e1d3120633b1bfde22478b28f625a9bb1b8e"
4452+
dependencies = [
4453+
"js-sys",
4454+
"opentelemetry",
4455+
"opentelemetry_sdk",
4456+
"rustversion",
4457+
"smallvec",
4458+
"thiserror 2.0.17",
4459+
"tracing",
4460+
"tracing-core",
4461+
"tracing-log",
4462+
"tracing-subscriber",
4463+
"web-time",
4464+
]
4465+
4466+
[[package]]
4467+
name = "tracing-serde"
4468+
version = "0.2.0"
4469+
source = "registry+https://github.com/rust-lang/crates.io-index"
4470+
checksum = "704b1aeb7be0d0a84fc9828cae51dab5970fee5088f83d1dd7ee6f6246fc6ff1"
4471+
dependencies = [
4472+
"serde",
4473+
"tracing-core",
4474+
]
4475+
43254476
[[package]]
43264477
name = "tracing-subscriber"
43274478
version = "0.3.20"
@@ -4332,12 +4483,15 @@ dependencies = [
43324483
"nu-ansi-term",
43334484
"once_cell",
43344485
"regex-automata",
4486+
"serde",
4487+
"serde_json",
43354488
"sharded-slab",
43364489
"smallvec",
43374490
"thread_local",
43384491
"tracing",
43394492
"tracing-core",
43404493
"tracing-log",
4494+
"tracing-serde",
43414495
]
43424496

43434497
[[package]]

0 commit comments

Comments
 (0)