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.
Este documento hace referencia al uso de las API de Nerdgraph para la nueva plataforma de notificación utilizando destinos y mensajes de notificación. Los mensajes de notificación también se denominan canales, que son diferentes del canal de notificación legacy .
La consulta channels le permite paginar todos sus canales por cuenta. También permite algunas funciones de filtrado.
He aquí un ejemplo:
{
actor{
account(id:YOUR_ACCOUNT_ID){
aiNotifications{
channels{
entities{
id
name
}
error{
details
}
}
}
}
}
}
Para paginar a través de sus canales, debe solicitar el campo nextCursor en su consulta inicial.
Con la paginación del cursor, continúa realizando una solicitud a través del conjunto de resultados hasta que el nextCursor que se devuelve de la respuesta vuelve vacío. Esto significa que llegó al final de sus resultados.
He aquí un ejemplo:
{
actor{
account(id:YOUR_ACCOUNT_ID){
aiNotifications{
channels(cursor:""){
nextCursor
entities{
id
name
}
totalCount
}
}
}
}
}
El código anterior devuelve un conjunto de resultados como este:
La API permite consultar el canal por nombre. El filtro name devuelve coincidencias exactas y coincidencias parciales. No distingue entre mayúsculas y minúsculas. Esto solo devolverá la información de los canales que coincidan con el nombre proporcionado.
En este ejemplo, queremos buscar canales con "DevOps" en el nombre:
{
actor{
account(id:YOUR_ACCOUNT_ID){
aiNotifications{
channels(filters:{name:"DevOps"}){
entities{
id
name
}
}
}
}
}
}
La API te permite consultar por ID de canal:
{
actor{
account(id:YOUR_ACCOUNT_ID){
aiNotifications{
channels(filters:{id:YOUR_CHANNEL_ID}){
entities{
id
name
}
}
}
}
}
}
La API te permite consultar canales por ID de destino:
La API te permite realizar consultas por tipo de canal. La siguiente consulta devolverá todos los canales de correo electrónico de la cuenta elegida:
{
actor{
account(id:YOUR_ACCOUNT_ID){
aiNotifications{
channels(filters:{type:EMAIL}){
entities{
id
name
}
}
}
}
}
}
Crear un canal
Para crear un canal, se deben suministrar diferentes entradas para cada tipo de canal. Cada canal está conectado a un destino. Para obtener información sobre destinos, consulte el tutorial de NerdGraph sobre destinos.
Las mejores prácticas es usar el extremo channelSchema para ver qué campos deben enviarse bajo properties así:
{
actor{
account(id:YOUR_ACCOUNT_ID){
aiNotifications{
channelSchema(
channelType:CHANNEL_TYPE
destinationId:YOUR_DESTINATION_ID
product:YOUR_PRODUCT
constraints:[]
){
schema{
fields{
mandatory
label
key
component
}
}
result
}
}
}
}
}
Jira es un sistema de tickets configurable y, por lo tanto, no existe una forma estática de crear este canal.
Hay dos campos estáticos: project y issuetype.
Obtenga las sugerencias project y utilice uno de los valores como restricción para issuetype, como se muestra aquí:
Si ya conoce su ID de equipo y su ID de canal, puede omitir los pasos 1 y 2 e ir directamente al paso 3 para configurar el canal de notificación.
Esta consulta descubre qué Microsoft Teams son accesibles a través de su destino. Proporciona destinationId y especifica que desea ID de equipo (a través de key: "teamId"), y la API devuelve una lista de equipos disponibles con sus nombres e ID:
{
actor{
account(id:YOUR_ACCOUNT_ID){
aiNotifications{
suggestions(
destinationId:YOUR_DESTINATION_ID
key:"teamId"
channelType:MICROSOFT_TEAMS
constraints:[]
){
entities{
displayValue
value
}
errors{
description
details
type
}
}
}
}
}
}
La respuesta contendrá una lista de equipos con sus nombres para mostrar e identificaciones de equipo únicas:
{
"data":{
"actor":{
"account":{
"aiNotifications":{
"suggestions":{
"entities":[
{
"displayValue":"Engineering Team",
"value":"389e7f6c-xxxx-47f0-aa77-xxxxxxxxxxxx"
},
{
"displayValue":"DevOps Team",
"value":"834dc358-xxxx-4445-9938-xxxxxxxxxxxx"
}
],
"errors":[]
}
}
}
}
}
}
Sugerencia
Si no ves el equipo que estás buscando en los resultados, puedes usar el parámetro filter para buscarlo por nombre:
{
actor{
account(id:YOUR_ACCOUNT_ID){
aiNotifications{
suggestions(
destinationId:YOUR_DESTINATION_ID
key:"teamId"
channelType:MICROSOFT_TEAMS
constraints:[]
filter:{type:CONTAINS,value:"Engineering"}
){
entities{
displayValue
value
}
}
}
}
}
}
Paso 2: Obtener los ID de canal disponibles para un equipo
Una vez que tenga un ID de equipo del Paso 1, esta consulta descubre qué canales existen dentro de ese equipo específico. Proporciona destinationId y teamId (como restricción), y la API devuelve una lista de canales disponibles con sus nombres e ID:
{
actor{
account(id:YOUR_ACCOUNT_ID){
aiNotifications{
suggestions(
destinationId:YOUR_DESTINATION_ID
key:"channelId"
channelType:MICROSOFT_TEAMS
constraints:[{key:"teamId",value:"YOUR_TEAM_ID"}]
){
entities{
displayValue
value
}
errors{
description
details
type
}
}
}
}
}
}
La respuesta contendrá una lista de canales dentro del equipo especificado:
De manera similar a los ID de equipo, puedes filtrar canales por nombre usando el parámetro filter para buscar dentro del equipo especificado.
Paso 3: Configurar el canal de notificación de New Relic
Luego de obtener el ID del equipo y el ID del canal, configure el canal de notificación de New Relic para enviar alertas a su canal de Microsoft Teams.
Importante
Esta mutación crea un objeto de canal de notificación de New Relic que se conecta a un canal de Microsoft Teams existente. El canal de Teams ya debe existir en su espacio de trabajo de Microsoft Teams. Esta API no crea nuevos equipos o canales dentro de Microsoft Teams; solo configura New Relic para enviar notificaciones a sus canales de Teams existentes.
mutation{
aiNotificationsCreateChannel(
accountId:YOUR_ACCOUNT_ID
channel:{
type:MICROSOFT_TEAMS
name:"Channel Name"
destinationId:YOUR_DESTINATION_ID
product:YOUR_PRODUCT
properties:[
{key:"teamId",value:YOUR_TEAM_ID}
{key:"channelId",value:YOUR_CHANNEL_ID}
]
}
){
channel{
id
name
}
}
}
El parámetro product especifica el producto New Relic que genera la notificación. Los valores válidos incluyen:
APM - monitoreo del rendimiento de aplicaciones (APM)
CHANGE_TRACKING
SECURITY
PD - Detección proactiva
Otros valores: CSSP, DISCUSSIONS, NTFC, SHARING
La propiedad payload es la carga útil que se enviará en la notificación. Utiliza la sintaxis del manillar para insertar dinámicamente información de la solicitud.
El eventSource debe ser la URL completa de un origen de evento existente. El eventContent es la carga útil que se enviará en el cuerpo de la notificación, como se muestra aquí:
PagerDuty tiene dos tipos de integración, nivel de servicio y nivel de cuenta. Para obtener más información, consulte los documentos de integración de PagerDuty.
Cuando actualiza un canal, tenga en cuenta que no necesita proporcionar todos los atributos del canal. Por ejemplo, si solo desea actualizar el nombre, ese es el único atributo que necesita actualizar, como se muestra aquí:
mutation{
aiNotificationsUpdateChannel(
accountId:YOUR_ACCOUNT_ID
channelId:YOUR_CHANNEL_ID
channel:{name:"Updated channel Name"}
){
channel{
id
name
}
}
}
Probando un canal
Puede probar canales a través de la API NerdGraph. Esto se puede hacer antes o después de crear el canal.