Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /
/ / /

Configura la plantilla del webhook

Ops Manager admite la creación de plantillas de webhook mediante FreeMarker sintaxis de la plantilla. Puedes personalizar tanto los HTTP headers como el contenido del cuerpo de la solicitud que se envía a tu endpoint de webhook. Ambos plantillas deben producir una salida JSON válida.

Puedes usar diversas variables tanto en los encabezados como en las plantillas de cuerpo. Para más detalles, consulta la Documentación del modelo de alerta, haga clic en la post test message botón (datos aleatorios) o guarde una alerta e inspeccione la carga útil del webhook (los nombres de las variables coinciden con las claves JSON).

Nota

No todas las variables están incluidas en cada llamada de webhook. Los campos disponibles dependen del tipo y estado de alerta. Asegúrate de que tus plantillas gestionen correctamente los valores nulos para evitar errores de renderización.

Las siguientes variables están disponibles en las plantillas de webhook:

Variable
Descripción

${acknowledgedUntil}

Marca temporal en formato de fecha y hora ISO 8601 en UTC hasta que se reconozca la alerta.

${acknowledgementComment}

Comentario dejado por el usuario que reconoció la alerta.

${acknowledgingUsername}

Nombre de usuario del usuario que reconoció la alerta.

${alertConfigId}

Identificador único de la configuración de alerta que activó esta alerta.

${clusterId}

Identificador único del clúster al que se aplica esta alerta.

${clusterName}

Nombre del clúster al que se aplica esta alerta.

${created}

Marca de tiempo en ISO 8601 formato de fecha y hora en UTC cuando se abrió la alerta.

${currentValue}

(Objeto) Valor actual de la métrica que desencadenó la alerta.

${currentValue.number}

Valor de la métrica.

${currentValue.units}

Unidades para el valor. El valor depende del tipo de métrica.

${event}

La acción o el cambio de estado para esta notificación de alerta (Encabezado por defecto X-Mms-Event - alert.opened, alert.closed, alert.update, alert.acknowledge, alert.cancel, alert.inform).

${eventTypeName}

Nombre del evento que activó la alerta.

${groupId}

Identificador único del grupo (proyecto) para el cual se activó esta alerta.

${hostId}

Identificador único del host al que pertenece la métrica.

${hostnameAndPort}

Nombre de host y puerto de cada host al que se aplica la alerta. Esto puede ser un nombre de host, un FQDN, una dirección IPv4 o una dirección IPv6.

${humanReadable}

Descripción legible por humanos de la alerta.

${id}

Identificador único para la alerta.

${lastNotified}

Marca de tiempo en el formato de fecha y hora ISO 8601 en UTC cuando se envió la última notificación para esta alerta.

${links}

(Arreglo de objetos) Uno o más enlaces a subrecursos y/o recursos relacionados.

${links[i].rel}

Describe el tipo de relación del recurso enlazado (por ejemplo, self para el recurso actual).

${links[i].href}

Enlace al recurso.

${metricName}

Nombre de la medición cuyo valor excedió el umbral.

${orgId}

Identificador único de la organización para la que se abrió esta alerta.

${orgName}

Nombre de la organización para la que se abrió esta alerta.

${projectName}

Nombre del proyecto (grupo) para el cual se abrió esta alerta.

${replicaSetName}

Nombre del set de réplicas.

${requestId}

Identificador único de la solicitud. (Encabezado predeterminado: X-Mms-Request-Id).

${resolved}

Marca de tiempo en formato ISO 8601 de fecha y hora en UTC cuando se cerró la alerta.

${signature}

Firma de solicitud, solo disponible en la plantilla de encabezados. (Encabezado por defecto X-Mms-Signature).

${status}

Estado actual de la alerta (TRACKING | OPEN | CLOSED | CANCELLED | INFORMATIONAL)

${sourceTypeName}

Tipo de host del que se realiza la copia de seguridad cuando eventTypeName : BACKUP

${tags}

Identificar las etiquetas establecidas para esta alerta.

${updated}

Registro temporal en formato de fecha y hora ISO 8601 en UTC cuando se actualizó por última vez la alerta.

Además, hay un asistente personalizado disponible, el re asistente, que permite utilizar expresiones regulares para extraer datos de texto dentro de las plantillas.

  • re.group(input, regex, group)

    Devuelve el grupo de captura especificado de la primera coincidencia. Si no hay coincidencia, devuelve una cadena vacía.

    Ejemplo: ${re.group("abc-123", "([a-z]+)-(\\d+)", 2)}123

  • re.findAllGroup(input, regex, group)

    Devuelve una lista de todas las coincidencias de grupo.

    Ejemplo:

    <#list re.findAllGroup("error1:12;error2:98;error3:33", "error\\d+:(\\d+)", 1) as val>${val} </#list>

    resultados: 12 98 33

Nota

El índice del grupo se basa en 1. Si no se encuentran coincidencias, devuelve una cadena vacía o una lista vacía.

{
"X-Static": "static-value",
"X-Secret": "${signature}",
"X-Request-Id": "${requestId}",
"X-Event": "${event}",
"X-Org-Name": "${orgName!''}",
"X-Test-Regex-Helper": "${re.group(\"abc-123\", \"([a-z]+)-(\\d+)\", 2)}"
}
{
"staticValue": "This value is static",
"testRegexHelper": [
<#list re.findAllGroup("error1:12;error2:98;error3:33", "error\\d+:(\\d+)", 1) as val> "${val}"<#if val_has_next>,</#if></#list>
],
"replicaSetName": "${replicaSetName!''}",
"metricName": "${metricName!''}",
"orgName": "${orgName!''}",
"created": "${created!''}",
"groupId": "${groupId!''}",
"hostId": "${hostId!''}",
"hostnameAndPort": "${hostnameAndPort!''}",
"humanReadable": "${humanReadable?js_string}",
"orgId": "${orgId!''}",
"alertConfigId": "${alertConfigId!''}",
"eventTypeName": "${eventTypeName!''}",
"links": [
<#list links![] as link>
{
"rel": "${link.rel!''}",
"href": "${link.href!''}"
}<#if link_has_next>,</#if>
</#list>
],
"id": "${id!''}",
"projectName": "${projectName!''}",
"updated": "${updated!''}",
"currentValue": {
"number": ${(currentValue.number)!0},
"units": "${(currentValue.units)!''}"
},
"status": "${status!''}"
}

Después de configurar tus plantillas de webhook, puedes probarlas utilizando el botón Test Alert en la interfaz de configuración de alertas. Esto envía una notificación de prueba con datos de muestra para verificar que tu plantilla se renderiza correctamente.

Volver

Alertas del sistema

En esta página