Repository: open-telemetry/opentelemetry-python-contrib

Issue:
aiohttp instrumentation: Function create_trace_config has no span_name argument.
## Docs usage example
Ref: https://opentelemetry-python-contrib.readthedocs.io/en/latest/instrumentation/aiohttp_client/aiohttp_client.html#usage
```python
import aiohttp
from opentelemetry.instrumentation.aiohttp_client import (
    create_trace_config,
    url_path_span_name
)
import yarl

def strip_query_params(url: yarl.URL) -> str:
    return str(url.with_query(None))

async with aiohttp.ClientSession(trace_configs=[create_trace_config(
        # Remove all query params from the URL attribute on the span.
        url_filter=strip_query_params,
        # Use the URL's path as the span name.
        span_name=url_path_span_name
)]) as session:
    async with session.get(url) as response:
        await response.text()
```

## Bug
Function `create_trace_config` has no `span_name` argument.

```python
def create_trace_config(
    url_filter: _UrlFilterT = None,
    request_hook: _RequestHookT = None,
    response_hook: _ResponseHookT = None,
    tracer_provider: TracerProvider = None,
) -> aiohttp.TraceConfig:
    ...
```


Discussion:
Also looks weird that current solution starts span with name `f"HTTP {http_method}"` and then prompts to change it through `request_hook` callback

https://github.com/open-telemetry/opentelemetry-python-contrib/blob/d01efe5c5023110447de1741107e53b009b5886e/instrumentation/opentelemetry-instrumentation-aiohttp-client/src/opentelemetry/instrumentation/aiohttp_client/__init__.py#L200-L210

It would be nice to add `span_name` (as it described in the docs).
```python
def create_trace_config(
    ...
    span_name: Optional[str] = None,
) -> aiohttp.TraceConfig:
    ...
    request_span_name = f"HTTP {http_method}" if span_name is None else span_name
```
Proposed patch looks good to me. Happy to merge a PR if one is sent :) 

Resolving patch:
diff --git a/instrumentation/opentelemetry-instrumentation-aiohttp-client/src/opentelemetry/instrumentation/aiohttp_client/__init__.py b/instrumentation/opentelemetry-instrumentation-aiohttp-client/src/opentelemetry/instrumentation/aiohttp_client/__init__.py
--- a/instrumentation/opentelemetry-instrumentation-aiohttp-client/src/opentelemetry/instrumentation/aiohttp_client/__init__.py
+++ b/instrumentation/opentelemetry-instrumentation-aiohttp-client/src/opentelemetry/instrumentation/aiohttp_client/__init__.py
@@ -23,10 +23,7 @@
 .. code:: python
 
     import aiohttp
-    from opentelemetry.instrumentation.aiohttp_client import (
-        create_trace_config,
-        url_path_span_name
-    )
+    from opentelemetry.instrumentation.aiohttp_client import create_trace_config
     import yarl
 
     def strip_query_params(url: yarl.URL) -> str:
@@ -35,8 +32,6 @@ def strip_query_params(url: yarl.URL) -> str:
     async with aiohttp.ClientSession(trace_configs=[create_trace_config(
             # Remove all query params from the URL attribute on the span.
             url_filter=strip_query_params,
-            # Use the URL's path as the span name.
-            span_name=url_path_span_name
     )]) as session:
         async with session.get(url) as response:
             await response.text()
@@ -127,21 +122,6 @@ def response_hook(span: Span, params: typing.Union[
 ]
 
 
-def url_path_span_name(params: aiohttp.TraceRequestStartParams) -> str:
-    """Extract a span name from the request URL path.
-
-    A simple callable to extract the path portion of the requested URL
-    for use as the span name.
-
-    :param aiohttp.TraceRequestStartParams params: Parameters describing
-        the traced request.
-
-    :return: The URL path.
-    :rtype: str
-    """
-    return params.url.path
-
-
 def create_trace_config(
     url_filter: _UrlFilterT = None,
     request_hook: _RequestHookT = None,


Test patch:
diff --git a/instrumentation/opentelemetry-instrumentation-aiohttp-client/tests/test_aiohttp_client_integration.py b/instrumentation/opentelemetry-instrumentation-aiohttp-client/tests/test_aiohttp_client_integration.py
--- a/instrumentation/opentelemetry-instrumentation-aiohttp-client/tests/test_aiohttp_client_integration.py
+++ b/instrumentation/opentelemetry-instrumentation-aiohttp-client/tests/test_aiohttp_client_integration.py
@@ -71,20 +71,6 @@ def assert_spans(self, spans):
             spans,
         )
 
-    def test_url_path_span_name(self):
-        for url, expected in (
-            (
-                yarl.URL("http://hostname.local:1234/some/path?query=params"),
-                "/some/path",
-            ),
-            (yarl.URL("http://hostname.local:1234"), "/"),
-        ):
-            with self.subTest(url=url):
-                params = aiohttp.TraceRequestStartParams("METHOD", url, {})
-                actual = aiohttp_client.url_path_span_name(params)
-                self.assertEqual(actual, expected)
-                self.assertIsInstance(actual, str)
-
     @staticmethod
     def _http_request(
         trace_config,