Python エージェント

Python エージェントにより、実行時に Python アプリケーションに計測機能が組み込まれ、それによりユーザーのウェブアプリケーションにおけるトランザクション、アプリケーションサービス、バックエンドのメトリクスを検知、マッピング、追跡が可能となります。また、パフォーマンス監視を拡張してビジネスデータを収集および分析し、顧客体験の向上やデータ主導のビジネス上の意思決定に役立てることも可能です。 カスタム計測機能や API などの柔軟なオプションにより、必要なデータをカスタマイズするための複数のビルディングブロックが提供されます。

インストールに必要なシステム要件

Python3(バージョン3.5以上)が必要です。

前提条件

  • エージェントのインストールに必要な前提条件については エージェントのインストールに必要な前提条件の確認 を参照してください。
  • SixthSense Python エージェント エージェントのインストール を参照してください。
  • SixthSense コレクターの URL/IP(カスタマーサポートから提供されるお客様のテナントURL)
  • アクセス トークン:トークンへのアクセスについては「SixthSense ポータルの利用ガイド」にある アクセス トークンの取得 を参照してください。
  • 変数
    • PACKAGE_TOKEN - カスタマーサポートから提供され るSixthSense パッケージのダウンロードに必要なアクセス トークン
    • PACKAGE_TOKEN_USERNAME - カスタマーサポートから提供されるアクセストークンのユーザー名
  • TOKEN - SixthSenseポータルからのアクセストークン。 「SixthSense ポータル利用ガイド」の アクセストークンへのアクセス を参照してください。

エージェントのインストール

前述の変数を利用し、エージェントをインストールします。

pip install sixthsense --extra-index-url https://${PACKAGE_TOKEN_USERNAME}:${PACKAGE_TOKEN}@artifacts-observability.sixthsense.rakuten.com/api/v4/projects/2/packages/pypi/simple

Python エージェントの設定

以下の設定をメインアプリケーションファイルの先頭にコピー&ペーストします。 環境ファイルに $TOKEN を追加するか、または手動で設定に追加します。

from sixthsense import agent, config
serviceName="My_SERVICE_NAME」
config.init(collector=grpc-collector-observability.sixthsense.rakuten.com:443,service=serviceName, token=token_from_ui)
agent.start()

アプリケーションの命名

  • アプリケーションに名前を付けます。

例:

serviceName=My_SERVICE_NAME
serviceName=my-python-app (here application/service name is "my-python-app" )

例:

from sixthsense import agent, config
serviceName="my-python-app"
config.init(collector='grpc-collector-observability.sixthsense.rakuten.com:443', service=serviceName, //for token passed in environment add// token=os.getenv('TOKEN'))
agent.start()

OneCloud Platform の場合は、次の例を使用します。

from sixthsense import agent, config
serviceName="my-python-app"
# For connectivity to backend using onecloud private network: 100.99.116.221:80
# For pconnectivity to backend using intra public network: 133.237.176.44:80
config.init(collector='133.237.176.44:80',secured=false, service=serviceName, token=os.getenv('TOKEN'))

Docker へのインストール

  • Docker イメージをビルドする前に、前述のすべての指示に従い Docker をデプロイしてください。

例:

FROM python:3.8-slim
RUN apt-get update -qqy && \
apt-get -qqy install wget g++ && \
rm -rf /var/lib/apt/lists/*
WORKDIR /app
COPY requirement.txt requirement.txt
ARG TOKEN
RUN pip install sixthsense --extra-index-url https://agent_read:${TOKEN}@artifacts-observability.sixthsense.rakuten.com/api/v4/projects/2/packages/pypi/simple
RUN pip install -r requirement.txt
COPY . .
EXPOSE 5000
ENTRYPOINT ["python", "/app/app.py"]

Python フレームワークおよびプロトコル

ライブラリバージョンプラグイン名
1http.serverPython 3.5 ~ 3.8sw_http_server
2urllib.requestPython 3.5 ~ 3.8sw_urllib_request
3requests>= 2.9.0 < 2.15.0, >= 2.17.0 <= 2.24.0sw_requests
4Flask>=1.0.4 <= 1.1.2sw_flask
5PyMySQL0.10.0sw_pymysql
6Django>=2.0 <= 3.1sw_django
7redis-py3.5.3sw_redis
8kafka-python2.0.1sw_kafka
9tornado6.0.4sw_tornado
10pika1.1.0sw_rabbitmq
11pymongo3.11.0sw_pymongo
12elasticsearch7.9.0sw_elasticsearch
13urllib3>= 1.25.9 <= 1.25.10sw_urllib3