Dify コンソールでは、各アプリケーションの監視を構成し、Cloud Monitor と統合して可観測性を実現できます。しかし、コンソールはバッチ構成をサポートしていません。このトピックでは、API を呼び出して Dify アプリケーションの Alibaba Cloud 可観測性監視をバッチで構成する方法について説明します。
背景情報
全体的なプロセスは、HTTP API を使用して Dify コンソールの操作をシミュレートし、バッチ構成を実行します:
ログインステータスの取得:ログイン API を呼び出して認証トークンを取得します。
アプリケーションリストの取得:テナントに属するすべてのアプリケーションの情報を取得します。
アプリケーション監視構成の確認:アプリケーションの現在の監視構成ステータスを照会します。
Alibaba Cloud 監視の構成:アプリケーションの Alibaba Cloud 可観測性構成を作成します。
監視スイッチの有効化:アプリケーション監視をオンにします。
ソースコードから Dify をデプロイしてカスタム開発を行う場合も、バッチ構成を実装できます。そのためには、上記で説明したプロセスに従い、Dify の ext_commands.py ファイルにある既存の運用保守コマンドを Click コマンドとともに使用します。
API によるバッチ構成フロー
ステップ 1:ログインと認証
Dify ログイン API を呼び出して身元認証を行い、テナントのログイントークンを取得します。
API: POST {base_url}/console/api/login
リクエストパラメーター
{
"email": "your_account@example.com",
"password": "your_password",
"remember_me": false
}応答
{
"result": "success"
}Set-Cookie: access_token=<JWT>; HttpOnly; Max-Age=3600
Set-Cookie: refresh_token=<random>; HttpOnly; Max-Age=2592000
Set-Cookie: csrf_token=<JWT>; Max-Age=3600応答の主要情報
Cookie | 目的 |
| API 認証情報 |
| access_token を更新するための認証情報 |
| クロスサイトリクエストフォージェリ (CSRF) 認証情報 |
後続のリクエスト
リクエストヘッダーで、以下を設定します:
Cookie: access_token=xxx; refresh_token=xxx; csrf_token=xxx
X-CSRF-Token: <csrf_token>セッション機能を持つライブラリを使用する場合、通常、ライブラリが Cookie を自動的に管理します。この場合、ヘッダーに X-CSRF-Token を追加するだけで済みます。
ステップ 2:アプリケーションリストの取得
現在のテナントに属するすべてのアプリケーションの情報を取得します。
API: GET {base_url}/console/api/apps
リクエストパラメーター
パラメーター | タイプ | デフォルト値 | 説明 |
| int | 1 | ページ番号。1 から始まります。 |
| int | 20 | 1 ページあたりの項目数。有効値:1~100。 |
| string | "all" | アプリケーションタイプでフィルタリングします。 |
| string | - | アプリケーション名で検索します。 |
ページネーションの説明:
返された
has_moreフィールドを使用して、次のページが存在するかどうかを判断します。すべてのアプリケーションを取得するには、応答の
has_moreフィールドがfalseになるまでリクエストをループします。
応答
{
"page": 1,
"limit": 20,
"total": 100,
"has_more": true,
"data": [
{
"id": "app-uuid",
"name": "Application Name",
"mode": "workflow",
"description": "Application Description",
"icon": "",
"icon_type": "emoji",
"created_at": 1234567890,
"updated_at": 1234567890,
"model_config": { /* モデル構成 */ },
"workflow": { /* ワークフロー構成 */ },
"tags": []
}
]
}主要フィールドの説明:
id:アプリケーション ID。これは、後続の監視構成ステップで必要です。name:アプリケーション名。これは、監視を構成する際のapp_nameパラメーターに必要です。
ステップ 3:アプリケーション監視構成の確認
指定されたアプリケーションの現在の監視構成ステータスを取得します。監視が構成されていない場合にのみ、次のステップに進むことができます。
API: GET {base_url}/console/api/apps/{app_id}/trace
リクエストパラメーター
app_id:アプリケーション ID。この ID は、「ステップ 2:アプリケーションリストの取得」で取得できます。
応答
{
"enabled": false,
"tracing_provider": null
}{
"enabled": true,
"tracing_provider": "aliyun"
}フィールドの説明:
enabled:監視が有効かどうかを示します (ブール値)。tracing_provider:監視プロバイダーの名前 (文字列)。
ステップ 4:Alibaba Cloud 監視の構成
アプリケーションの Alibaba Cloud 可観測性監視構成を作成します。
API: POST {base_url}/console/api/apps/{app_id}/trace-config
リクエストパラメーター
{
"tracing_provider": "aliyun",
"tracing_config": {
"app_name": "xxx",
"license_key": "your_aliyun_license_key",
"endpoint": "http://tracing-analysis-dc-bj.aliyuncs.com"
}
}フィールドの説明
フィールド | 説明 |
|
|
| Alibaba Cloud アプリケーション名。バッチで構成する場合、同じ名前を使用しないでください。同じ名前は、同一の可観測性アプリケーションとして扱われます。 |
| Alibaba Cloud License Key。詳細については、「DescribeTraceLicenseKey - LicenseKey の一覧」をご参照ください。 |
| Alibaba Cloud レポートエンドポイント。詳細については、「エンドポイント」をご参照ください。 |
応答
{
"result": "success"
}一部のバージョンの Dify では、アプリケーション構成を作成しても有効化しない場合、コンソールの監視メトリックが異常に表示されることがあります。監視スイッチを有効にすると、メトリックは正常に表示されます。
ステップ 5:監視スイッチの有効化
監視を構成した後、設定を有効にするには監視スイッチを有効化する必要があります。
API: POST {base_url}/console/api/apps/{app_id}/trace
リクエストパラメーター
{
"enabled": true,
"tracing_provider": "aliyun"
}フィールド | タイプ | 説明 |
| boolean | 監視を有効にするかどうかを指定します (true/false)。 |
| string | 監視プロバイダーの名前 (aliyun)。 |
応答
{
"result": "success"
}