Você pode gerenciar a condição do alerta usando nossa API NerdGraph.
Dica
Consulte a introdução do NerdGraph para obter ajuda para começar a usar o NerdGraph e o NerdGraph Explorer.
Etapas para criar uma condição NRQL
Siga esses passos:
Decida qual tipo de condição você deseja criar (consulte Tipos de limite de condição NRQL).
Encontre seu
policyID
relevante seguindo um destes procedimentos:Vá para
one.newrelic.com > All capabilities > Alerts > Alert conditions (Policies)
. Escolha uma política. Encontre o ID abaixo do nome da política.
Forneça a mutação apropriada para o seu tipo de condição NRQL e os valores relevantes.
Dica
O NerdGraph GraphiQL Explorer é o melhor lugar para encontrar documentação atualizada sobre as especificações por campo da API NerdGraph NRQL Conditions. Por exemplo, perguntas como "O que o campo valueFunction
aceita?" são melhor respondidas com a documentação embutida do NerdGraph.
Condição estática NRQL
Aqui está um exemplo de criação de uma condição estática:
mutation { alertsNrqlConditionStaticCreate( accountId: YOUR_ACCOUNT_ID policyId: YOUR_POLICY_ID condition: { name: "Low Host Count - Catastrophic" enabled: true nrql: { query: "SELECT uniqueCount(host) FROM Transaction WHERE appName='my-app-name'" } signal: { aggregationWindow: 60 aggregationMethod: EVENT_FLOW aggregationDelay: 120 } terms: { threshold: 2 thresholdOccurrences: AT_LEAST_ONCE thresholdDuration: 600 operator: BELOW priority: CRITICAL } valueFunction: SINGLE_VALUE violationTimeLimitSeconds: 86400 } ) { id name }}
NRQL baseline Condição
Aqui está um exemplo de criação de uma condição baseline :
mutation { alertsNrqlConditionBaselineCreate( accountId: YOUR_ACCOUNT_ID policyId: YOUR_POLICY_ID condition: { name: "Baseline Condition" enabled: true baselineDirection: UPPER_ONLY nrql: { query: "SELECT average(duration) FROM Transaction" } signal: { aggregationWindow: 60 aggregationMethod: EVENT_FLOW aggregationDelay: 120 } terms: { threshold: 13 thresholdDuration: 180 thresholdOccurrences: ALL operator: ABOVE priority: CRITICAL } violationTimeLimitSeconds: 86400 } ) { id name baselineDirection }}
Atualizar uma condição
Complete o seguinte:
Determine o tipo da sua condição existente solicitando o campo type em uma consulta
nrqlConditionsSearch
como esta:{actor {account(id: YOUR_ACCOUNT_ID) {alerts {nrqlConditionsSearch {nrqlConditions {idtype}}}}}}Dica
O
type
retornado é o que você usa para sua mutação de atualização. Por exemplo, se o tipo retornado forSTATIC
, usealertsNrqlConditionStaticUpdate
. Se o tipo retornado forBASELINE
, usealertsNrqlConditionBaselineUpdate
.Forneça o
id
da sua condição para a mutação do tipo de condição relevante. Observe que você só pode atualizar condições do tipo relevante.
Forneça mutações de atualização apenas para os campos que você deseja atualizar. Os campos que você não fornece na atualização não são alterados.
Atualizar mutações
Somente os campos fornecidos na atualização serão alterados. No exemplo a seguir, baselineDirection
retorna inalterado, mas name
é atualizado.
mutation { alertsNrqlConditionBaselineUpdate( id: YOUR_CONDITION_ID accountId: YOUR_ACCOUNT_ID condition: { name: "Your updated name" } ) { id name baselineDirection }}
Listar e filtrar condições NRQL
Para listar ou filtrar suas condições NRQL, use a consulta nrqlConditionsSearch
no NerdGraph.
Consulta de condição NRQL singular
Você pode usar a API de condição NRQL para consultar uma condição única. Execute a consulta nrqlCondition
no namespace alerta.
Semelhante aos campos específicos de tipo na consulta nrqlConditionSearch
, você também pode usar esses fragmentos embutidos para solicitar campos restritos a um tipo de condição NRQL.
{ actor { account(id: YOUR_ACCOUNT_ID) { alerts { nrqlCondition(id: YOUR_CONDITION_ID) { id name ... on AlertsNrqlStaticCondition { valueFunction } } } } }}
Atualize a descrição
Isso orientará você no procedimento para criar uma descrição para uma condição de alerta NRQL.
Obtenha todas as condições de uma apólice:
{actor {account(id: YOUR_ACCOUNT_ID) {alerts {nrqlConditionsSearch(searchCriteria: { policyId: YOUR_POLICY_ID }) {nrqlConditions {idnamedescriptionenablednrql {query}signal {aggregationWindowaggregationMethodaggregationDelayaggregationTimer}policyIdrunbookUrlterms {operatorthresholdDurationthresholdprioritythresholdOccurrences}typeviolationTimeLimitSeconds}}}}}}Obtenha os detalhes de uma única condição:
{actor {account(id: YOUR_ACCOUNT_ID) {alerts {nrqlCondition(id: "YOUR_CONDITION_ID") {descriptionidenablednamenrql {query}signal {aggregationWindowaggregationMethodaggregationDelayaggregationTimer}policyIdrunbookUrlterms {operatorprioritythresholdthresholdDurationthresholdOccurrences}typeviolationTimeLimitSeconds}}}}}Crie uma mutação com a descrição.
Aqui está um modelo de mutação vazio:
mutation {alertsNrqlConditionStaticUpdate(accountId: YOUR_ACCOUNT_IDid: "YOUR_CONDITION_ID"condition: { description: "" }) {description}}Aqui está um exemplo de mutação com uma descrição de exemplo incluída:
mutation {alertsNrqlConditionStaticUpdate(accountId: 123456id: "123456"condition: {description: "timestamp : {{timestamp}} \n accountId : {{accountId}} \n type : {{type}} \n event : {{event}} \n description : {{description}} \n policyId : {{policyId}} \n policyName: {{policyName}} \n conditionName : {{conditionName}} \n conditionId : {{conditionId}} \n product : {{product}} \n conditionType : {{conditionType}} \n RunbookUrl : {{runbookUrl}} \n nrqlQuery : {{nrqlQuery}} \n nrqlEventType : {{nrqlEventType}} \n targetID : {{targetId}} \n targetName : {{targetName}} \n commandLine : {{tag.commandLine}} \n entityGuid : {{tag.entityGuid}} \n entityName : {{tag.entityName}} \n fullHostname : {{tag.fullHostname}} \n instanceType : {{tag.instanceType}} \n processDisplayName : {{tag.processDisplayName}}"}) {description}}
Excluir condições
Você pode usar a mutação alertsConditionDelete
para excluir qualquer tipo de condição. Você só pode solicitar o campo id
em uma mutação de exclusão; por exemplo:
mutation { alertsConditionDelete(accountId: YOUR_ACCOUNT_ID, id: YOUR_CONDITION_ID) { id }}