Skip to content

Commit a6e29cf

Browse files
committed
Fix lint
1 parent 1b38071 commit a6e29cf

File tree

13 files changed

+243
-139
lines changed

13 files changed

+243
-139
lines changed

opentelemetry-declarative-config/src/lib.rs

Lines changed: 77 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -2,91 +2,102 @@
22
//!
33
//! This crate provides a declarative way to configure OpenTelemetry SDKs using YAML files.
44
5-
pub mod telemetry_config;
6-
pub mod metrics;
75
pub mod logs;
6+
pub mod metrics;
7+
pub mod telemetry_config;
88

99
use opentelemetry::global;
10-
use opentelemetry_sdk::{error::OTelSdkResult, logs::SdkLoggerProvider, metrics::SdkMeterProvider, trace::SdkTracerProvider};
10+
use opentelemetry_sdk::{
11+
error::OTelSdkResult, logs::SdkLoggerProvider, metrics::SdkMeterProvider,
12+
trace::SdkTracerProvider,
13+
};
1114

1215
use crate::{
13-
logs::{
14-
BatchExporterFactory,
15-
LogsConfig,
16-
LogsBatchExporterFactory,
17-
},
16+
logs::{BatchExporterFactory, LogsBatchExporterFactory, LogsConfig},
1817
metrics::{
19-
MetricsConfig,
20-
MetricsPeriodicExporterFactory,
21-
MetricsPullExporterFactory,
22-
PeriodicExporterFactory,
23-
PullExporterFactory,
18+
MetricsConfig, MetricsPeriodicExporterFactory, MetricsPullExporterFactory,
19+
PeriodicExporterFactory, PullExporterFactory,
2420
},
2521
telemetry_config::TelemetryConfig,
2622
};
2723

28-
pub struct Configurator {
29-
}
24+
pub struct Configurator {}
3025

