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
- SixthSense ポータルからアクセストークンを取得します。「SixthSense ポータル利用ガイド」の アクセストークンへのアクセス を参照してください。
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 フレームワークおよびプロトコル
ライブラリ | バージョン | プラグイン名 | |
---|---|---|---|
1 | http.server | Python 3.5 ~ 3.8 | sw_http_server |
2 | urllib.request | Python 3.5 ~ 3.8 | sw_urllib_request |
3 | requests | >= 2.9.0 < 2.15.0, >= 2.17.0 <= 2.24.0 | sw_requests |
4 | Flask | >=1.0.4 <= 1.1.2 | sw_flask |
5 | PyMySQL | 0.10.0 | sw_pymysql |
6 | Django | >=2.0 <= 3.1 | sw_django |
7 | redis-py | 3.5.3 | sw_redis |
8 | kafka-python | 2.0.1 | sw_kafka |
9 | tornado | 6.0.4 | sw_tornado |
10 | pika | 1.1.0 | sw_rabbitmq |
11 | pymongo | 3.11.0 | sw_pymongo |
12 | elasticsearch | 7.9.0 | sw_elasticsearch |
13 | urllib3 | >= 1.25.9 <= 1.25.10 | sw_urllib3 |