Splunk Observability Cloud 用 Python フレームワークのインストルメンテーション
Django や uWSGI を使う Python アプリをインストルメンテーションする場合は、ゼロコードインストルメンテーションの一般的な手順を踏んだ後に、以下の追加手順を実行してください。
Django や uWSGI を使っている Python アプリケーションやサービスをインストルメンテーションする場合は、「Instrument your Python application for Splunk Observability Cloud」のすべてのステップを実行した後に、以下の追加ステップを実行してください。
Djangoアプリケーションのインストルメンテーション
Django アプリケーションを自動的にインストルメンテーションするには、 manage.py か wsgi.py で DJANGO_SETTINGS_MODULE 環境変数を同じ値に設定してください。
たとえば、manage.py ファイルが環境変数を mydjangoproject.settings に設定し、./manage.py runserver を使ってプロジェクトを開始する場合、以下のコマンドを実行できます。
- Linux
-
export DJANGO_SETTINGS_MODULE=mydjangoproject.settings opentelemetry-instrument python3 ./manage.py runserver --noreload - Windows PowerShell
-
$env:DJANGO_SETTINGS_MODULE=mydjangoproject.settings opentelemetry-instrument python3 ./manage.py runserver --noreload
uWSGIアプリケーションのインストルメンテーション
uWSGIを使用する場合は、post_fork シグナルへの応答としてトレースを設定する必要があります:
import uwsgidecorators
from splunk_otel import init_splunk_otel
@uwsgidecorators.postfork
def setup_otel():
init_splunk_otel()
以下のスニペットをカスタマイズして使用し、アプリケーションを実行します:
uwsgi --http :9090 --wsgi-file <your_app.py> --callable <your_wsgi_callable> --master --enable-threads
uWSGIがインポートしてロードするメインのPythonスクリプトにスニペットを配置します。
opentelemetry-instrument を使用して実行しないでください。意図しない結果を招く可能性があります。uWSGI と Flask
uSWGI と Flask の両方を使用する場合、init_setup_otel() を呼び出すと、新しい Flask インスタンスのみが自動インストルメンテーションされます。既存の Flask アプリをインストルメンテーションするには、インポートして Flask インストルメンタを呼び出します。
# app.py
import uwsgidecorators
from splunk_otel import init_splunk_otel
from opentelemetry.instrumentation.flask import FlaskInstrumentor
from flask import Flask
app = Flask(__name__)
@uwsgidecorators.postfork
def setup_otel():
init_splunk_otel()
# Instrument the Flask app instance explicitly
FlaskInstrumentor().instrument_app(app)
@app.route('/')
def hello_world():
return 'Hello, World!'
以下のスニペットをカスタマイズして使用し、アプリケーションを実行します:
uwsgi --http :9090 --wsgi-file <your_app.py> --callable <your_wsgi_callable> --master --enable-threads