3126
impl Configurator {
3227
pub fn new() -> Self {
33-
Self {
34-
}
28+
Self {}
3529
}
3630

37-
pub fn configure_telemetry_from_yaml(&self, telemetry_config_str: String) -> Result<TelemetryProviders, Box<dyn std::error::Error>> {
31+
pub fn configure_telemetry_from_yaml(
32+
&self,
33+
telemetry_config_str: String,
34+
) -> Result<TelemetryProviders, Box<dyn std::error::Error>> {
3835
let config = TelemetryConfig::from_yaml(&telemetry_config_str)?;
3936
self.configure_telemetry(config)
4037
}
4138

42-
pub fn configure_telemetry_from_yaml_file(&self, file_path: &str) -> Result<TelemetryProviders, Box<dyn std::error::Error>> {
39+
pub fn configure_telemetry_from_yaml_file(
40+
&self,
41+
file_path: &str,
42+
) -> Result<TelemetryProviders, Box<dyn std::error::Error>> {
4343
let config = TelemetryConfig::from_yaml_file(file_path)?;
4444
self.configure_telemetry(config)
4545
}
4646

47-
pub fn configure_telemetry(&self, telemetry_config: TelemetryConfig) -> Result<TelemetryProviders, Box<dyn std::error::Error>> {
48-
47+
pub fn configure_telemetry(
48+
&self,
49+
telemetry_config: TelemetryConfig,
50+
) -> Result<TelemetryProviders, Box<dyn std::error::Error>> {
4951
let mut configured_telemetry_providers = TelemetryProviders::new();
5052

5153
let resource = Self::as_resource(telemetry_config.resource);
5254
if let Some(metrics_config) = telemetry_config.metrics {
53-
let sdk_meter_provider_option = self.build_metrics_sdk_provider(metrics_config, resource.clone())?;
54-
configured_telemetry_providers = configured_telemetry_providers
55-
.with_meter_provider(sdk_meter_provider_option);
55+
let sdk_meter_provider_option =
56+
self.build_metrics_sdk_provider(metrics_config, resource.clone())?;
57+
configured_telemetry_providers =
58+
configured_telemetry_providers.with_meter_provider(sdk_meter_provider_option);
5659
}
5760

5861
if let Some(logs_config) = telemetry_config.logs {
59-
let sdk_logger_provider_option = self.build_logs_sdk_provider(logs_config, resource.clone())?;
60-
configured_telemetry_providers = configured_telemetry_providers
61-
.with_logs_provider(sdk_logger_provider_option);
62+
let sdk_logger_provider_option =
63+
self.build_logs_sdk_provider(logs_config, resource.clone())?;
64+
configured_telemetry_providers =
65+
configured_telemetry_providers.with_logs_provider(sdk_logger_provider_option);
6266
}
6367

6468
//TODO: Add similar configuration for traces when implemented
6569
Ok(configured_telemetry_providers)
6670
}
6771

68-
fn build_metrics_sdk_provider(&self, metrics_config: MetricsConfig, resource: opentelemetry_sdk::Resource) -> Result<SdkMeterProvider, Box<dyn std::error::Error>> {
69-
70-
let mut provider_builder = SdkMeterProvider::builder()
71-
.with_resource(resource);
72+
fn build_metrics_sdk_provider(
73+
&self,
74+
metrics_config: MetricsConfig,
75+
resource: opentelemetry_sdk::Resource,
76+
) -> Result<SdkMeterProvider, Box<dyn std::error::Error>> {
77+
let mut provider_builder = SdkMeterProvider::builder().with_resource(resource);
7278

7379
for reader_config in metrics_config.readers {
7480
if let Some(periodic_reader) = reader_config.periodic {
7581
let periodic_exporter_config = periodic_reader.exporter;
7682
if let Some(periodic_exporter_mapping) = periodic_exporter_config.as_mapping() {
7783
for (key, value) in periodic_exporter_mapping {
7884
if let Some(periodic_exporter_factory_name) = key.as_str() {
79-
let exporter_factory = PeriodicExporterFactory::from_name(periodic_exporter_factory_name)?;
85+
let exporter_factory =
86+
PeriodicExporterFactory::from_name(periodic_exporter_factory_name)?;
8087
let config = value;
8188
match exporter_factory {
8289
PeriodicExporterFactory::Stdout(factory) => {
83-
let periodic_exporter = factory.create_metrics_periodic_exporter(config)?;
84-
provider_builder = provider_builder.with_periodic_exporter(periodic_exporter);
85-
},
90+
let periodic_exporter =
91+
factory.create_metrics_periodic_exporter(config)?;
92+
provider_builder =
93+
provider_builder.with_periodic_exporter(periodic_exporter);
94+
}
8695
PeriodicExporterFactory::Otlp(factory) => {
87-
let periodic_exporter = factory.create_metrics_periodic_exporter(config)?;
88-
provider_builder = provider_builder.with_periodic_exporter(periodic_exporter);
89-
},
96+
let periodic_exporter =
97+
factory.create_metrics_periodic_exporter(config)?;
98+
provider_builder =
99+
provider_builder.with_periodic_exporter(periodic_exporter);
100+
}
90101
}
91102
} else {
92103
return Err("Invalid periodic exporter factory configuration".into());
@@ -101,13 +112,15 @@ impl Configurator {
101112
if let Some(pull_exporter_mapping) = pull_exporter_config.as_mapping() {
102113
for (key, value) in pull_exporter_mapping {
103114
if let Some(pull_exporter_factory_name) = key.as_str() {
104-
let exporter_factory = PullExporterFactory::from_name(pull_exporter_factory_name)?;
115+
let exporter_factory =
116+
PullExporterFactory::from_name(pull_exporter_factory_name)?;
105117
let config = value;
106118
match exporter_factory {
107119
PullExporterFactory::Prometheus(factory) => {
108-
let pull_exporter = factory.create_metrics_pull_exporter(config)?;
120+
let pull_exporter =
121+
factory.create_metrics_pull_exporter(config)?;
109122
provider_builder = provider_builder.with_reader(pull_exporter);
110-
},
123+
}
111124
}
112125
} else {
113126
return Err("Invalid pull exporter factory configuration".into());
@@ -124,28 +137,35 @@ impl Configurator {
124137
Ok(provider)
125138
}
126139

127-
fn build_logs_sdk_provider(&self, logs_config: LogsConfig, resource: opentelemetry_sdk::Resource) -> Result<SdkLoggerProvider, Box<dyn std::error::Error>> {
128-
129-
let mut provider_builder = SdkLoggerProvider::builder()
130-
.with_resource(resource);
140+
fn build_logs_sdk_provider(
141+
&self,
142+
logs_config: LogsConfig,
143+
resource: opentelemetry_sdk::Resource,
144+
) -> Result<SdkLoggerProvider, Box<dyn std::error::Error>> {
145+
let mut provider_builder = SdkLoggerProvider::builder().with_resource(resource);
131146

132147
for processor_config in logs_config.processors {
133148
if let Some(batch_processor) = processor_config.batch {
134149
let batch_exporter_config = batch_processor.exporter;
135150
if let Some(batch_exporter_mapping) = batch_exporter_config.as_mapping() {
136151
for (key, value) in batch_exporter_mapping {
137152
if let Some(batch_exporter_factory_name) = key.as_str() {
138-
let exporter_factory = BatchExporterFactory::from_name(batch_exporter_factory_name)?;
153+
let exporter_factory =
154+
BatchExporterFactory::from_name(batch_exporter_factory_name)?;
139155
let config = value;
140156
match exporter_factory {
141157
BatchExporterFactory::Stdout(factory) => {
142-
let batch_exporter = factory.create_logs_batch_exporter(config)?;
143-
provider_builder = provider_builder.with_batch_exporter(batch_exporter);
144-
},
158+
let batch_exporter =
159+
factory.create_logs_batch_exporter(config)?;
160+
provider_builder =
161+
provider_builder.with_batch_exporter(batch_exporter);
162+
}
145163
BatchExporterFactory::Otlp(factory) => {
146-
let batch_exporter = factory.create_logs_batch_exporter(config)?;
147-
provider_builder = provider_builder.with_batch_exporter(batch_exporter);
148-
},
164+
let batch_exporter =
165+
factory.create_logs_batch_exporter(config)?;
166+
provider_builder =
167+
provider_builder.with_batch_exporter(batch_exporter);
168+
}
149169
}
150170
} else {
151171
return Err("Invalid batch exporter factory configuration".into());
@@ -161,10 +181,13 @@ impl Configurator {
161181
Ok(provider)
162182
}
163183

164-
fn as_resource(resource_attributes: std::collections::HashMap<String, String>) -> opentelemetry_sdk::Resource {
184+
fn as_resource(
185+
resource_attributes: std::collections::HashMap<String, String>,
186+
) -> opentelemetry_sdk::Resource {
165187
let mut resource_builder = opentelemetry_sdk::Resource::builder();
166188
for (key, value) in resource_attributes {
167-
resource_builder = resource_builder.with_attribute(opentelemetry::KeyValue::new(key, value));
189+
resource_builder =
190+
resource_builder.with_attribute(opentelemetry::KeyValue::new(key, value));
168191
}
169192
resource_builder.build()
170193
}

opentelemetry-declarative-config/src/logs.rs

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,20 @@
33
//! This module defines the configuration structures for Logs telemetry
44
//! used in OpenTelemetry SDKs.
55
6-
pub mod processor_config;
76
pub mod exporters;
7+
pub mod processor_config;
88

99
use opentelemetry_sdk::logs::LogExporter;
1010
use serde::Deserialize;
1111
use serde_yaml::Value;
1212

13-
use crate::logs::{exporters::{otlp_batch_exporter::OtlpLogsBatchExporterFactory, stdout_batch_exporter::StdoutLogsBatchExporterFactory}, processor_config::ProcessorConfig};
13+
use crate::logs::{
14+
exporters::{
15+
otlp_batch_exporter::OtlpLogsBatchExporterFactory,
16+
stdout_batch_exporter::StdoutLogsBatchExporterFactory,
17+
},
18+
processor_config::ProcessorConfig,
19+
};
1420

1521
/// Configuration for Logs telemetry
1622
#[derive(Deserialize)]
@@ -20,9 +26,11 @@ pub struct LogsConfig {
2026

2127
/// Factory trait implemented by the different logs exporters
2228
pub trait LogsBatchExporterFactory {
23-
2429
/// Creates a LogsExporter based on the provided configuration
25-
fn create_logs_batch_exporter(&self, config: &Value) -> Result<impl LogExporter + 'static, Box<dyn std::error::Error>>;
30+
fn create_logs_batch_exporter(
31+
&self,
32+
config: &Value,
33+
) -> Result<impl LogExporter + 'static, Box<dyn std::error::Error>>;
2634
}
2735

2836
/// Enum representing different Batch Exporter Factories

opentelemetry-declarative-config/src/logs/exporters.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,6 @@
33
//! This module contains the definitions and common implementations for various logs exporters
44
//! that can be used with OpenTelemetry SDKs. Exporters are responsible for sending
55
//! collected logs data to different backends or systems.
6-
7-
pub mod stdout_batch_exporter;
6+
87
pub mod otlp_batch_exporter;
8+
pub mod stdout_batch_exporter;

opentelemetry-declarative-config/src/logs/exporters/otlp_batch_exporter.rs

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,7 @@ use serde_yaml::Value;
1111
use crate::logs::LogsBatchExporterFactory;
1212

1313
/// Factory for creating OTLP Logs Batch Exporters
14-
pub struct OtlpLogsBatchExporterFactory {
15-
}
14+
pub struct OtlpLogsBatchExporterFactory {}
1615

1716
impl OtlpLogsBatchExporterFactory {
1817
/// Creates a new OtlpLogsBatchExporterFactory
@@ -28,9 +27,11 @@ impl Default for OtlpLogsBatchExporterFactory {
2827
}
2928

3029
impl LogsBatchExporterFactory for OtlpLogsBatchExporterFactory {
31-
3230
/// Creates a LogExporter based on the provided configuration
33-
fn create_logs_batch_exporter(&self, _config: &Value) -> Result<impl LogExporter + 'static, Box<dyn std::error::Error>> {
31+
fn create_logs_batch_exporter(
32+
&self,
33+
_config: &Value,
34+
) -> Result<impl LogExporter + 'static, Box<dyn std::error::Error>> {
3435
let exporter_builder = opentelemetry_otlp::LogExporter::builder();
3536

3637
#[cfg(feature = "tonic-client")]
@@ -48,9 +49,8 @@ impl LogsBatchExporterFactory for OtlpLogsBatchExporterFactory {
4849
*/
4950

5051
// TODO: Configure the exporter based on config_parsed fields. There are no methods in the builder to pass its parameters yet..
51-
52-
let exporter = exporter_builder
53-
.build()?;
52+
53+
let exporter = exporter_builder.build()?;
5454

5555
Ok(exporter)
5656
}
@@ -67,7 +67,9 @@ pub struct OtlpConfig {
6767
pub endpoint: Option<String>,
6868
}
6969

70-
fn deserialize_protocol<'de, D>(deserializer: D) -> Result<Option<opentelemetry_otlp::Protocol>, D::Error>
70+
fn deserialize_protocol<'de, D>(
71+
deserializer: D,
72+
) -> Result<Option<opentelemetry_otlp::Protocol>, D::Error>
7173
where
7274
D: Deserializer<'de>,
7375
{
@@ -114,20 +116,24 @@ mod tests {
114116
protocol: "http/protobuf"
115117
"#;
116118
let config: OtlpConfig = from_str(yaml_http_binary).unwrap();
117-
assert_eq!(config.protocol, Some(opentelemetry_otlp::Protocol::HttpBinary));
119+
assert_eq!(
120+
config.protocol,
121+
Some(opentelemetry_otlp::Protocol::HttpBinary)
122+
);
118123

119124
let yaml_http_json = r#"
120125
protocol: "http/json"
121126
"#;
122127
let config: OtlpConfig = from_str(yaml_http_json).unwrap();
123-
assert_eq!(config.protocol, Some(opentelemetry_otlp::Protocol::HttpJson));
128+
assert_eq!(
129+
config.protocol,
130+
Some(opentelemetry_otlp::Protocol::HttpJson)
131+
);
124132

125133
let yaml_unknown = r#"
126134
protocol: "http/unknown"
127135
"#;
128136
let config: Result<OtlpConfig, _> = from_str(yaml_unknown);
129137
assert!(config.is_err());
130-
131138
}
132-
133139
}

opentelemetry-declarative-config/src/logs/exporters/stdout_batch_exporter.rs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,7 @@ use serde_yaml::Value;
1010
use crate::logs::LogsBatchExporterFactory;
1111

1212
/// Factory for creating Stdout Logs Batch Exporters
13-
pub struct StdoutLogsBatchExporterFactory {
14-
}
13+
pub struct StdoutLogsBatchExporterFactory {}
1514

1615
impl StdoutLogsBatchExporterFactory {
1716
/// Creates a new StdoutLogsBatchExporterFactory
@@ -28,7 +27,10 @@ impl Default for StdoutLogsBatchExporterFactory {
2827

2928
impl LogsBatchExporterFactory for StdoutLogsBatchExporterFactory {
3029
/// Creates a LogExporter based on the provided configuration
31-
fn create_logs_batch_exporter(&self, _config: &Value) -> Result<impl LogExporter + 'static, Box<dyn std::error::Error>> {
30+
fn create_logs_batch_exporter(
31+
&self,
32+
_config: &Value,
33+
) -> Result<impl LogExporter + 'static, Box<dyn std::error::Error>> {
3234
let exporter = opentelemetry_stdout::LogExporter::default();
3335
Ok(exporter)
3436
}

0 commit comments

Comments
 (0)