Python obsługiwane komponenty i wersje
- Instana AutoTrace hak WWW
- środowiska wykonawczePython
- Obsługa różnych środowisk
- śledzenie
- Gromadzenie danych czujnika
- AutoProfile
- Patrz także:
hak WWW
Instana AutoTrace
Hak WWW Instana AutoTrace może automatycznie instrumentować procesy Python w całym klastrze Kubernetes .
Środowiska wykonawcze
Python
| Python | Wersje | Wersja czujnika Python |
|---|---|---|
| CPythonName | > = 3.7 i < 3.10 | >= 2.0.0 |
| CPythonName | > = 2.7 i < = 3.6 | < 2.0.0 |
Obsługa długoterminowa
Instana postępuje zgodnie z oficjalną linią czasu długoterminowego wsparcia (LTS) i wycofania z eksploatacji (EOL) z Python.
Uwaga: Gdy wersja programu Python osiągnie swoją datę końca eksploatacji, oferowany jest dodatkowy okres wsparcia, który obejmuje okres od jednego do dwóch lat. Aby uniknąć problemów, należy regularnie aktualizować wersję Python .
Obsługiwane środowiska
Pakiet Instana Python obsługuje wiele różnych środowisk, takich jak:
Platforma 
- Linux
- OSX
- AWS Fargat
- AWS Lambda
- Kubernetes
- Google Cloud
- Microsoft Azure
- IBM Bluemix
- Ocean cyfrowy
- Docker
Śledzenie
Czujnik Instana Python obsługuje rozproszone śledzenie na innych instrumentowanych platformach, technologiach i językach Instana. Umożliwia automatyczne śledzenie wszystkich żądań i obsługuje OpenTracing. Więcej informacji na ten temat zawiera sekcja OpenTracing.
| Struktury | Wersje | Wersja czujnika Python |
|---|---|---|
| ASGI | >= 2.0 | Dowolne |
| Seler | > = 4.3.0 i < = 5.3.1 | Dowolne |
| Django | > = 1.11 i < = 4.2.3 | Dowolne |
| FastAPI | > = 0.51.0 i < = 0.100.0 | Dowolne |
| Kolba | > = 0.12.0 i < = 2.3.2 | Dowolne |
| Piramidowy | > = 1.6.5 i < = 2.0.1 | Dowolne |
| Urządzenia sanitarne | > = 19.0.0 i < 21.9.0 | >= 2.0.0 |
| Starlette (Starlette) | > = 0.12.13 i < = 0.27.0 | Dowolne |
| Tornado | > = 4.5.3 i < 6.0.0 | < 2.0.0 |
| Webapp2 | > = 1.5 i < 3.0 | < 2.0.0 |
| WSGI | PEP 333 > = 1.0 | Dowolne |
| Klienty | Wersje | Wersja czujnika Python |
|---|---|---|
| Aiohttp (protokół HTTP) | > = 3.1.0 i < = 3.8.5 | Dowolne |
| Asynqp | > = 0.5.1 i < = 0.6 | < 2.0.0 |
| Boto3 | > = 1.15.0 i < = 1.28.11 | Dowolne |
| Couchbase | >= 2.3.5 | Dowolne |
| Google-cloud-pubsub (*) | <= 2.1.0 | Dowolne |
| Google-pamięć masowa w chmurze | > = 1.24.0 i < = 2.10.0 | Dowolne |
| Grpcio | > = 1.14.1 i < = 1.56.2 | Dowolne |
| Mysqlclient (klient SQL) | > = 1.3.14 i < = 2.2.0 | Dowolne |
| Pika | > = 1.0.0 i < = 1.3.2 | Dowolne |
| PyMySQL | > = 0.6.7 i < = 1.1.0 | Dowolne |
| Pymongo | > = 3.7.0 i < = 4.4.1 | Dowolne |
| Psycopg2 | > = 2.7.2 i < = 2.9.6 | Dowolne |
| Redis | > = 2.10.6 i < = 4.6.0 | Dowolne |
| Żądania | > = 2.16.1 i < = 2.31.0 | Dowolne |
| Alchemia SQL | > = 1.1.5 i < = 2.0.19 | Dowolne |
| Urllib3 | > = 1.18.1 i < = 1.26.16 | Dowolne |
(*): Pakiet Instana Python obsługuje tylko pobieranie komunikatów Google Pub/Sub.
| Rejestrowanie | Wersje |
|---|---|
| Rejestrowanie | >= 0.4.9.x |
| Inne biblioteki | Wersje |
|---|---|
| Zdarzenie Gevent | > = 1.4 i < = 23.7.0 |
Śledzenie uwag i ograniczeń
Uprawnienie do uruchamiania wątku
Śledzenie Instana Python wymaga uprawnień do tworzenia i uruchamiania obiektów Python threading.Timer . W większości systemów to uprawnienie jest nadawane domyślnie. W niektórych zagnieżdżonych scenariuszach konteneryzacji, na przykład w niektórych wersjach kontenera "Docker w Docker", uprawnienie nie jest nadawane domyślnie.
Jeśli wyświetlane są wyjątki, takie jak RuntimeError: can't start new thread, wówczas najbardziej prawdopodobną przyczyną są niewystarczające uprawnienia. W przypadku aktualizacji lub zmiany uprawnienia "Docker w kontenerze Docker", ale wymagane uprawnienia nie są nadawane dla wewnętrznego kontenera aplikacji, można użyć uprawnienia --privileged w ostateczności, aby uruchomić kontener aplikacji.
Śledzenie poza granicami wątków
Pakiet Instana Python nie obsługuje śledzenia poza granicami wątków. Na przykład, gdy żądanie jest najpierw obsługiwane w pojedynczym wątku, a następnie obciążenie jest rozdzielane na wiele innych wątków za pomocą multiprocessing.ThreadPool, wywołania wychodzące, które występują w tych innych wątkach, nie są przechwytywane. Ponieważ każdy zakres wyjścia musi mieć zakres pozycji, a zakres pozycji inicjującej jest poza zasięgiem wątku, takie połączenia wychodzące nie są rejestrowane. Jest to spowodowane cechą charakterystyczną domyślnego OpenTracing ThreadLocalScopeManageri brakiem menedżera zasięgu specyficznego dla systemu ThreadPool .
Śledzenie z wieloma śledzeniem
Nie jest obsługiwane śledzenie pojedynczej aplikacji Python za pomocą Instana i programu śledzącego innej firmy, na przykład za pomocą programu śledzącego New Relic lub programu OpenTelemetry w tym samym czasie.
Obsługiwane serwery WWW
- uWSGI
- mod_wsgi
- Komenda WSGI Nginx
- wirożn
Uwaga: Serwer WWW gunicorn nie jest oficjalnie obsługiwany przez pakiet Instana Python .
Gromadzenie danych czujnika
Śledzona konfiguracja
- Nazwa
- Środowisko wykonawcze
- Identyfikator PID
- Załadowane moduły
Wielkości mierzone
- Działanie czyszczenia pamięci
- Użycie pamięci
- Wątki
- Stronicowanie
- We/wy
- Zdarzenia
- Przełączanie kontekstu
AutoProfile
| Profile | Wersje Python | Platformy |
|---|---|---|
| Wykorzystanie procesora | > = 2.7 i > = 3.4 | Linux i macOS |
| Współczynnik przydziału pamięci | >= 3.4 | Linux i macOS |
| Połączenia blokujące | > = 2.7 i > = 3.4 | Linux i macOS |