Herramientas de Kusto en el agente de SRE de Azure

Las herramientas de Kusto le ayudan a convertir las mejores consultas de KQL en herramientas reutilizables y parametrizadas. El agente ejecuta la consulta exacta que escribe sin interpretación ni variación. La experiencia de su equipo se convierte en una funcionalidad compartida.

Sugerencia

  • Estandarizar las consultas de incidentes : la misma KQL probada se ejecuta cada vez, sin variaciones.
  • Convertir el conocimiento tribal en herramientas reutilizables : las mejores consultas se convierten en funcionalidades compartidas.
  • Consulta con parámetros : los usuarios preguntan en lenguaje sin formato y el agente sustituye automáticamente los valores.
  • Probar antes de implementar : valide que las consultas se ejecuten correctamente antes de agregar a agentes personalizados.

El problema: todos escriben sus propias consultas

Durante los incidentes, los ingenieros senior de su equipo utilizan consultas probadas y comprobadas que encuentran problemas rápidamente. Pero ese conocimiento permanece en sus cabezas, hilos de conversaciones de Slack y blocs de notas personales. Cuando no están en la llamada, los respondedores menos experimentados pierden tiempo:

  • Reinventar consultas desde cero, a menudo con errores
  • **Escribir consultas demasiado amplias que devuelven demasiados datos o casos perimetrales que faltan
  • Faltan columnas críticas que revelarían la causa principal
  • Usar ventanas de tiempo incorrectas o olvidar filtrar por entorno

Cada ingeniero consulta los mismos datos de forma diferente. Un ingeniero encuentra el problema en cinco minutos. Otro ingeniero pasa 30 minutos dando vueltas con KQL ad hoc.

Cómo resuelven las herramientas de Kusto este problema

Las herramientas de Kusto le permiten guardar las mejores consultas de su equipo como herramientas parametrizadas y deterministas. El agente ejecuta la consulta exacta que define, por lo que la experiencia del equipo se convierte en una funcionalidad compartida.

antes de después de
Ingeniero sénior escribe la consulta desde la memoria La consulta se guarda como una herramienta, cualquier persona puede usarla.
Estimaciones en tiempo real sobre intervalos de tiempo y filtros Los parámetros piden la información necesaria
Cada respondedor obtiene resultados diferentes La misma consulta se ejecuta cada vez
Se deben recordar combinaciones complejas La lógica de varios pasos está precompilada

En lugar de pedir al ingeniero de llamadas que "descubra cómo consultar los registros de errores", le preguntan al agente:

Show me errors from the last 24 hours

El agente usa la herramienta predefinida timeRange=24h, devolviendo exactamente las columnas y filtros que necesita su equipo.

Cómo funciona

Siga estos pasos para crear y usar una herramienta kusto:

  1. Conectar: agregue el clúster de Azure Data Explorer como conector.
  2. Crear: defina consultas con parámetros mediante ##parameterName## sintaxis.
  3. Prueba: valide que la consulta se ejecuta correctamente en el portal.
  4. Adjuntar: agregue la herramienta a un agente personalizado.
  5. Uso: el agente llama a la herramienta cuando las preguntas del usuario coinciden con la descripción de la herramienta.

Dos enfoques para las consultas de datos

Al agregar un conector de Azure Data Explorer, elija entre consultas deterministas o flexibles.

Enfoque Descripción Se utiliza cuando
Conector de consulta de base de datos El agente usa consultas predefinidas (herramientas de Kusto) Quiere consultas deterministas y exactas
Conector de indexación de base de datos El agente genera consultas mediante el aprendizaje del esquema Quiere consultas flexibles y ad hoc

Crear una herramienta Kusto

Cree herramientas en Constructor>Lienzo del agente>Crear>Herramienta>Herramienta Kusto. Cada herramienta necesita un nombre, una descripción, un conector, una base de datos y una consulta KQL con marcadores de posición de parámetro opcionales ##paramName## .

Para ver el tutorial completo con capturas de pantalla, consulte Tutorial: Creación de una herramienta Kusto.

Añadir una herramienta a un agente personalizado

Después de crear la herramienta, adjúntela a un agente personalizado mediante el botón de vista del lienzo +>Agregar herramientas ya existentes.

Prerrequisitos

Antes de crear herramientas de Kusto, cumpla los siguientes requisitos.

Permisos de Azure Data Explorer

La identidad administrada del agente necesita el rol AllDatabasesViewer en el clúster de Azure Data Explorer.

Use el siguiente comando de administración de KQL:

.add cluster AllDatabasesViewer ('aadapp=<MANAGED_IDENTITY_CLIENT_ID>;<TENANT_ID>')

Como alternativa, en Azure Portal, vaya al clúster de Azure Data Explorer. Seleccione Seguridad + permisos de red>Agregar>Add>AllDatabasesViewer.

Conector Kusto

Antes de crear herramientas, configure un conector ADX. Al agregar el conector:

  • Seleccione Conector de consulta de base de datos para consultas predefinidas, no para el aprendizaje de esquemas.
  • Use la dirección URL completa del clúster, incluida la base de datos: https://<CLUSTER_NAME>.<REGION>.kusto.windows.net/<DATABASE_NAME>.

Consultas parametrizadas

Haga que las herramientas sean flexibles con parámetros mediante la ##parameterName## sintaxis :

AppEvents
| where TimeGenerated > ago(##timeRange##)
| where EventLevel == "Error"
| where Message contains "##searchPattern##"
| take 100

Cuando el agente usa esta herramienta, sustituye los parámetros en función de la entrada del usuario.

El usuario dice Sustitutos del agente
"errores del último día" timeRange=24h
"buscar excepciones de puntero nulo" searchPattern=NullPointerException

Los parámetros permiten que una herramienta controle muchas variaciones de la misma pregunta.

Modos de ejecución (YAML)

Al definir herramientas en YAML, elija un modo de ejecución.

Modo Descripción Se utiliza cuando
Query Ejecuta una consulta KQL en línea Más común. La consulta se define directamente en YAML.
Function Llama a una función almacenada en el clúster La lógica de consulta se define en Azure Data Explorer como una función
Script Ejecuta un script KQL desde un archivo externo Consultas complejas de varias instrucciones
# Query mode (most common)
spec:
  mode: Query
  query: |-
    AppEvents | take 10

# Function mode
spec:
  mode: Function
  function: GetRecentErrors

Procedimientos recomendados sobre las consultas

Siga estas recomendaciones al escribir consultas de herramientas de Kusto.

Usar intervalos de tiempo adecuados : valor predeterminado para los datos recientes:

| where TimeGenerated > ago(1h)

Adición de límites de resultados : evitar resultados abrumadores:

| take 100

Incluir proyecciones útiles : devuelva solo las columnas que necesita el agente:

| project TimeGenerated, Name, DurationMs, ResultCode

Cuándo usar herramientas de Kusto frente a consultas ad hoc

Elija el enfoque adecuado en función de su escenario.

Escenario Herramientas de Kusto Consultas ad hoc
Procedimientos estandarizados del manual de operaciones No
Patrones de investigación repetibles No
Consultas complejas de varias combinaciones No
Exploración de datos desconocidos No
Investigaciones únicas No

Empieza ahora

Recurso Qué aprenderá:
Crear una herramienta Kusto Tutorial paso a paso con capturas de pantalla
Capacidad Lo que agrega
Agentes personalizados Asigne herramientas a agentes personalizados especializados
Conectores Conexión de otros orígenes de datos