#[non_exhaustive]pub struct ObservabilityPipelineConfig {
pub destinations: Vec<ObservabilityPipelineConfigDestinationItem>,
pub processors: Option<Vec<ObservabilityPipelineConfigProcessorItem>>,
pub sources: Vec<ObservabilityPipelineConfigSourceItem>,
pub additional_properties: BTreeMap<String, Value>,
/* private fields */
}
Expand description
Specifies the pipeline’s configuration, including its sources, processors, and destinations.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional
Struct { .. }
syntax; cannot be matched against without a wildcard ..
; and struct update syntax will not work.destinations: Vec<ObservabilityPipelineConfigDestinationItem>
A list of destination components where processed logs are sent.
processors: Option<Vec<ObservabilityPipelineConfigProcessorItem>>
A list of processors that transform or enrich log data.
sources: Vec<ObservabilityPipelineConfigSourceItem>
A list of configured data sources for the pipeline.
additional_properties: BTreeMap<String, Value>
Implementations§
Source§impl ObservabilityPipelineConfig
impl ObservabilityPipelineConfig
Sourcepub fn new(
destinations: Vec<ObservabilityPipelineConfigDestinationItem>,
sources: Vec<ObservabilityPipelineConfigSourceItem>,
) -> ObservabilityPipelineConfig
pub fn new( destinations: Vec<ObservabilityPipelineConfigDestinationItem>, sources: Vec<ObservabilityPipelineConfigSourceItem>, ) -> ObservabilityPipelineConfig
Examples found in repository?
examples/v2_observability-pipelines_CreatePipeline.rs (lines 24-46)
19async fn main() {
20 let body =
21 ObservabilityPipelineSpec::new(
22 ObservabilityPipelineSpecData::new(
23 ObservabilityPipelineDataAttributes::new(
24 ObservabilityPipelineConfig::new(
25 vec![
26 ObservabilityPipelineConfigDestinationItem::ObservabilityPipelineDatadogLogsDestination(
27 Box::new(
28 ObservabilityPipelineDatadogLogsDestination::new(
29 "datadog-logs-destination".to_string(),
30 vec!["filter-processor".to_string()],
31 ObservabilityPipelineDatadogLogsDestinationType::DATADOG_LOGS,
32 ),
33 ),
34 )
35 ],
36 vec![
37 ObservabilityPipelineConfigSourceItem::ObservabilityPipelineDatadogAgentSource(
38 Box::new(
39 ObservabilityPipelineDatadogAgentSource::new(
40 "datadog-agent-source".to_string(),
41 ObservabilityPipelineDatadogAgentSourceType::DATADOG_AGENT,
42 ),
43 ),
44 )
45 ],
46 ).processors(
47 vec![
48 ObservabilityPipelineConfigProcessorItem::ObservabilityPipelineFilterProcessor(
49 Box::new(
50 ObservabilityPipelineFilterProcessor::new(
51 "filter-processor".to_string(),
52 "service:my-service".to_string(),
53 vec!["datadog-agent-source".to_string()],
54 ObservabilityPipelineFilterProcessorType::FILTER,
55 ),
56 ),
57 )
58 ],
59 ),
60 "Main Observability Pipeline".to_string(),
61 ),
62 "pipelines".to_string(),
63 ),
64 );
65 let mut configuration = datadog::Configuration::new();
66 configuration.set_unstable_operation_enabled("v2.CreatePipeline", true);
67 let api = ObservabilityPipelinesAPI::with_config(configuration);
68 let resp = api.create_pipeline(body).await;
69 if let Ok(value) = resp {
70 println!("{:#?}", value);
71 } else {
72 println!("{:#?}", resp.unwrap_err());
73 }
74}
More examples
examples/v2_observability-pipelines_ValidatePipeline.rs (lines 24-46)
19async fn main() {
20 let body =
21 ObservabilityPipelineSpec::new(
22 ObservabilityPipelineSpecData::new(
23 ObservabilityPipelineDataAttributes::new(
24 ObservabilityPipelineConfig::new(
25 vec![
26 ObservabilityPipelineConfigDestinationItem::ObservabilityPipelineDatadogLogsDestination(
27 Box::new(
28 ObservabilityPipelineDatadogLogsDestination::new(
29 "datadog-logs-destination".to_string(),
30 vec!["filter-processor".to_string()],
31 ObservabilityPipelineDatadogLogsDestinationType::DATADOG_LOGS,
32 ),
33 ),
34 )
35 ],
36 vec![
37 ObservabilityPipelineConfigSourceItem::ObservabilityPipelineDatadogAgentSource(
38 Box::new(
39 ObservabilityPipelineDatadogAgentSource::new(
40 "datadog-agent-source".to_string(),
41 ObservabilityPipelineDatadogAgentSourceType::DATADOG_AGENT,
42 ),
43 ),
44 )
45 ],
46 ).processors(
47 vec![
48 ObservabilityPipelineConfigProcessorItem::ObservabilityPipelineFilterProcessor(
49 Box::new(
50 ObservabilityPipelineFilterProcessor::new(
51 "filter-processor".to_string(),
52 "service:my-service".to_string(),
53 vec!["datadog-agent-source".to_string()],
54 ObservabilityPipelineFilterProcessorType::FILTER,
55 ),
56 ),
57 )
58 ],
59 ),
60 "Main Observability Pipeline".to_string(),
61 ),
62 "pipelines".to_string(),
63 ),
64 );
65 let mut configuration = datadog::Configuration::new();
66 configuration.set_unstable_operation_enabled("v2.ValidatePipeline", true);
67 let api = ObservabilityPipelinesAPI::with_config(configuration);
68 let resp = api.validate_pipeline(body).await;
69 if let Ok(value) = resp {
70 println!("{:#?}", value);
71 } else {
72 println!("{:#?}", resp.unwrap_err());
73 }
74}
examples/v2_observability-pipelines_UpdatePipeline.rs (lines 26-48)
19async fn main() {
20 // there is a valid "pipeline" in the system
21 let pipeline_data_id = std::env::var("PIPELINE_DATA_ID").unwrap();
22 let body =
23 ObservabilityPipeline::new(
24 ObservabilityPipelineData::new(
25 ObservabilityPipelineDataAttributes::new(
26 ObservabilityPipelineConfig::new(
27 vec![
28 ObservabilityPipelineConfigDestinationItem::ObservabilityPipelineDatadogLogsDestination(
29 Box::new(
30 ObservabilityPipelineDatadogLogsDestination::new(
31 "updated-datadog-logs-destination-id".to_string(),
32 vec!["filter-processor".to_string()],
33 ObservabilityPipelineDatadogLogsDestinationType::DATADOG_LOGS,
34 ),
35 ),
36 )
37 ],
38 vec![
39 ObservabilityPipelineConfigSourceItem::ObservabilityPipelineDatadogAgentSource(
40 Box::new(
41 ObservabilityPipelineDatadogAgentSource::new(
42 "datadog-agent-source".to_string(),
43 ObservabilityPipelineDatadogAgentSourceType::DATADOG_AGENT,
44 ),
45 ),
46 )
47 ],
48 ).processors(
49 vec![
50 ObservabilityPipelineConfigProcessorItem::ObservabilityPipelineFilterProcessor(
51 Box::new(
52 ObservabilityPipelineFilterProcessor::new(
53 "filter-processor".to_string(),
54 "service:my-service".to_string(),
55 vec!["datadog-agent-source".to_string()],
56 ObservabilityPipelineFilterProcessorType::FILTER,
57 ),
58 ),
59 )
60 ],
61 ),
62 "Updated Pipeline Name".to_string(),
63 ),
64 pipeline_data_id.clone(),
65 "pipelines".to_string(),
66 ),
67 );
68 let mut configuration = datadog::Configuration::new();
69 configuration.set_unstable_operation_enabled("v2.UpdatePipeline", true);
70 let api = ObservabilityPipelinesAPI::with_config(configuration);
71 let resp = api.update_pipeline(pipeline_data_id.clone(), body).await;
72 if let Ok(value) = resp {
73 println!("{:#?}", value);
74 } else {
75 println!("{:#?}", resp.unwrap_err());
76 }
77}
Sourcepub fn processors(
self,
value: Vec<ObservabilityPipelineConfigProcessorItem>,
) -> Self
pub fn processors( self, value: Vec<ObservabilityPipelineConfigProcessorItem>, ) -> Self
Examples found in repository?
examples/v2_observability-pipelines_CreatePipeline.rs (lines 46-59)
19async fn main() {
20 let body =
21 ObservabilityPipelineSpec::new(
22 ObservabilityPipelineSpecData::new(
23 ObservabilityPipelineDataAttributes::new(
24 ObservabilityPipelineConfig::new(
25 vec![
26 ObservabilityPipelineConfigDestinationItem::ObservabilityPipelineDatadogLogsDestination(
27 Box::new(
28 ObservabilityPipelineDatadogLogsDestination::new(
29 "datadog-logs-destination".to_string(),
30 vec!["filter-processor".to_string()],
31 ObservabilityPipelineDatadogLogsDestinationType::DATADOG_LOGS,
32 ),
33 ),
34 )
35 ],
36 vec![
37 ObservabilityPipelineConfigSourceItem::ObservabilityPipelineDatadogAgentSource(
38 Box::new(
39 ObservabilityPipelineDatadogAgentSource::new(
40 "datadog-agent-source".to_string(),
41 ObservabilityPipelineDatadogAgentSourceType::DATADOG_AGENT,
42 ),
43 ),
44 )
45 ],
46 ).processors(
47 vec![
48 ObservabilityPipelineConfigProcessorItem::ObservabilityPipelineFilterProcessor(
49 Box::new(
50 ObservabilityPipelineFilterProcessor::new(
51 "filter-processor".to_string(),
52 "service:my-service".to_string(),
53 vec!["datadog-agent-source".to_string()],
54 ObservabilityPipelineFilterProcessorType::FILTER,
55 ),
56 ),
57 )
58 ],
59 ),
60 "Main Observability Pipeline".to_string(),
61 ),
62 "pipelines".to_string(),
63 ),
64 );
65 let mut configuration = datadog::Configuration::new();
66 configuration.set_unstable_operation_enabled("v2.CreatePipeline", true);
67 let api = ObservabilityPipelinesAPI::with_config(configuration);
68 let resp = api.create_pipeline(body).await;
69 if let Ok(value) = resp {
70 println!("{:#?}", value);
71 } else {
72 println!("{:#?}", resp.unwrap_err());
73 }
74}
More examples
examples/v2_observability-pipelines_ValidatePipeline.rs (lines 46-59)
19async fn main() {
20 let body =
21 ObservabilityPipelineSpec::new(
22 ObservabilityPipelineSpecData::new(
23 ObservabilityPipelineDataAttributes::new(
24 ObservabilityPipelineConfig::new(
25 vec![
26 ObservabilityPipelineConfigDestinationItem::ObservabilityPipelineDatadogLogsDestination(
27 Box::new(
28 ObservabilityPipelineDatadogLogsDestination::new(
29 "datadog-logs-destination".to_string(),
30 vec!["filter-processor".to_string()],
31 ObservabilityPipelineDatadogLogsDestinationType::DATADOG_LOGS,
32 ),
33 ),
34 )
35 ],
36 vec![
37 ObservabilityPipelineConfigSourceItem::ObservabilityPipelineDatadogAgentSource(
38 Box::new(
39 ObservabilityPipelineDatadogAgentSource::new(
40 "datadog-agent-source".to_string(),
41 ObservabilityPipelineDatadogAgentSourceType::DATADOG_AGENT,
42 ),
43 ),
44 )
45 ],
46 ).processors(
47 vec![
48 ObservabilityPipelineConfigProcessorItem::ObservabilityPipelineFilterProcessor(
49 Box::new(
50 ObservabilityPipelineFilterProcessor::new(
51 "filter-processor".to_string(),
52 "service:my-service".to_string(),
53 vec!["datadog-agent-source".to_string()],
54 ObservabilityPipelineFilterProcessorType::FILTER,
55 ),
56 ),
57 )
58 ],
59 ),
60 "Main Observability Pipeline".to_string(),
61 ),
62 "pipelines".to_string(),
63 ),
64 );
65 let mut configuration = datadog::Configuration::new();
66 configuration.set_unstable_operation_enabled("v2.ValidatePipeline", true);
67 let api = ObservabilityPipelinesAPI::with_config(configuration);
68 let resp = api.validate_pipeline(body).await;
69 if let Ok(value) = resp {
70 println!("{:#?}", value);
71 } else {
72 println!("{:#?}", resp.unwrap_err());
73 }
74}
examples/v2_observability-pipelines_UpdatePipeline.rs (lines 48-61)
19async fn main() {
20 // there is a valid "pipeline" in the system
21 let pipeline_data_id = std::env::var("PIPELINE_DATA_ID").unwrap();
22 let body =
23 ObservabilityPipeline::new(
24 ObservabilityPipelineData::new(
25 ObservabilityPipelineDataAttributes::new(
26 ObservabilityPipelineConfig::new(
27 vec![
28 ObservabilityPipelineConfigDestinationItem::ObservabilityPipelineDatadogLogsDestination(
29 Box::new(
30 ObservabilityPipelineDatadogLogsDestination::new(
31 "updated-datadog-logs-destination-id".to_string(),
32 vec!["filter-processor".to_string()],
33 ObservabilityPipelineDatadogLogsDestinationType::DATADOG_LOGS,
34 ),
35 ),
36 )
37 ],
38 vec![
39 ObservabilityPipelineConfigSourceItem::ObservabilityPipelineDatadogAgentSource(
40 Box::new(
41 ObservabilityPipelineDatadogAgentSource::new(
42 "datadog-agent-source".to_string(),
43 ObservabilityPipelineDatadogAgentSourceType::DATADOG_AGENT,
44 ),
45 ),
46 )
47 ],
48 ).processors(
49 vec![
50 ObservabilityPipelineConfigProcessorItem::ObservabilityPipelineFilterProcessor(
51 Box::new(
52 ObservabilityPipelineFilterProcessor::new(
53 "filter-processor".to_string(),
54 "service:my-service".to_string(),
55 vec!["datadog-agent-source".to_string()],
56 ObservabilityPipelineFilterProcessorType::FILTER,
57 ),
58 ),
59 )
60 ],
61 ),
62 "Updated Pipeline Name".to_string(),
63 ),
64 pipeline_data_id.clone(),
65 "pipelines".to_string(),
66 ),
67 );
68 let mut configuration = datadog::Configuration::new();
69 configuration.set_unstable_operation_enabled("v2.UpdatePipeline", true);
70 let api = ObservabilityPipelinesAPI::with_config(configuration);
71 let resp = api.update_pipeline(pipeline_data_id.clone(), body).await;
72 if let Ok(value) = resp {
73 println!("{:#?}", value);
74 } else {
75 println!("{:#?}", resp.unwrap_err());
76 }
77}
pub fn additional_properties(self, value: BTreeMap<String, Value>) -> Self
Trait Implementations§
Source§impl Clone for ObservabilityPipelineConfig
impl Clone for ObservabilityPipelineConfig
Source§fn clone(&self) -> ObservabilityPipelineConfig
fn clone(&self) -> ObservabilityPipelineConfig
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreSource§impl Debug for ObservabilityPipelineConfig
impl Debug for ObservabilityPipelineConfig
Source§impl<'de> Deserialize<'de> for ObservabilityPipelineConfig
impl<'de> Deserialize<'de> for ObservabilityPipelineConfig
Source§fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
impl StructuralPartialEq for ObservabilityPipelineConfig
Auto Trait Implementations§
impl Freeze for ObservabilityPipelineConfig
impl RefUnwindSafe for ObservabilityPipelineConfig
impl Send for ObservabilityPipelineConfig
impl Sync for ObservabilityPipelineConfig
impl Unpin for ObservabilityPipelineConfig
impl UnwindSafe for ObservabilityPipelineConfig
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more