34 Commits

Author SHA1 Message Date
b7301823a0 Allow reraising the root exception if instrumentation fails (#3545)
* Allow reraising the root exception if instrumentation fails

I would rather completely fail startup in my services if instrumentation fails for whatever reason instead of just logging an exception and continuing.

Use case:

from opentelemetry import autoinstrumentation

autoinstrumentation.initialize(swallow_exceptions=False)

* Fix lint

* Type hinting, re-raise original exception

* One more type hint to indicate None return

---------

Co-authored-by: Riccardo Magliocchetti <riccardo.magliocchetti@gmail.com>
2025-06-04 08:44:45 +00:00
d6f6c60c16 autoinstrumentation: don't print duplicated conflict log error message (#3432)
* Update instrumentor.py

* Add tests for dependency conflict logging

* Format code in test_instrument_missing_dependency

* Add comments for dependency conflict handling
2025-04-18 16:53:35 +00:00
9c969f363e autoinstrumentation: catch ModuleNotFoundError when the library is not installed (#3423)
* catch ModuleNotFoundError when the library is not installed and prevent exception from bubbling up

Signed-off-by: emdneto <9735060+emdneto@users.noreply.github.com>

* cleanup

Signed-off-by: emdneto <9735060+emdneto@users.noreply.github.com>

* remove dup test

Signed-off-by: emdneto <9735060+emdneto@users.noreply.github.com>

* Update CHANGELOG.md

---------

Signed-off-by: emdneto <9735060+emdneto@users.noreply.github.com>
2025-04-15 09:43:13 +02:00
6d5a5149d0 Make auto instrumentation use the same dependency resolver as manual instrumentation does (#3202) 2025-04-08 15:11:09 +02:00
38006e86c4 opentelemetry-instrumentation: expose a way to init autoinstrumentation programmatically (#3273)
* opentelemetry-instrumentation: expose a way to init autoinstrumentation

* Please pylint

* Add changelog

* Fix example

* Fix whitespace in README

* Add a note aboout ordering of initialization vs imports

* Don't touch PYTHONPATH if not set

* Update opentelemetry-instrumentation/README.rst

Co-authored-by: Emídio Neto <9735060+emdneto@users.noreply.github.com>

* Update CHANGELOG.md

* Update opentelemetry-instrumentation/README.rst

Co-authored-by: Leighton Chen <lechen@microsoft.com>

---------

Co-authored-by: Emídio Neto <9735060+emdneto@users.noreply.github.com>
Co-authored-by: Leighton Chen <lechen@microsoft.com>
2025-02-24 11:15:13 +00:00
147e3f754e Add check before iterating over dist.requires at load_instrumentor (#3168)
* Add check before iterate over dist.requires

* Changelog

* Add test
2025-01-08 10:02:55 +01:00
cc62d1f05e prepare semconv utilities to support database stability opt-in (#3111) 2024-12-17 09:58:04 -08:00
8582da5b8d opentelemetry-instrumentation: don't fail if an instrumentor raises ImportError (#2923) 2024-10-25 12:25:51 -07:00
39bd7fa79a opentelemetry-instrumentation: add unwrapping from dotted paths strings (#2919) 2024-10-24 13:19:29 -07:00
5c566a0c37 opentelemetry-instrumentation: make it easier to use bootstrap with custom values (#2918) 2024-10-24 09:34:54 -07:00
0adc58b4bf Introducing ruff as linter and formatter (basic setup) (#2921) 2024-10-23 10:54:14 -07:00
e4ece57a81 Remove pkg resources (#2871) 2024-10-19 06:49:08 -07:00
476f6e245a bootstrap: don't strip \n for last item on listing (#2820) 2024-08-26 12:46:08 -07:00
a9247774c4 Point pylint to the package root directories (#2658)
* Point pylint to the root directories

Fixes #2657

* Use cd with instrumentations

* Do the same for the rest of the components

* Specify pylint configuration file

* Fix tox lint for sio-pika

* Fix commands for util-http and azure detector

* Fix lint for sdk-extension-aws

* Fix lint for opentelemetry-instrumentation

* Fix lint for grpc instrumentation

* Fix lint for opentelemetry-instrumentation
2024-07-03 16:22:00 -06:00
6be205e604 consistently use of suppress_instrumentation utils (#2590) 2024-06-14 09:53:28 -07:00
5888d4ef95 Enable lint on CI and update deps (#2067)
* Fix black an isort

* change bootstrap_gen to use a list instead of dict

* Bunch of updates

* Fix build

* fix lint

* Fix docs

* Fix lint

* More fixes

* Fix lint

* fix stupid mistake

---------

Co-authored-by: Christian Hartung <christian.hartung@olist.com>
2023-11-21 10:25:11 +02:00
db90ce38a2 Distro selection (#1823) 2023-07-11 20:26:14 +00:00
78874df5c2 Fix install of Python 3.10 on GitHub Actions (#1609)
* Fix install of Python 3.10 on GitHub Actions

In PR #1604 the Python version was upgraded to Python 3.10 to fix a
local issue on M1 MacBooks.

The GitHub Action workflows now exit with the following message for the
docker-tests, spellcheck and lint checks, skipping these checks.

```
lint create: /home/runner/work/opentelemetry-python-contrib/opentelemetry-python-contrib/.tox/lint
SKIPPED: InterpreterNotFound: python3.10
___________________________________ summary ____________________________________
SKIPPED:  lint: InterpreterNotFound: python3.10
  congratulations :)
```

Upgrade the Python version in the GitHub Actions workflow to fix this.

* Fix YAML interpretation of Python 3.10

* Upgrade Docker tests dependencies

Upgrade the asyncpg and psycopg2 packages, they don't work on Python
3.10.

This also fixes running these tests no M1 MacBooks.

* Fix linter issues merged into main

They went unnoticed while the CI didn't fail on the lint task not
working.

---------

Co-authored-by: Srikanth Chekuri <srikanth.chekuri92@gmail.com>
2023-02-03 08:37:24 +05:30
32d7ff4082 Flask sqlalchemy psycopg2 integration (#1224) 2022-09-08 20:18:27 +00:00
7c75b3867b SQLCommenter semicolon bug fix (#1200) 2022-07-22 07:52:40 +05:30
d75194aed7 Sync with sdk setup from setUpClass to setUp (#1193) 2022-07-19 02:02:13 +05:30
8afbce7533 Fixing inescapable character bug for Windows path string (#1100) 2022-06-04 02:54:50 +05:30
0e553419c5 Handle null statuses in http_status_to_status_code (#823) 2022-02-02 10:53:43 -08:00
3137c1fa41 Upgrade black (#802) 2021-11-10 20:57:01 +00:00
76a5cda307 Don't set STATUS on SpanKind SERVER for 4XX status (#776) 2021-10-26 11:44:44 -07:00
7cf3cb42cf Add instrumentation and distro packages (#738)
Now that SDK does not depend on opentelemetry-instrumentation
anymore and opentelemetry-instrumentation has actual build time
dependencies on the contrib repo, it makes maintanence a lot
easier if we move opentelemetry-instrumentation to contrib repo.
opentelemetry-distro depends on opentelemetry-instrumentation
and is being moved as well. Neither of the two packages are
really part of "core" Otel python anyway.
2021-10-14 20:35:28 +00:00
278149553b Remove opentelemetry-instrumentation (#595)
Fixes #592
2021-07-19 09:19:48 -07:00
56da6d74df Consistent way of not instrumenting multiple times (#549) 2021-07-09 09:55:44 -07:00
5b125b196a Fix auto-instrumentation dependency conflict detection (#530) 2021-06-04 09:49:07 -07:00
5d1f3201af Simplify bootstrap and generate code (#514)
- We now automatically generate bootstrap_gen.py file from the list of instrumentations present in the source tree.
- Bootstrap command now uses consumes this auto-generated list instead of keeping it's own local copy.
- We no longer uninstall packages before installing them as instrumentation package no longer specify libraries as dependencies so the edge cases are no longer there.
- We no longer try to install an incompatible version or force upgrade/downgrade an installed version. This used to leave systems in broken states which should happen no more.
2021-06-01 09:19:09 -07:00
daa72382df Instrumentation runtime checks (#475) 2021-05-26 22:55:36 -07:00
9199e3cb3e Load instrumentors via Distro (#480)
This commit makes the following changes:

- Introduces a new `load_instrumentor(EntryPoint) -> None:` with a
default implementation method to the `BaseDistro` class.
- The default implementation loads the insrumentor from the provided
entry point and calls applies it without any arguments. (same as before)
- sitecustomize now calls Distro's `load_instrumentor` method to load
and activate an instrumentor instead of doing it directly.
- Added a new `DefaultDistro` implementation which is used if not distro
is found by entry points.
2021-05-04 11:53:08 -07:00
78cd776243 Revert typo (#470) 2021-04-26 17:26:18 -07:00
f2311ddc40 Move opentelemetry-instrumentation from core (#465) 2021-04-26 11:35:13 -07:00