Commit 54c5f11
authored
fix python package distrubution name case-sensitive issue in client span code attr… (#546)
…ibutes
### Issue
When Django ORM triggers a database query and generates corresponding
OTel client span, the client span contains wrong code attributes:
```
"code.function.name": "django.db.backends.utils.CursorDebugWrapper._execute",
"code.file.path": "/usr/local/lib/python3.10/site-packages/django/db/backends/utils.py",
"db.query.text": "SELECT \"billing_service_billing\".\"id\", \"billing_service_billing\".\"owner_id\", \"billing_service_billing\".\"type\", \"billing_service_billing\".\"type_name\", \"billing_service_billing\".\"pet_id\", \"billing_service_billing\".\"payment\", \"billing_service_billing\".\"status\" FROM \"billing_service_billing\" WHERE NOT (\"billing_service_billing\".\"type_name\" IN (SELECT DISTINCT U0.\"invalid_name\" AS \"invalid_name\" FROM \"check_list\" U0 LIMIT 100)) LIMIT 3810",
```
Function name `django.db.backends.utils.CursorDebugWrapper._execute` and
file path
`/usr/local/lib/python3.10/site-packages/django/db/backends/utils.py`
are from Django, not user code.
### Description of changes
The root cause is django distribute name is
`Django`(Distribution(name='Django', version='5.2.7')), does not match
with the package name `django`.
The bug can be fixed by using a case-insensitive string comparison.
### Testing
After fix:
```
"attributes": {
"code.function.name": "views.orm_example_view",
"code.file.path": "/Volumes/workplace/extension/aws-otel-python-instrumentation/samples/django/views.py",
"code.line.number": 278,
"db.system": "sqlite",
"db.name": "",
"db.statement": "SELECT \"auth_user\".\"id\", \"auth_user\".\"password\", \"auth_user\".\"last_login\", \"auth_user\".\"is_superuser\", \"auth_user\".\"username\", \"auth_user\".\"first_name\", \"auth_user\".\"last_name\", \"auth_user\".\"email\", \"auth_user\".\"is_staff\", \"auth_user\".\"is_active\", \"auth_user\".\"date_joined\" FROM \"auth_user\" WHERE \"auth_user\".\"is_active\" LIMIT 10"
},
```
By submitting this pull request, I confirm that you can use, modify,
copy, and redistribute this contribution, under the terms of your
choice.1 parent c398aed commit 54c5f11
File tree
2 files changed
+14
-1
lines changed- aws-opentelemetry-distro
- src/amazon/opentelemetry/distro/code_correlation/internal
- tests/amazon/opentelemetry/distro/code_correlation/internal
2 files changed
+14
-1
lines changedLines changed: 2 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
364 | 364 | | |
365 | 365 | | |
366 | 366 | | |
367 | | - | |
| 367 | + | |
| 368 | + | |
368 | 369 | | |
369 | 370 | | |
370 | 371 | | |
| |||
Lines changed: 12 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
577 | 577 | | |
578 | 578 | | |
579 | 579 | | |
| 580 | + | |
| 581 | + | |
| 582 | + | |
| 583 | + | |
| 584 | + | |
| 585 | + | |
| 586 | + | |
| 587 | + | |
| 588 | + | |
| 589 | + | |
| 590 | + | |
| 591 | + | |
580 | 592 | | |
581 | 593 | | |
582 | 594 | | |
| |||
0 commit comments