Repository: open-telemetry/opentelemetry-python-contrib

Issue:
Problem with using domain socket as bind address
**Describe your environment** 
The OT-wsgi library throws error if domain socket is used for the bind address.

**Steps to reproduce**
Here is a test program:

```
import web
from time import sleep
from opentelemetry import trace
from opentelemetry.sdk.trace import TracerProvider
from opentelemetry.sdk.trace.export import (
    ConsoleSpanExporter,
    SimpleSpanProcessor,
)
from opentelemetry.instrumentation.wsgi import OpenTelemetryMiddleware
from cheroot import wsgi

trace.set_tracer_provider(TracerProvider())
trace.get_tracer_provider().add_span_processor(
    SimpleSpanProcessor(ConsoleSpanExporter())
)

#tracer = trace.get_tracer(__name__)

urls = (
    '/', 'index'
)
class index:
    def GET(self):
        return "Hello, world!"

if __name__ == "__main__":
  app = web.application(urls, globals())
  func = app.wsgifunc()

  func = OpenTelemetryMiddleware(func)

  server = wsgi.WSGIServer("/tmp/lr.sock", func, server_name="localhost")
  server.start()
```

invocation:
```
(base) kamalh-mbp:~ kamalh$ echo -ne 'GET / HTTP/1.1\r\nHost: test.com\r\n\r\n' | nc -U /tmp/lr.sock
HTTP/1.1 500 Internal Server Error
Content-Length: 0
Content-Type: text/plain
```

Error from the program
```
(base) kamalh-mbp:opentelemetry kamalh$ python3 wsgi-lr.py
Overriding of current TracerProvider is not allowed
ValueError("invalid literal for int() with base 10: ''")
Traceback (most recent call last):
  File "/Users/kamalh/miniconda3/lib/python3.7/site-packages/cheroot/server.py", line 1287, in communicate
    req.respond()
  File "/Users/kamalh/miniconda3/lib/python3.7/site-packages/cheroot/server.py", line 1077, in respond
    self.server.gateway(self).respond()
  File "/Users/kamalh/miniconda3/lib/python3.7/site-packages/cheroot/wsgi.py", line 140, in respond
    response = self.req.server.wsgi_app(self.env, self.start_response)
  File "/Users/kamalh/miniconda3/lib/python3.7/site-packages/opentelemetry/instrumentation/wsgi/__init__.py", line 229, in __call__
    attributes=collect_request_attributes(environ),
  File "/Users/kamalh/miniconda3/lib/python3.7/site-packages/opentelemetry/instrumentation/wsgi/__init__.py", line 122, in collect_request_attributes
    result.update({SpanAttributes.NET_HOST_PORT: int(host_port)})
ValueError: invalid literal for int() with base 10: ''
```

**What is the expected behavior?**
Expect to see the server returning normally as in TCP sockets.

**What is the actual behavior?**
Error message. Please see the paste above.

**Additional context**
Add any other context about the problem here.



Discussion:

Resolving patch:
diff --git a/instrumentation/opentelemetry-instrumentation-wsgi/src/opentelemetry/instrumentation/wsgi/__init__.py b/instrumentation/opentelemetry-instrumentation-wsgi/src/opentelemetry/instrumentation/wsgi/__init__.py
--- a/instrumentation/opentelemetry-instrumentation-wsgi/src/opentelemetry/instrumentation/wsgi/__init__.py
+++ b/instrumentation/opentelemetry-instrumentation-wsgi/src/opentelemetry/instrumentation/wsgi/__init__.py
@@ -118,7 +118,7 @@ def collect_request_attributes(environ):
     }
 
     host_port = environ.get("SERVER_PORT")
-    if host_port is not None:
+    if host_port is not None and not host_port == "":
         result.update({SpanAttributes.NET_HOST_PORT: int(host_port)})
 
     setifnotnone(result, SpanAttributes.HTTP_HOST, environ.get("HTTP_HOST"))


Test patch: