Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
72 commits
Select commit Hold shift + click to select a range
4d1d3f5
ref(boto3): split integration into internal modules
pabloDeputter Sep 18, 2026
0c23830
ref(boto3): Move consts to
pabloDeputter Sep 21, 2026
b45f76c
fix(boto3): Move imports
pabloDeputter Sep 21, 2026
ab843bc
ref(boto3): Remove dupliocate `_check_minimum_version()`
pabloDeputter Sep 30, 2026
b21b888
ref(boto3): Update integration checks to use IDENTIFIER constant
pabloDeputter Sep 30, 2026
f91d311
fix(boto3): harden StreamingBody span finalization
pabloDeputter Sep 18, 2026
ec2a236
lint
pabloDeputter Sep 18, 2026
3b53fa4
ref(boto3): renaming vars
pabloDeputter Sep 21, 2026
eea1fc1
ref(boto3): Add specific comment on why we initialize with
pabloDeputter Sep 21, 2026
364f547
fix(boto3): ensure span finishes correctly when reading streaming body
pabloDeputter Sep 21, 2026
4f3cfce
fix(boto3): trace the complete client-call lifecycle
pabloDeputter Sep 21, 2026
644aff8
fix merging issues
pabloDeputter Sep 21, 2026
608ee4a
review changes
pabloDeputter Sep 21, 2026
ec8cef7
add test for when `StreamingBody` instrumentation setup fails
pabloDeputter Sep 21, 2026
3a60fb9
fix(boto3): finish streaming spans before legacy boto spans
pabloDeputter Sep 21, 2026
9c2f329
add permalink
pabloDeputter Sep 21, 2026
f9755ca
add some more comments
pabloDeputter Sep 21, 2026
a9e87f5
ref(boto3): use permalink
pabloDeputter Sep 29, 2026
2647da1
ref(boto3): fix grammar in comments
pabloDeputter Sep 29, 2026
8518c62
feat(boto3): improve boto3 integration
pabloDeputter Sep 21, 2026
7bf92dd
lint
pabloDeputter Sep 21, 2026
606c630
fix(boto3): overwrite server attributes when request URL is resolved
pabloDeputter Sep 22, 2026
74083ab
ref(boto3): move `aws-api` to `consts.py`
pabloDeputter Sep 29, 2026
7e5ba86
tests(boto3): move `span_streaming` inside method call
pabloDeputter Sep 29, 2026
6868ffd
ref(boto3): move `DEFAULT_PORTS` to `consts.py`
pabloDeputter Sep 29, 2026
d32a43f
ref(boto3): simplify client span lifecycle and header handling
pabloDeputter Sep 18, 2026
822438b
feat(boto3): add attributes to `consts.py`
pabloDeputter Sep 14, 2026
46d24b2
merge changes
pabloDeputter Sep 15, 2026
30d1e3f
add tests
pabloDeputter Sep 17, 2026
250699d
patch correct methods
pabloDeputter Sep 15, 2026
d9edef5
lint
pabloDeputter Sep 18, 2026
90383dc
use ordered search for request id and hist id
pabloDeputter Sep 18, 2026
d482500
ref(boto3): remove redundant span checks during enrichment
pabloDeputter Sep 18, 2026
26fdcb1
fix duplicates when merging
pabloDeputter Sep 18, 2026
eeac30a
use consts and string lookup for `client.getintegration`
pabloDeputter Sep 21, 2026
8b61aac
lint
pabloDeputter Sep 22, 2026
308eb5f
ruff
pabloDeputter Sep 22, 2026
8e4ce5a
ref(boto3): add permalinks
pabloDeputter Sep 29, 2026
832d90d
fix(boto3): add `error.type` to both span kinds
pabloDeputter Sep 29, 2026
0ee5f14
ref(boto3): specify docstring for `_set_span_attributes()` further
pabloDeputter Sep 29, 2026
a8f521e
ref(boto3): use f-string instead
pabloDeputter Sep 29, 2026
2d92b4e
ref(boto3): remove comment regarding `HTTP_REQUEST_RESEND_COUNT`
pabloDeputter Sep 29, 2026
12dd5e6
ref(boto3): remove `else` block
pabloDeputter Sep 29, 2026
21794bf
tests(boto3): remove uncessary testcases
pabloDeputter Sep 29, 2026
7859e97
ref(boto3): remove uncessary defensive conditionals
pabloDeputter Sep 29, 2026
1f4e936
fix flaky test
pabloDeputter Sep 30, 2026
02a8fa1
add base `ServiceExtension` class
pabloDeputter Sep 18, 2026
ee7e768
feat(boto3): Add service registry
pabloDeputter Sep 18, 2026
4d9ae30
add missing `__init__.py` file
pabloDeputter Sep 18, 2026
e90b407
simplify `_resolve_service()` logic
pabloDeputter Sep 18, 2026
af519a0
add service extension logic to `_instrumentation.py`
pabloDeputter Sep 18, 2026
98cc2a4
combine span-config extraction and validation in `_start_client_span()`
pabloDeputter Sep 18, 2026
ca7e449
add service extension logic to `_client.py`
pabloDeputter Sep 30, 2026
f95f4fe
add tests
pabloDeputter Sep 18, 2026
b0b9f0c
fix(boto3): Remove "hardcoded" origin
pabloDeputter Sep 22, 2026
7d645b4
feat(boto3): Add `sentry.kind` attribute to boto span
pabloDeputter Sep 22, 2026
64e1464
ref(boto3): Add comment explaining
pabloDeputter Sep 22, 2026
f221d72
Update sentry_sdk/integrations/boto3/_services/base.py
pabloDeputter Sep 29, 2026
a106f76
fix(boto3): correct `AWS_RPC_SYSTEM_NAME` constant
pabloDeputter Sep 29, 2026
032eff3
ref(boto3): refactor `get_span_config()` into `get_span_op()` and `ge…
pabloDeputter Sep 29, 2026
b1d9551
ref(boto3): remove attribute-precedence
pabloDeputter Sep 29, 2026
c2f4f6b
ref(boto3): remove lazy-loading approach; replace with static map
pabloDeputter Sep 30, 2026
a928e74
fix(boto3): make logic clearer
pabloDeputter Sep 30, 2026
2d85548
ref(boto3): change comment's and simplify logic
pabloDeputter Sep 30, 2026
9d2bd96
ref(boto3): remove defensive checks
pabloDeputter Sep 30, 2026
b65c0ca
ref(boto3): remove defensive checks and cleanup comments
pabloDeputter Sep 30, 2026
1270b49
cleanup tests
pabloDeputter Sep 30, 2026
91c9bdb
remove AI comment
pabloDeputter Sep 30, 2026
f2a2bc6
feat(attributes): Add s3 relevant attributes to `SPANDATA`
pabloDeputter Sep 22, 2026
0e948cb
feat(boto3): Register s3 to `_SERVICE_EXTENSIONS`
pabloDeputter Sep 30, 2026
a3629db
feat(boto3): Add attribute extraction helpers
pabloDeputter Sep 22, 2026
7c39a6c
feat(boto3): Add S3 extensio
pabloDeputter Sep 22, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
108 changes: 108 additions & 0 deletions sentry_sdk/consts.py
Original file line number Diff line number Diff line change
Expand Up @@ -390,6 +390,60 @@ class SPANDATA:
Example: ["Token limit exceeded"]
"""

AWS_EXTENDED_REQUEST_ID = "aws.extended_request_id"
"""
The AWS extended request ID as returned in the response headers.
Example: "wzHcyEWfmOGDIE5QOhTAqFDoDWP3y8IUvpNINCwL9N4TEHbUw0/gZJ+VZTmCNCWR7fezEN3eCiQ="
"""

AWS_REQUEST_ID = "aws.request_id"
"""
The AWS request ID as returned in the response headers.
Example: "79b9da39-b7ae-508a-a6bc-864b2829c622"
"""

AWS_S3_BUCKET = "aws.s3.bucket"
"""
The S3 bucket name the request refers to.
Example: "ot-demo-test"
"""

AWS_S3_COPY_SOURCE = "aws.s3.copy_source"
"""
The source object (in the form bucket/key) for the copy operation.
Example: "someFile.yml"
"""

AWS_S3_DELETE = "aws.s3.delete"
"""
The delete request container that specifies the objects to be deleted.
Example: "Objects=[{Key=string,VersionId=string},{Key=string,VersionId=string}],Quiet=boolean"
"""

AWS_S3_KEY = "aws.s3.key"
"""
The S3 object key the request refers to. Corresponds to the --key parameter of the S3 API operations.
Example: "someFile.yml"
"""

AWS_S3_OBJECT_SIZE = "aws.s3.object_size"
"""
The size of the S3 object in bytes.
Example: 434234
"""

AWS_S3_PART_NUMBER = "aws.s3.part_number"
"""
The part number of the part being uploaded in a multipart-upload operation. This is a positive integer between 1 and 10,000.
Example: 3456
"""

AWS_S3_UPLOAD_ID = "aws.s3.upload_id"
"""
Upload ID that identifies the multipart upload.
Example: "dfRtDYWFbkRONycy.Yxwh66Yjlx.cph0gtNBtJ"
"""

CACHE_HIT = "cache.hit"
"""
A boolean indicating whether the requested data was found in the cache.
Expand All @@ -414,6 +468,12 @@ class SPANDATA:
Example: "10.1.2.80"
"""

CLOUD_REGION = "cloud.region"
"""
The geographical region the resource is running.
Example: "us-east-1"
"""

CODE_FILEPATH = "code.filepath"
"""
.. deprecated::
Expand Down Expand Up @@ -541,6 +601,12 @@ class SPANDATA:
Example: my_user
"""

ERROR_TYPE = "error.type"
"""
Describes a class of error the operation ended with.
Example: "timeout"
"""

GEN_AI_AGENT_NAME = "gen_ai.agent.name"
"""
The name of the agent being used.
Expand Down Expand Up @@ -880,6 +946,12 @@ class SPANDATA:
Example: GET
"""

HTTP_REQUEST_RESEND_COUNT = "http.request.resend_count"
"""
The ordinal number of request resending attempt (for any reason, including redirects).
Example: 2
"""

HTTP_ROUTE = "http.route"
"""
The matched route, that is, the path template used to match the request.
Expand All @@ -892,6 +964,12 @@ class SPANDATA:
Example: ?foo=bar&bar=baz
"""

HTTP_RESPONSE_BODY_SIZE = "http.response.body.size"
"""
The encoded body size of the response (in bytes).
Example: 123
"""

HTTP_STATUS_CODE = "http.response.status_code"
"""
The HTTP status code as an integer.
Expand Down Expand Up @@ -977,12 +1055,24 @@ class SPANDATA:
Example: "com.example.ExampleService/exampleMethod"
"""

RPC_SERVICE = "rpc.service"
"""
The full (logical) name of the service being called, including its package name, if applicable.
Example: "myService.BestService"
"""

RPC_RESPONSE_STATUS_CODE = "rpc.response.status_code"
"""
Status code of the RPC returned by the RPC server or generated by the client.
Example: "DEADLINE_EXCEEDED"
"""

RPC_SYSTEM_NAME = "rpc.system.name"
"""
A string identifying the remoting system.
Example: "aws-api"
"""

SERVER_ADDRESS = "server.address"
"""
Name of the database host.
Expand Down Expand Up @@ -1172,6 +1262,24 @@ class SPANDATA:
Used in inbound filters.
"""

SENTRY_KIND = "sentry.kind"
"""
Used to clarify the relationship between parents and children, or to distinguish between spans, e.g. a `server` and `client` span with the same name.
Example: "client", "server", "producer", "consumer", "internal"
"""

SENTRY_OP = "sentry.op"
"""
The operation of a span.
Example: "http.client"
"""

SENTRY_ORIGIN = "sentry.origin"
"""
The origin of the instrumentation (e.g. span, log, etc.)
Example: "auto.http.otel.fastify"
"""

SENTRY_RELEASE = "sentry.release"
"""
The Sentry release.
Expand Down
Loading
Loading