getsentry / getsentry/sentry-python

ref(boto3): Own one logical botocore client-call lifecycle

Offen
#7,474 1 Kommentar 0 Reaktionen 1 zugewiesene Person Beansprucht von @pabloDeputter Auf GitHub ansehen
Python
Vorherrschende Sprache
Python
Sterne
2.2k
Forks
669
Ø Merge
1 T. 1 Std.
Gemergte PRs (30 T.)
213

Beschreibung

### Problem

* spans are currently created in `request-created`. Botocore may emit this during retries; it's also too late to cover any failures during operation lookup, parameter construction, serialization, or other work before an HTTP request exists.

### Proposed Solution

* patch `BaseClient._make_api_call` as [OTel]() does; one logical client span should cover all retries until response, error, or cancellation.
* wrapper is the only owner of the aws client span's start and completion.
* `_AwsCallContext` can be used to contain generic data such botocore client, service name, operation name, region, endpoint URL, etc

#### Sources

* [https://opentelemetry.io/docs/specs/semconv/rpc/rpc-spans/#rpc-client-span]()
* [https://github.com/boto/botocore/blob/develop/botocore/client.py]()
* [https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/instrumentation/opentelemetry-instrumentation-botocore/src/opentelemetry/instrumentation/botocore/__init__.py]()

Beitragsleitfaden

Beitragsleitfaden öffnen

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.