La consola de Dify permite configurar el monitoreo de cada aplicación de forma individual e integrarla con Cloud Monitor para obtener observability. Sin embargo, no admite la configuración por lotes. Para configurar por lotes el monitoreo de observability de Alibaba Cloud en las aplicaciones de Dify, puede llamar a las API correspondientes.
Contexto
El proceso simula las operaciones de la consola de Dify mediante API HTTP para configurar el monitoreo por lotes:
Obtener el estado de inicio de sesión: llame a la API de inicio de sesión para obtener un token de autenticación.
Recuperar la lista de aplicaciones: obtenga la información de todas las aplicaciones del inquilino.
Comprobar la configuración de monitoreo de la aplicación: consulte el estado actual de la configuración de monitoreo de una aplicación.
Configurar el monitoreo de Alibaba Cloud: cree una configuración de observability de Alibaba Cloud para una aplicación.
Activar el interruptor de monitoreo: habilite el monitoreo de la aplicación.
Si despliega Dify desde el código fuente, también puede implementar la configuración por lotes. Siga el proceso anterior y utilice los comandos de operación y mantenimiento del archivo ext_commands.py de Dify con Click Command.
Flujo de configuración por lotes mediante API
Paso 1: Iniciar sesión y autenticarse
Llame a la API de inicio de sesión de Dify para autenticarse y obtener el token de inicio de sesión del inquilino.
API: POST {base_url}/console/api/login
Parámetros de solicitud
{
"email": "your_account@example.com",
"password": "your_password",
"remember_me": false
}
Respuesta
{
"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
Información clave de la respuesta
|
Cookie |
Propósito |
|
|
Credencial de autenticación de la API |
|
|
Credencial para renovar el access_token |
|
|
Credencial contra falsificación de solicitudes entre sitios (CSRF) |
Solicitudes posteriores
En el encabezado de la solicitud, establezca lo siguiente:
Cookie: access_token=xxx; refresh_token=xxx; csrf_token=xxx
X-CSRF-Token: <csrf_token>
Si utiliza una biblioteca que incluye funciones de sesión, esta suele gestionar las cookies automáticamente. En ese caso, solo necesita agregar X-CSRF-Token al encabezado.
Paso 2: Obtener la lista de aplicaciones
Recupere todas las aplicaciones del inquilino actual.
API: GET {base_url}/console/api/apps
Parámetros de solicitud
|
Parámetro |
Tipo |
Valor predeterminado |
Descripción |
|
|
int |
1 |
Número de página, comienza en 1. |
|
|
int |
20 |
Cantidad de elementos por página. Valores válidos: de 1 a 100. |
|
|
string |
"all" |
Filtro por tipo de aplicación. |
|
|
string |
- |
Búsqueda por nombre de aplicación. |
Instrucciones de paginación:
Utilice el campo
has_morede la respuesta para determinar si existe una página siguiente.Para recuperar todas las aplicaciones, repita las solicitudes en un ciclo hasta que el campo
has_morede la respuesta seafalse.
Respuesta
{
"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": { /* Model Configuration */ },
"workflow": { /* workflow configuration */ },
"tags": []
}
]
}
Descripción de los campos clave:
id: identificador de la aplicación. Es obligatorio para los pasos posteriores de configuración de monitoreo.name: nombre de la aplicación. Se requiere como valor del parámetroapp_nameal configurar el monitoreo.
Paso 3: Comprobar la configuración de monitoreo de la aplicación
Consulte el estado actual de la configuración de monitoreo de una aplicación. Continúe con los siguientes pasos únicamente si el monitoreo aún no está configurado.
API: GET {base_url}/console/api/apps/{app_id}/trace
Parámetros de solicitud
app_id: identificador de la aplicación. Puede obtener este ID en Step 2: Retrieve the application list.
Respuesta
{
"enabled": false,
"tracing_provider": null
}
{
"enabled": true,
"tracing_provider": "aliyun"
}
Descripción de los campos:
enabled: indica si el monitoreo está habilitado (booleano).tracing_provider: nombre del proveedor de monitoreo (cadena de texto).
Paso 4: Configurar el monitoreo de Alibaba Cloud
Cree una configuración de monitoreo de observability de Alibaba Cloud para una aplicación.
API: POST {base_url}/console/api/apps/{app_id}/trace-config
Parámetros de solicitud
{
"tracing_provider": "aliyun",
"tracing_config": {
"app_name": "xxx",
"license_key": "your_aliyun_license_key",
"endpoint": "http://tracing-analysis-dc-bj.aliyuncs.com"
}
}
Descripción de los campos
|
Campo |
Descripción |
|
|
Valor fijo: |
|
|
Nombre de la aplicación en Alibaba Cloud. Cada aplicación debe tener un nombre único, ya que los nombres idénticos se tratan como la misma aplicación de observability. Utilice el formato |
|
|
Clave de licencia de Alibaba Cloud. Para más información, consulte DescribeTraceLicenseKey - List LicenseKey. |
|
|
Endpoint de reporte de Alibaba Cloud. Para más información, consulte Endpoints. |
Respuesta
{
"result": "success"
}
En algunas versiones de Dify, las métricas de monitoreo de la consola pueden mostrar valores anómalos si crea la configuración sin habilitarla. Las métricas vuelven a la normalidad después de activar el interruptor de monitoreo.
Paso 5: Activar el interruptor de monitoreo
Después de configurar el monitoreo, active el interruptor correspondiente para que los ajustes surtan efecto.
API: POST {base_url}/console/api/apps/{app_id}/trace
Parámetros de solicitud
{
"enabled": true,
"tracing_provider": "aliyun"
}
|
Campo |
Tipo |
Descripción |
|
|
boolean |
Indica si se habilita el monitoreo (true/false). |
|
|
string |
Nombre del proveedor de monitoreo (aliyun). |
Respuesta
{
"result": "success"
}