4747)
4848from opentelemetry .sdk ._logs import LoggingHandler
4949from opentelemetry .sdk ._logs ._internal .export import LogExporter
50- from opentelemetry .sdk ._logs .export import ConsoleLogExporter
50+ from opentelemetry .sdk ._logs .export import (
51+ ConsoleLogExporter ,
52+ SimpleLogRecordProcessor ,
53+ )
5154from opentelemetry .sdk .environment_variables import (
5255 OTEL_TRACES_SAMPLER ,
5356 OTEL_TRACES_SAMPLER_ARG ,
6265)
6366from opentelemetry .sdk .metrics .view import Aggregation
6467from opentelemetry .sdk .resources import SERVICE_NAME , Resource
65- from opentelemetry .sdk .trace .export import ConsoleSpanExporter
68+ from opentelemetry .sdk .trace .export import (
69+ ConsoleSpanExporter ,
70+ SimpleSpanProcessor ,
71+ )
6672from opentelemetry .sdk .trace .id_generator import IdGenerator , RandomIdGenerator
6773from opentelemetry .sdk .trace .sampling import (
6874 ALWAYS_ON ,
@@ -396,6 +402,16 @@ def test_trace_init_exporter_uses_exporter_args_map(self):
396402 exporter = provider .processor .exporter
397403 self .assertEqual (exporter .compression , "gzip" )
398404
405+ def test_trace_init_custom_span_processor (self ):
406+ _init_tracing (
407+ {"otlp" : OTLPSpanExporter },
408+ id_generator = RandomIdGenerator (),
409+ processor = SimpleSpanProcessor ,
410+ )
411+
412+ provider = self .set_provider_mock .call_args [0 ][0 ]
413+ self .assertTrue (isinstance (provider .processor , SimpleSpanProcessor ))
414+
399415 @patch .dict (environ , {OTEL_PYTHON_ID_GENERATOR : "custom_id_generator" })
400416 @patch ("opentelemetry.sdk._configuration.IdGenerator" , new = IdGenerator )
401417 @patch ("opentelemetry.sdk._configuration.entry_points" )
@@ -706,6 +722,17 @@ def test_logging_init_exporter_uses_exporter_args_map(self):
706722 provider = self .set_provider_mock .call_args [0 ][0 ]
707723 self .assertEqual (provider .processor .exporter .compression , "gzip" )
708724
725+ def test_logging_init_custom_log_record_processor (self ):
726+ with ResetGlobalLoggingState ():
727+ resource = Resource .create ({})
728+ _init_logging (
729+ {"otlp" : DummyOTLPLogExporter },
730+ resource = resource ,
731+ processor = SimpleLogRecordProcessor ,
732+ )
733+ provider = self .set_provider_mock .call_args [0 ][0 ]
734+ self .assertIsInstance (provider .processor , SimpleLogRecordProcessor )
735+
709736 @patch .dict (
710737 environ ,
711738 {"OTEL_RESOURCE_ATTRIBUTES" : "service.name=otlp-service" },
@@ -742,7 +769,7 @@ def test_logging_init_disable_default(self, logging_mock, tracing_mock):
742769 _initialize_components (auto_instrumentation_version = "auto-version" )
743770 self .assertEqual (tracing_mock .call_count , 1 )
744771 logging_mock .assert_called_once_with (
745- mock .ANY , mock .ANY , False , exporter_args_map = None
772+ mock .ANY , mock .ANY , False , exporter_args_map = None , processor = None
746773 )
747774
748775 @patch .dict (
@@ -758,7 +785,11 @@ def test_logging_init_enable_env(self, logging_mock, tracing_mock):
758785 with self .assertLogs (level = WARNING ):
759786 _initialize_components (auto_instrumentation_version = "auto-version" )
760787 logging_mock .assert_called_once_with (
761- mock .ANY , mock .ANY , True , exporter_args_map = None
788+ mock .ANY ,
789+ mock .ANY ,
790+ True ,
791+ exporter_args_map = None ,
792+ processor = None ,
762793 )
763794 self .assertEqual (tracing_mock .call_count , 1 )
764795
@@ -843,6 +874,8 @@ def test_initialize_components_kwargs(
843874 "id_generator" : "TEST_GENERATOR" ,
844875 "setup_logging_handler" : True ,
845876 "exporter_args_map" : {1 : {"compression" : "gzip" }},
877+ "log_record_processor" : SimpleLogRecordProcessor ,
878+ "span_processor" : SimpleSpanProcessor ,
846879 }
847880 _initialize_components (** kwargs )
848881
@@ -877,6 +910,7 @@ def test_initialize_components_kwargs(
877910 sampler = "TEST_SAMPLER" ,
878911 resource = "TEST_RESOURCE" ,
879912 exporter_args_map = {1 : {"compression" : "gzip" }},
913+ processor = SimpleSpanProcessor ,
880914 )
881915 metrics_mock .assert_called_once_with (
882916 "TEST_METRICS_EXPORTERS_DICT" ,
@@ -888,6 +922,7 @@ def test_initialize_components_kwargs(
888922 "TEST_RESOURCE" ,
889923 True ,
890924 exporter_args_map = {1 : {"compression" : "gzip" }},
925+ processor = SimpleLogRecordProcessor ,
891926 )
892927
893928 def test_basicConfig_works_with_otel_handler (self ):
0 commit comments