Te ofrecemos esta traducción automática para facilitar la lectura.
En caso de que haya discrepancias entre la versión en inglés y la versión traducida, se entiende que prevalece la versión en inglés. Visita esta página para obtener más información.
Utilice la API REST de infraestructura para agregar, actualizar, eliminar y enumerar condiciones de alerta. También puede administrar condiciones de alerta individuales utilizando la UI de monitoreo de infraestructura.
La API de llamada REST para alertas de infraestructura no está disponible en el ExploradorAPI .
¿Por qué utilizar la API?
Ejemplos
Consistencia
Defina el mismo conjunto de condiciones para cada clúster sin tener que configurar condiciones idénticas en la UI de infraestructura cada vez.
Administre múltiples condiciones rápidamente, sin tener que actualizarlas una por una usando la UI.
Flexibilidad
Cree condiciones para un grupo arbitrario de hosts.
Deshabilite o elimine las condiciones para los hosts desconectados en cualquier momento.
Cree una condición con filtrado excluyente (para instancia, environment NOT LIKE x). Para obtener más información sobre esto, consulte esta publicación sobre filtrado de exclusión.
Para la integración AWS en la nube, seleccione el atributo que AWS aún no ha enviado.
Cree una condición de alerta compuesta utilizando where_clause, que le permite especificar los límites de una métrica secundaria o terciaria.
Exceda la limitación de 500 facetas en la condición de alerta NRQL .
Fiabilidad
Auditar cuándo se actualizó una condición por última vez.
Requisitos
Para utilizar la API REST de infraestructura, necesita:
Una cuenta New Relic . ¿No tienes uno? ¡Registrate gratis!. No se requiere tarjeta de crédito.
La condición id, disponible a través de GET lista de condiciones o mediante la URL de la condición en la UI de infraestructura
Sugerencia
Si su organización aloja datos en el centro de datos de la UE, asegúrese de estar utilizando la región extremo de la UE.
Usando API de llamada de infraestructura
A continuación se presentan algunos comandos cURL básicos y sus respuestas para la condición de alerta de infraestructura. Dependiendo del tipo de condición, la información DATA que proporcione en la llamada variará para las llamadas POST (agregar) y PUT (actualizar).
Las definiciones de cada atributo utilizado en los bloques data se pueden encontrar en la sección Definiciones .
Para la paginación, utilice el parámetro limit (registros por página) y offset (cuántos registros omitir). El valor predeterminado es 50 registros por página y offset comienza en 0 (no omitir ningún registro).
Para aplicar los resultados a una política específica, utilice policy_id.
Sugerencia
Si desea utilizar la respuesta GET como plantilla para su entrada PUT o POST, asegúrese de eliminar la información created_at_epoch_millis, updated_at_epoch_millis y id .
OBTÉN una lista de condiciones de infraestructura
bash
$
curl-v-X GET --header"Api-Key:$API_KEY""https://infra-api.newrelic.com/v2/alerts/conditions?policy_id=111111"
Respuesta que muestra 2 de las 3 condiciones para la política de ejemplo (formateada para facilitar la lectura y truncada):
HTTP/1.1200 OK
Content-Length:622
Content-Type: application/json
{
"data":[
{
"type":"infra_process_running",
"name":"Java is running",
"enabled":true,
"where_clause":"(`hostname` LIKE '%cassandra%')",
"id":13890,
"created_at_epoch_millis":1490996713872,
"updated_at_epoch_millis":1490996713872,
"policy_id":111111,
"comparison":"equal",
"critical_threshold":{
"value":0,
"duration_minutes":6
},
"process_where_clause":"(`commandName` = 'java')"
},
{
"created_at_epoch_millis":1501704525462,
"critical_threshold":{
"duration_minutes":5
},
"enabled":true,
"filter":{
"and":[
{
"like":{
"fullHostname":"Production_1"
}
}
]
},
"id":448036,
"name":"PROD - Host Machine's Agent Not Responding ....",
"policy_id":98485,
"type":"infra_host_not_reporting",
"updated_at_epoch_millis":1504879191220
}
. . .
],
"meta":{
"limit":50,
"offset":0,
"total":3
},
"links":{}
}
Para obtener una lista de las 10 condiciones de infraestructura más allá del límite de 50:
bash
$
curl-v-X GET --header"Api-Key:$API_KEY""https://infra-api.newrelic.com/v2/alerts/conditions?policy_id=111111&offset=50&limit=10"
OBTENER una condición de infraestructura específica
Para obtener información sobre una única condición de infraestructura:
bash
$
curl-v-X GET --header"Api-Key:$API_KEY""https://infra-api.newrelic.com/v2/alerts/conditions/condition-id"
Respuesta (formateada para facilitar la lectura):
HTTP/1.1200 OK
Content-Length:246
Content-Type: application/json
{
"data":{
"type":"infra_host_not_reporting",
"name":"demo condition",
"enabled":false,
"id":13887,
"created_at_epoch_millis":1490981583580,
"updated_at_epoch_millis":1490981583580,
"policy_id":23635,
"critical_threshold":{
"duration_minutes":100
}
}
}
Crear (POST) una condición de infraestructura
Importante
No incluya un "id": al agregar una nueva condición (POST). Se generará cuando se cree la condición.
Para agregar una condición de infraestructura, use este comando cURL básico:
bash
$
curl-X POST 'https://infra-api.newrelic.com/v2/alerts/conditions'\
Solo necesita incluir los campos que deben cambiarse al actualizar una condición de infraestructura. La API mantiene los valores existentes para los campos faltantes.
Importante
Si desea cambiar la condición type, no utilice PUT. En su lugar, elimine la condición existente y luego agregue (POST) una nueva condición con los campos de nueva condición type y all .
Para actualizar una condición de infraestructura, utilice este comando cURL básico. Para indicar qué condición se actualizará, asegúrese de incluir el "id": .
bash
$
curl-X PUT 'https://infra-api.newrelic.com/v2/alerts/conditions/condition-id'\
Si está agregando o actualizando una condición de alerta de integración en la nube:
Para el campo event_type , ingrese el tipo de evento generado por su servicio de integración en la nube seleccionado (por ejemplo, ComputeSample para la integración de AWS EC2).
Si está configurando una condición de alerta en un servicio de integración en la nube que requiere un valor de proveedor (por ejemplo, AWS RDS usa DatastoreSample con un valor provider de RdsDbInstance o RdsDbCluster), deberá agregar la campo "integration_provider" y utilice el valor apropiado para el servicio al que se dirige su condición de alerta (por ejemplo, "integration_provider":"RdsDbInstance").
Para el campo select_value , cree el nombre de la métrica utilizando la siguiente sintaxis, donde provider es una cadena de prefijo estándar:
provider.metric.aggregation_type
metric: utilice el nombre de la métrica como se describe en la documentación de New Relic para su integración.
aggregation_type: Utilice Sum, Average, Minimum o Maximum. Consulte la documentación original del proveedor de la nube de la integración para ver qué agregaciones de estadísticas están disponibles para cada métrica.
Por ejemplo:
bash
$
curl-X POST 'https://infra-api.newrelic.com/v2/alerts/conditions'-H"Api-Key:$API_KEY"-i-H'Content-Type: application/json'-d
$
'{
$
"data":{
$
"type":"infra_metric",
$
"name":"Disk Space Condition",
$
"enabled":true,
$
"where_clause":"(hostname LIKE '\''%cassandra%'\'')",
$
"policy_id":policy_id,
$
"event_type":"StorageSample",
$
"select_value":"diskFreePercent",
$
"comparison":"below",
$
"critical_threshold":{
$
"value":10,
$
"duration_minutes":1,
$
"time_function":"any"
$
},
$
"warning_threshold":{
$
"value":30,
$
"duration_minutes":2,
$
"time_function":"any"
$
}
$
}
$
}'
Importante
Tenga en cuenta las comillas simples adicionales que escapan de la comilla simple alrededor del where_clause
El campo no_trigger_on es opcional. Cuando se establece en ["shutdown"] , se habilita la opción de condición de infraestructura Don't trigger alerts for hosts that perform a clean shutdown .
Por ejemplo:
bash
$
curl-X POST 'https://infra-api.newrelic.com/v2/alerts/conditions'-H"Api-Key:$API_KEY"-i-H'Content-Type: application/json'-d
$
'{
$
"data":{
$
"type":"infra_host_not_reporting",
$
"name":"Cassandra Host Reporting Condition",
$
"enabled":true,
$
"where_clause":"(hostname LIKE '\''%cassandra%'\'')",
$
"policy_id":policy_id,
$
"critical_threshold":{
$
"duration_minutes":12,
$
"no_trigger_on": ["shutdown"]
$
}
$
}
$
}'
Importante
Tenga en cuenta las comillas simples adicionales que escapan de la comilla simple alrededor del where_clause
Definiciones
Al formatear su comando cURL, use estos valores según sea necesario. Estos se enumeran en orden alfabético, no en el orden en que aparecen en su API de llamada.
El valor utilizado para definir el umbral; por ejemplo, "["above", "below", "equal"].
critical_threshold y warning_threshold
Condition type: todo
Este objeto identifica el valor umbral antes de abrir un incidente.
El critical_threshold es obligatorio.
El warning_threshold es opcional y solo puede usarse con infra_metric condiciones.
Las claves de este objeto dependen del tipo de condición.
Condition type:infra_metric formato:
"critical_threshold":{
"value":<number>,
"duration_minutes":<integer>,
"time_function":"any" or "all"
},
Condition type:infra_process_running formato:
"critical_threshold":{
"value":<integer>,
"duration_minutes":<integer>,
},
Condition type:infra_host_not_reporting formato:
"critical_threshold":{
"duration_minutes":<integer>,
},
El valor numérico que se debe incumplir para que la condición abra un incidente
El número de minutos que se debe pasar o cumplir value para que la condición abra un incidente
Indica si la condición debe mantenerse durante un período de tiempo determinado para crear un incidente, o si solo es necesario superar el umbral una vez dentro de un período de tiempo determinado. Si está configurando un umbral for at least x minutes , utilice all; para un umbral at least once in x minutes , utilice any.
enabled (booleano)
Condition type: todo
Si la condición está activada o desactivada; true o false.
event_type (cadena)
Condition type:infra_metric
El evento métrico; por ejemplo, sistema métrico, proceso métrico, almacenamiento métrico o red métrica. Esto se completa automáticamente para integración de infraestructura; por ejemplo, StorageSample o SystemSample.
filter (cadena)
Condition type: todo
Si la condición se realizó en la UI, aparece filter en lugar de where_clause; Por ejemplo:
{and: [{is: {ec2InstanceType: "m3.medium"}}]}
Recomendación: emplee where_clause al crear una nueva condición.
id (entero)
Condition type: todo
El ID de condición ubicado en la URL.
GET: Este valor aparece en la respuesta GET.
PUT: incluya este valor en la sección DATA .
PUBLICACIÓN: No incluya esto en la sección DATA .
ELIMINAR: incluya este valor en la llamada -X DELETE .
integration_provider (cadena)
Condition type:infra_metric
Para alertas sobre integración, utilice integration_provider en lugar de event_type. Para ver valores válidos: Desde la documentación New Relic para tus servicios en la nube, consulta la sección Find and use data.
Ejemplo: en la documentación de integración de monitoreo AWS RDS , puede ver que el tipo de evento DatastoreSample se puede usar con un valor integration_provider de RdsDbInstance para instancia de base de datos o de RdsDbCluster para clúster de base de datos Aurora.
name (cadena)
Condition type: todo
El nombre de la condición de alerta de infraestructura; Por ejemplo:
"[test] process running"
policy_id (entero)
Condition type: todo
El ID único para el ID de cuenta de la política de alertas asociado con la condición; por ejemplo, 1234567890. Este no es el ID global de la póliza.
process_where_clause (cadena)
Condition type:infra_process_running
Cualquier filtro aplicado a los procesos, específicamente en procesos que ejecutan condición de alerta. Este parámetro es obligatorio para aquellos tipos de condición de alerta. Por ejemplo:
"commandName = '\''java'\''"
runbook_url (cadena)
Condition type:all
La URL runbook que se mostrará en la notificación.
select_value (cadena)
Condition type:infra_metric
El nombre del atributo para identificar la métrica objetivo; por ejemplo, "cpuPercent", "diskFreePercent", "memoryResidentSizeBytes", or "memoryFreeBytes/memoryTotalBytes*100". Esto se completa automáticamente para integración de infraestructura; por ejemplo, diskFreePercent.
type (enumeración)
Condition type: todo
El tipo de condición de alerta de infraestructura: "infra_process_running", "infra_metric" o "infra_host_not_reporting".
violation_close_timer (entero)
Condition type: todo
El establecimiento del límite de tiempo del incidente , expresado en horas. Los valores posibles son 0, 1, 2, 4, 8,12, 24, 48, 72. Esto determina cuánto tiempo pasará antes de que un incidente se cierre automáticamente.
Para condiciones nuevas, si no se proporciona un valor, se utilizan los siguientes valores predeterminados:
Todas las condiciones: 24 hours
Al actualizar las condiciones existentes, si se proporciona un valor, se anula el valor existente, pero no afecta el incidente ya abierto.