def test_otlp_headers_from_env(self, mock_ssl_channel, mock_secure): exporter = OTLPMetricsExporter() # pylint: disable=protected-access self.assertEqual( exporter._headers, (("key1", "value1"), ("key2", "value2")), ) exporter = OTLPMetricsExporter( headers=(("key3", "value3"), ("key4", "value4")) ) # pylint: disable=protected-access self.assertEqual( exporter._headers, (("key3", "value3"), ("key4", "value4")), )
def setUp(self): # pylint: disable=arguments-differ self.exporter = OTLPMetricsExporter(insecure=True) self.resource = SDKResource(OrderedDict([("a", 1), ("b", False)])) self.meter = MeterProvider(resource=self.resource,).get_meter( "name", "version" ) Configuration._reset() # pylint: disable=protected-access
def test_env_variables(self, mock_exporter_mixin): OTLPMetricsExporter() self.assertTrue(len(mock_exporter_mixin.call_args_list) == 1) _, kwargs = mock_exporter_mixin.call_args_list[0] self.assertEqual(kwargs["endpoint"], "collector:55680") self.assertEqual(kwargs["headers"], "key1:value1;key2:value2") self.assertEqual(kwargs["timeout"], 10) self.assertIsNotNone(kwargs["credentials"]) self.assertIsInstance(kwargs["credentials"], ChannelCredentials)
def setUp(self): self.exporter = OTLPMetricsExporter() resource = SDKResource(OrderedDict([("a", 1), ("b", False)])) self.counter_metric_record = MetricRecord( Counter( "a", "b", "c", int, MeterProvider(resource=resource, ).get_meter(__name__), ("d", ), ), OrderedDict([("e", "f")]), SumAggregator(), resource, )
def setUp(self): self.exporter = OTLPMetricsExporter(insecure=True) resource = SDKResource(OrderedDict([("a", 1), ("b", False)])) self.counter_metric_record = MetricRecord( Counter( "c", "d", "e", int, MeterProvider(resource=resource, ).get_meter(__name__), ("f", ), ), [("g", "h")], SumAggregator(), resource, ) Configuration._reset() # pylint: disable=protected-access
from opentelemetry.sdk.trace.export import BatchExportSpanProcessor span_exporter = OTLPSpanExporter( # optional # endpoint:="myCollectorURL:55678", # credentials=ChannelCredentials(credentials), # metadata=(("metadata", "metadata")), ) tracer_provider = TracerProvider() trace.set_tracer_provider(tracer_provider) span_processor = BatchExportSpanProcessor(span_exporter) tracer_provider.add_span_processor(span_processor) metric_exporter = OTLPMetricsExporter( # optional # endpoint:="myCollectorURL:55678", # credentials=ChannelCredentials(credentials), # metadata=(("metadata", "metadata")), ) # Meter is responsible for creating and recording metrics metrics.set_meter_provider(MeterProvider()) meter = metrics.get_meter(__name__) # controller collects metrics created from meter and exports it via the # exporter every interval controller = PushController(meter, metric_exporter, 5) # Configure the tracer to use the collector exporter tracer = trace.get_tracer_provider().get_tracer(__name__) with tracer.start_as_current_span("foo"): print("Hello world!")
def test_no_credentials_error( self, mock_ssl_channel, mock_secure, mock_stub ): OTLPMetricsExporter(insecure=False) self.assertTrue(mock_ssl_channel.called)
# create a CollectorSpanExporter span_exporter = OTLPSpanExporter( # optional: # endpoint="myCollectorUrl:55678", # service_name="test_service", # host_name="machine/container name", ) tracer_provider = TracerProvider() trace.set_tracer_provider(tracer_provider) span_processor = BatchExportSpanProcessor(span_exporter) tracer_provider.add_span_processor(span_processor) # create a CollectorMetricsExporter metric_exporter = OTLPMetricsExporter( # optional: # endpoint="myCollectorUrl:55678", # service_name="test_service", # host_name="machine/container name", ) # Meter is responsible for creating and recording metrics metrics.set_meter_provider(MeterProvider()) meter = metrics.get_meter(__name__) # controller collects metrics created from meter and exports it via the # exporter every interval controller = PushController(meter, metric_exporter, 5) # Configure the tracer to use the collector exporter tracer = trace.get_tracer_provider().get_tracer(__name__) with tracer.start_as_current_span("foo"): print("Hello world!")
latencyMetricName = "latency" if "INSTANCE_ID" in os.environ: instanceId = os.environ["INSTANCE_ID"] if not instanceId.strip() == "": latencyMetricName += "_" + instanceId apiBytesSentMetricName += "_" + instanceId apiBytesSentCounter = meter.create_counter(apiBytesSentMetricName, "API request load sent in bytes", "one", int) apiLatencyRecorder = meter.create_valuerecorder(latencyMetricName, "API latency time", "ms", int) # Start Metric Pipeline # Exporter to export metrics to the console exporter = OTLPMetricsExporter() # start_pipeline will notify the MeterProvider to begin collecting/exporting # metrics with the given meter, exporter and interval in seconds # TODO: Auto-Instrumentation will instantiate the MeterProvider before this # file has a chance to instantiate it. Once https://github.com/open-telemetry/opentelemetry-python/issues/1444 # is resolved, this try except block can be removed. try: metrics.get_meter_provider().start_pipeline(meter, exporter, 5) except: logger.warning("Metrics Pipeline was not started.") pass
def test_otlp_headers(self, mock_ssl_channel, mock_secure): exporter = OTLPMetricsExporter() # pylint: disable=protected-access self.assertIsNone(exporter._headers, None)