Docs » Splunk Observability Cloud でサポートされているインテグレーション » バックエンドアプリケーションをインストルメンテーションして、スパンを Splunk APM に送信する » Splunk Observability Cloud 用 Python アプリケーションのインストルメンテーション » Splunk Observability Cloud 用 Python フレームワークのインストルメンテーション

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

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

このページは 2024年10月28日 に最終更新されました。