MongoDB.local SF, Jan 15: See the speaker lineup & ship your AI vision faster. Use WEB50 to save 50%
Find out more >
Menu Docs
Página inicial do Docs
/ /
/ / /

Configurar modelo de webhook

O Ops Manager oferece suporte à criação de modelos de webhook usando a sintaxe de modelo FreeMarker. Você pode personalizar os HTTP headers e o conteúdo do corpo da solicitação enviado para o ponto de extremidade do webhook. Ambos os modelos devem produzir uma saída JSON válida.

Você pode usar uma variedade de variáveis nos modelos de cabeçalhos e corpo. Para obter mais detalhes, consulte a documentação do Modelo de alerta, clique no botão post test message (dados aleatórios) ou salve um alerta e inspecione a carga útil do webhook (os nomes das variáveis correspondem às chaves JSON).

Observação

Nem todas as variáveis estão incluídas em cada chamada de webhook. Os campos disponíveis dependem do tipo de alerta e status. Certifique-se de que seus modelos lidem com valores nulos para evitar erros de renderização.

As seguintes variáveis estão disponíveis em modelos de webhook:

Variável
Descrição

${acknowledgedUntil}

Registro de data/hora no formato de data e hora ISO 8601 em UTC até o qual o alerta foi confirmado.

${acknowledgementComment}

Comentário deixado pelo usuário que reconheceu o alerta.

${acknowledgingUsername}

Nome de usuário do usuário que reconheceu o alerta.

${alertConfigId}

Identificador exclusivo para a configuração de alerta que acionou este alerta.

${clusterId}

Identificador único do cluster ao qual este alerta se aplica.

${clusterName}

Nome do cluster ao qual este alerta se aplica.

${created}

Carimbo de data/hora no formato de data e hora ISO 8601 em UTC quando o alerta foi aberto.

${currentValue}

(Objeto) Valor atual da métrica que acionou o alerta.

${currentValue.number}

Valor da métrica.

${currentValue.units}

Unidades para o valor. O valor depende do tipo de métrica.

${event}

A alteração de ação ou estado para esta notificação de alerta (cabeçalho X-Mms-Event padrão - alert.opened, alert.closed, alert.update, alert.acknowledge, alert.cancel, alert.inform).

${eventTypeName}

Nome do evento que acionou o alerta.

${groupId}

Identificador único do grupo (projeto) para o qual este alerta foi aberto.

${hostId}

Identificador exclusivo do hospedar ao qual as métricas se referem.

${hostnameAndPort}

Nome do hospedar e porta de cada hospedar ao qual o alerta se aplica. Pode ser um nome de host, um FQDN, um endereço IPv4 ou um endereço IPv6.

${humanReadable}

Descrição legível por humanos do alerta.

${id}

Identificador único para o alerta.

${lastNotified}

Registro de data/hora no formato de data e hora ISO 8601 em UTC quando a última notificação foi enviada para este alerta.

${links}

(Array de objeto) Um ou mais links para sub-recursos e/ou recursos relacionados.

${links[i].rel}

Descreve o tipo de relacionamento do recurso vinculado (por exemplo, self para o recurso atual).

${links[i].href}

Link para o recurso.

${metricName}

Nome da medição cujo valor ficou fora do limite.

${orgId}

Identificador único da organização para a qual este alerta foi aberto.

${orgName}

Nome da organização para a qual este alerta foi aberto.

${projectName}

Nome do projeto (grupo) para o qual este alerta foi aberto.

${replicaSetName}

Nome do conjunto de réplicas.

${requestId}

Identificador exclusivo da solicitação. (Cabeçalho X-Mms-Request-Id padrão).

${resolved}

Registro de data/hora no formato de data e hora ISO 8601 em UTC quando o alerta foi fechado.

${signature}

Solicitação de assinatura, disponível apenas no modelo de cabeçalhos. (Cabeçalho X-Mms-Signature padrão).

${status}

Estado atual do alerta (TRACKING | OPEN | CLOSED | CANCELLED | INFORMATIONAL)

${sourceTypeName}

Tipo de hospedar sendo copiado quando eventTypeName : BACKUP

${tags}

Identificar rótulos definidos para este alerta.

${updated}

Registro de data/hora no formato de data e hora ISO 8601 em UTC quando o alerta foi atualizado pela última vez.

Além disso, há um assistente personalizado disponível, o assistente re , que permite utilizar expressões regulares para extrair dados de texto dentro de seus modelos.

  • re.group(input, regex, group)

    Retorna o grupo de captura especificado da primeira correspondência. Se não houver correspondência, retorna uma string vazia.

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

  • re.findAllGroup(input, regex, group)

    Retorna uma lista de todas as correspondências de grupo.

    Exemplo:

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

    saídas: 12 98 33

Observação

O índice do grupo é baseado em 1. Se nenhuma correspondência for encontrada, retorna uma string vazia ou uma lista vazia.

{
"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!''}"
}

Após configurar seus modelos de webhook, você pode testá-los usando o botão Test Alert na interface de configuração de alerta . Isso envia uma notificação de teste com dados de amostra para verificar se seu modelo renderiza corretamente.

Voltar

Alertas do sistema

Nesta página