Splunk Observability Cloud 用 Python フレームワークのインストルメンテーション 🔗
Django や uWSGI を使っている Python アプリケーションやサービスをインスツルメンテー ションする場合は、Python アプリケーションを Splunk Observability Cloud にインストルメンテーションする のすべてのステップを実行した後に、 以下の追加ステップを実行してください。
Djangoアプリケーションのインストルメンテーション 🔗
Django アプリケーションを自動的にインストルメンテーションするには、 manage.py か wsgi.py で DJANGO_SETTINGS_MODULE
環境変数を同じ値に設定してください。
例えば、manage.py ファイルが環境変数を mydjangoproject.settings に設定し、./manage.py runserver
を使ってプロジェクトを開始する場合、以下のコマンドを実行できます:
export DJANGO_SETTINGS_MODULE=mydjangoproject.settings
splunk-py-trace python3 ./manage.py runserver --noreload
$env:DJANGO_SETTINGS_MODULE=mydjangoproject.settings
splunk-py-trace python3 ./manage.py runserver --noreload
uWSGIアプリケーションのインストルメンテーション 🔗
uWSGIを使用する場合は、post_fork
シグナルへの応答としてトレースを設定する必要があります:
import uwsgidecorators
from splunk_otel.tracing import start_tracing
@uwsgidecorators.postfork
def setup_tracing():
start_tracing()
以下のスニペットをカスタマイズして使用し、アプリケーションを実行します:
uwsgi --http :9090 --wsgi-file <your_app.py> --callable <your_wsgi_callable> --master --enable-threads
uWSGIがインポートしてロードするメインのPythonスクリプトにスニペットを配置します。
注意
uWSGIアプリケーションは、splunk-py-trace
を使用して実行しないでください。意図しない結果を招く可能性があります。
uWSGI と Flask 🔗
uSWGI と Flask の両方を使用している場合、start_tracing()
を呼び出すと、新しい Flask インスタンスのみが自動インストルメンテーションされます。既存のFlaskアプリをインストルメンテーションするには、Flask instrumentorをインポートして呼び出します:
# app.py
import uwsgidecorators
from splunk_otel.tracing import start_tracing
from opentelemetry.instrumentation.flask import FlaskInstrumentor
from flask import Flask
app = Flask(__name__)
@uwsgidecorators.postfork
def setup_tracing():
start_tracing()
# 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