frontend/service_config/
otlp.rs1use serde::{Deserialize, Serialize};
16
17const DEFAULT_TRACE_INGEST_CHUNK_SIZE: usize = 128;
18
19#[derive(Clone, Debug, Serialize, Deserialize, PartialEq, Eq)]
20#[serde(default)]
21pub struct OtlpOptions {
22 pub enable: bool,
23 pub trace_ingest_chunk_size: usize,
25}
26
27impl Default for OtlpOptions {
28 fn default() -> Self {
29 Self {
30 enable: true,
31 trace_ingest_chunk_size: DEFAULT_TRACE_INGEST_CHUNK_SIZE,
32 }
33 }
34}
35
36#[cfg(test)]
37mod tests {
38 use super::*;
39
40 #[test]
41 fn test_otlp_options() {
42 let default = OtlpOptions::default();
43 assert!(default.enable);
44 assert_eq!(
45 default.trace_ingest_chunk_size,
46 DEFAULT_TRACE_INGEST_CHUNK_SIZE
47 );
48
49 let options: OtlpOptions = toml::from_str("enable = false").unwrap();
50 assert!(!options.enable);
51 assert_eq!(
52 options.trace_ingest_chunk_size,
53 DEFAULT_TRACE_INGEST_CHUNK_SIZE
54 );
55
56 let options: OtlpOptions = toml::from_str("trace_ingest_chunk_size = 0").unwrap();
57 assert!(options.enable);
58 assert_eq!(options.trace_ingest_chunk_size, 0);
59 }
60}