Repository: open-telemetry/opentelemetry-python

Issue:
opentelemetry-instrument errors by default
**Describe your environment** 
Testing out the latest version of `opentelemetry-instrument` with python 3.8.1

**Steps to reproduce**
```
opentelemetry-instrument python
```

**What is the expected behavior?**
Based on the previous behaviour, I was expecting no error to be displayed

**What is the actual behavior?**
```
Failed to auto initialize opentelemetry
...
ValueError: No credentials set in secure mode.
```

**Additional context**
The underlying problem is the default of using the OTLP exporter requires me to setup an environment variable for a certificate which I have no knowledge of prior to using this tool. This is really confusing.



Discussion:

Resolving patch:
diff --git a/exporter/opentelemetry-exporter-otlp/src/opentelemetry/exporter/otlp/exporter.py b/exporter/opentelemetry-exporter-otlp/src/opentelemetry/exporter/otlp/exporter.py
--- a/exporter/opentelemetry-exporter-otlp/src/opentelemetry/exporter/otlp/exporter.py
+++ b/exporter/opentelemetry-exporter-otlp/src/opentelemetry/exporter/otlp/exporter.py
@@ -208,11 +208,12 @@ def __init__(
             credentials is None
             and Configuration().EXPORTER_OTLP_CERTIFICATE is None
         ):
-            raise ValueError("No credentials set in secure mode.")
-
-        credentials = credentials or _load_credential_from_file(
-            Configuration().EXPORTER_OTLP_CERTIFICATE
-        )
+            # use the default location chosen by gRPC runtime
+            credentials = ssl_channel_credentials()
+        else:
+            credentials = credentials or _load_credential_from_file(
+                Configuration().EXPORTER_OTLP_CERTIFICATE
+            )
         self._client = self._stub(
             secure_channel(
                 endpoint, credentials, compression=compression_algorithm


Test patch:
diff --git a/exporter/opentelemetry-exporter-otlp/tests/test_otlp_metric_exporter.py b/exporter/opentelemetry-exporter-otlp/tests/test_otlp_metric_exporter.py
--- a/exporter/opentelemetry-exporter-otlp/tests/test_otlp_metric_exporter.py
+++ b/exporter/opentelemetry-exporter-otlp/tests/test_otlp_metric_exporter.py
@@ -90,9 +90,17 @@ def test_env_variables(self, mock_exporter_mixin):
         self.assertIsNotNone(kwargs["credentials"])
         self.assertIsInstance(kwargs["credentials"], ChannelCredentials)
 
-    def test_no_credentials_error(self):
-        with self.assertRaises(ValueError):
-            OTLPMetricsExporter()
+    @patch("opentelemetry.exporter.otlp.exporter.ssl_channel_credentials")
+    @patch("opentelemetry.exporter.otlp.exporter.secure_channel")
+    @patch(
+        "opentelemetry.exporter.otlp.metrics_exporter.OTLPMetricsExporter._stub"
+    )
+    # pylint: disable=unused-argument
+    def test_no_credentials_error(
+        self, mock_ssl_channel, mock_secure, mock_stub
+    ):
+        OTLPMetricsExporter(insecure=False)
+        self.assertTrue(mock_ssl_channel.called)
 
     @patch("opentelemetry.sdk.metrics.export.aggregate.time_ns")
     def test_translate_counter_export_record(self, mock_time_ns):
diff --git a/exporter/opentelemetry-exporter-otlp/tests/test_otlp_trace_exporter.py b/exporter/opentelemetry-exporter-otlp/tests/test_otlp_trace_exporter.py
--- a/exporter/opentelemetry-exporter-otlp/tests/test_otlp_trace_exporter.py
+++ b/exporter/opentelemetry-exporter-otlp/tests/test_otlp_trace_exporter.py
@@ -187,9 +187,15 @@ def test_env_variables(self, mock_exporter_mixin):
         self.assertIsNotNone(kwargs["credentials"])
         self.assertIsInstance(kwargs["credentials"], ChannelCredentials)
 
-    def test_no_credentials_error(self):
-        with self.assertRaises(ValueError):
-            OTLPSpanExporter()
+    @patch("opentelemetry.exporter.otlp.exporter.ssl_channel_credentials")
+    @patch("opentelemetry.exporter.otlp.exporter.secure_channel")
+    @patch("opentelemetry.exporter.otlp.trace_exporter.OTLPSpanExporter._stub")
+    # pylint: disable=unused-argument
+    def test_no_credentials_error(
+        self, mock_ssl_channel, mock_secure, mock_stub
+    ):
+        OTLPSpanExporter(insecure=False)
+        self.assertTrue(mock_ssl_channel.called)
 
     @patch("opentelemetry.exporter.otlp.exporter.expo")
     @patch("opentelemetry.exporter.otlp.exporter.sleep")