Sucesos de API
Tabla de referencia y ejemplos de casos de uso para las reglas de interacción basadas en eventos de la API.
Los siguientes son algunos de los ejemplos de casos de uso para las reglas de participación basadas en eventos de la API:
- Un proveedor de API puede utilizar Engagement para recibir notificaciones:
- Si hay más de 3 errores HTTP 500 en cualquier API en un período de 24 horas.
- Cuando el tiempo medio de respuesta de una API supera un determinado umbral.
- Un responsable de seguridad corporativa puede utilizar el compromiso para recibir un correo electrónico si alguien accede a sus API bancarias desde un país embargado.
- Un proveedor de API de IA puede utilizar el compromiso para recibir una notificación si el total de tokens de IA utilizados en una hora supera un determinado umbral.
La siguiente tabla muestra la lista de campos disponibles para un registro de evento API. Estos campos se utilizan como filtros en la lista de definición de reglas y puede seleccionar una opción basada en los datos que se utilizan para activar la regla.
| Nombre de campo | Tipo | Descripción |
|---|---|---|
| ai_cache_hit | Booleano | Indica si la respuesta AI se ha servido desde caché. |
| modelo de IA | Serie | El nombre o identificador del modelo de IA que se utiliza. |
| ai_request_tokens | Número | El número de tokens en el prompt de entrada al modelo de IA. |
| ai_response_tokens | Número | El número de fichas que se generan en la respuesta de la IA. |
| ai_total_tokens | Número | El número total de tokens que se utilizan en la interacción AI que incluye tanto la solicitud como la respuesta. |
| acción_alerta | Serie | La acción que se lleva a cabo en respuesta a una alerta. |
| descripción_alerta | Serie | Descripción o mensaje asociado a la alerta. |
| fuente_alerta | Serie | El sistema o módulo de origen que ha generado la alerta. |
| Alert_Type | Serie | Tipo o categoría de la alerta. |
| api_id | Serie | El identificador de la API. |
| nombre_api | Serie | El nombre de la API. |
| api_resource_id | Serie | El formato del campo es: api_name:api_version:method:path. Solo disponible en API Gateway v10.5.3 o superior. |
| versión_api | Serie | El número de versión de la API. |
| api_type | Serie | El tipo de API. Por ejemplo, REST, GraphQL, SOAP. |
| app_id | Serie | El identificador de la aplicación registrada. |
| estado_del_ciclo_de_vida_de_la_aplicación | Serie | Estado de ciclo de vida de la aplicación. |
| nombre_aplic | Serie | El nombre de la solicitud registrada. Nota : La propiedad se establece en undefined cuando no se utiliza un ID de cliente o este no es válido en la API. La pasarela necesita un ID de cliente para determinar qué aplicación estaba invocando la API. Desde esta aplicación, la pasarela puede determinar a qué plan está suscrita la aplicación en el producto que contiene la API. Sin un ID de cliente, la pasarela no puede determinar qué plan, producto o aplicación se invocó, porque una sola API puede pertenecer a varios productos (cada uno de los cuales tiene varios planes y aplicaciones que están suscritos a esos planes con ID de cliente). |
| app_type | Serie | El tipo de aplicación, con un valor de Production o Development. |
| método_backend | Serie | El método HTTP que se utiliza en la solicitud del backend. |
| cuerpo_de_la_solicitud_del_servidor | Serie | El contenido del cuerpo de la solicitud de backend. |
| cabeceras de solicitud del backend | Objecto | Las cabeceras que se envían en la solicitud del backend. |
| cuerpo_de_la_respuesta_del_servidor | Serie | El contenido del cuerpo de la respuesta del backend. |
| encabezados de respuesta del backend | Objecto | Las cabeceras que se reciben en la respuesta del backend. |
| código_estado_backend | Serie | El código de estado HTTP devuelto por el backend. |
| tiempo de respuesta del servidor | Número | Tiempo en milisegundos que tarda el backend en servir la petición. |
| url_del_servidor_de_fondo | Serie | La dirección URL del servicio backend invocado. |
| bytes_recibidos | Número | El número de bytes recibidos del consumidor en la solicitud. |
| Bytes_Sent | Número | El número de bytes enviados al consumidor en la respuesta. |
| respuesta_en_cache | Booleano | Indica si la respuesta se ha servido desde una caché. |
| solicitud_de_retorno | Booleano | Indica si la solicitud era una devolución de llamada. |
| catalog_id | Serie | Identificador del catálogo API. |
| nombre_catálogo | Serie | El nombre del catálogo API. |
| client_geoip.area_code | Número | El código de área de la red telefónica pública conmutada (PSTN) del cliente, identificado a partir de su dirección IP. |
| client_geoip.city_name | Serie | El nombre de la ciudad del cliente, identificado a partir de su dirección IP. |
| client_geoip.continent_code | Serie | El código de dos letras del continente del cliente, identificado a partir de su dirección IP. |
| client_geoip.country_code2 | Serie | El código de país de dos letras del cliente, identificado a partir de su dirección IP. |
| client_geoip.country_code3 | Serie | El código de país de tres letras del cliente, identificado a partir de su dirección IP. |
| client_geoip.country_name | Serie | El nombre del país del cliente, identificado a partir de su dirección IP. |
| client_geoip.dma_code | Número | El código de área de mercado designado (DMA) del cliente, identificado a partir de su dirección IP. |
| client_geoip.ip | Serie | La dirección IP del cliente. |
| client_geoip.latitude | Número | La latitud de la ubicación del cliente, identificada a partir de su dirección IP. |
| client_geoip.location | Serie | La longitud y latitud de la ubicación del cliente (separadas por una coma), identificadas a partir de su dirección IP. |
| client_geoip.longitude | Número | La longitud de la ubicación del cliente, identificada a partir de su dirección IP. |
| client_geoip.postal_code | Serie | El código postal del cliente, identificado a partir de su dirección IP. |
| client_geoip.region_code | Serie | El código de región basado en la IP del cliente. |
| client_geoip.region_name | Serie | La forma abreviada de la región que corresponde a la dirección IP del cliente. |
| client_geoip.timezone | Serie | La zona horaria del cliente, identificada a partir de su dirección IP. |
| client_id | Serie | El ID único del cliente que se adjunta a la solicitud de API. |
| CLIENT_IP | Serie | La dirección IP del cliente. |
| id_de_la_organización_de_consumidores | Serie | Identificador de la organización de consumidores. |
| nombre_organizacion_consumidor | Serie | El nombre de la organización de consumidores |
| organización_de_consumidores_title | Serie | El título o nombre para mostrar de la organización de consumidores. |
| datos_personalizados | Mapa de matriz | Se pueden añadir datos personalizados a este campo. |
| datetime | Fecha | Una marca de tiempo que registra cuándo se invocó la API. La marca de tiempo siempre se muestra en Tiempo Universal Coordinado. |
| developer_org_id | Serie | El identificador de la organización de consumidores propietaria de la aplicación. |
| nombre_org_desarrollador | Serie | El nombre de la organización de consumidores propietaria de la aplicación. |
| url_del_punto_final | Serie | Cuando la solicitud falla, endpoint_url identifica el proxy o invoca el URL de destino en el que falló la solicitud. No se incluye con una solicitud exitosa. En una pasarela compatible c V5, este campo solo se rellena cuando el servidor back-end URL que se invocó devuelve un código 404 de " HTTP ". |
| descripción_error | Serie | Una descripción detallada de cualquier error encontrado. |
| error_message | Serie | Un breve mensaje que describe el error. |
| Tipo_suceso | Serie | El tipo de suceso. |
| nombre_del_filtro | Serie | Nombre del filtro que se aplica durante la solicitud. |
| gateway_geoip.area_code | Número | El código de área de la red telefónica pública conmutada (PSTN) de la pasarela, identificado a partir de su dirección IP. |
| gateway_geoip.city_name | Serie | El nombre de la ciudad del gateway, identificado a partir de su dirección IP. |
| gateway_geoip.continent_code | Serie | El código de dos letras del continente de la pasarela, identificado a partir de su dirección IP. |
| gateway_geoip.country_code2 | Serie | El código de país de dos letras de la pasarela, identificado a partir de su dirección IP. |
| gateway_geoip.country_code3 | Serie | El código de país de tres letras de la pasarela, identificado a partir de su dirección IP. |
| gateway_geoip.country_name | Serie | El nombre del país de la pasarela, identificado a partir de su dirección IP. |
| gateway_geoip.dma_code | Número | El código de área de mercado designada (DMA) de la pasarela, identificado a partir de su dirección IP. |
| gateway_geoip.ip | Serie | La dirección IP de la pasarela. |
| gateway_geoip.latitude | Número | La latitud de la ubicación de la pasarela, identificada a partir de su dirección IP. |
| gateway_geoip.location | Serie | La longitud y latitud de la ubicación de la pasarela (separadas por una coma), identificadas a partir de su dirección IP. |
| gateway_geoip.longitude | Número | La longitud de la ubicación de la pasarela, identificada a partir de su dirección IP. |
| gateway_geoip.postal_code | Serie | El código postal de la pasarela, identificado a partir de su dirección IP. |
| gateway_geoip.region_name | Serie | La forma abreviada de la región que corresponde a la dirección IP de la pasarela. |
| gateway_geoip.timezone | Serie | La zona horaria de la pasarela, identificada a partir de su dirección IP. |
| nombre_host_pasarela | Serie | El nombre de host de la pasarela API. |
| dirección_IP_de_la_puerta_de_enlace | Serie | La dirección IP de la pasarela. |
| puerto_pasarela | Número | El número de puerto utilizado por la pasarela API. |
| nombre_servicio_pasarela | Serie | El nombre del servicio de pasarela API de DataPower. Configurado por el usuario administrador de la nube al registrar el servicio de puerta de enlace. Solo disponible en DataPower API Gateway v10.5.3 o superior. |
| pasarela_tiempo_para_servir_petición | Número | Tiempo en milisegundos que tarda la pasarela en servir la petición. |
| tipo_pasarela | Serie | El tipo y la versión de la puerta de enlace que procesó la llamada, en formato: type / version. Establecido por todos los tipos de puerta de enlace excepto v5c, y solo disponible en v10.0.8.0 o superior. |
| id_transacción_global | Serie | El ID de transacción global de DataPower. Consulte https://www.ibm.com/docs/en/datapower-gateway/latest?topic=variables-varserviceglobal-transaction-id-servicevarsglobaltransactionid. |
| hash del documento GraphQL | Serie | El valor hash del documento de consulta GraphQL. |
| número de errores de GraphQL | Número | Número de errores encontrados en la ejecución de la consulta GraphQL. |
| graphql_nombre_operacion | Serie | El nombre de la operación GraphQL. |
| tipo_operación_gráfica | Serie | Tipo de operación GraphQL. |
| coste del campo de la solicitud GraphQL | Número | GraphQL Solo API. El coste máximo de todos los campos a los que se accede en la consulta. El coste de cada acceso de campo se configura en el esquema. |
| graphql_request_max_nesting | Número | GraphQL Solo API. La profundidad máxima de anidamiento encontrada en la consulta por la acción de validación de ensamblaje. La configuración del esquema se utiliza para determinar qué tipos están anidados, por lo que este valor podría ser menor que la profundidad de anidamiento encontrada por la acción de análisis del ensamblado. |
| recuento de campos principales en GraphQL | Objecto | GraphQL Solo API. El número máximo de veces que una consulta puede recuperar cada campo. Este número es igual al número de veces que debe ejecutarse el programa de
resolución. Este campo se almacena en formato JSON y no está indexado, por lo que no está disponible para visualizaciones. Se almacena un número limitado de solicitudes de consulta y respuestas para cada entrada, en función de la cantidad de datos que cada una contiene. La cantidad máxima de datos que se puede almacenar está sujeta a cambios. |
| recuento de los tipos más frecuentes en las solicitudes de GraphQL | Objecto | GraphQL Solo API. El número máximo de veces que una consulta puede recuperar un objeto de cada tipo. Este campo se almacena en formato JSON y no está indexado, por lo que no está disponible para visualizaciones. Se almacena un número limitado de solicitudes de consulta y respuestas para cada entrada, en función de la cantidad de datos que cada una contiene. La cantidad máxima de datos que se puede almacenar está sujeta a cambios. |
| coste del tipo de solicitud GraphQL | Número | GraphQL Solo API. El coste máximo de todos los tipos recuperados en la consulta. El coste de cada tipo se configura en el esquema. |
| coste del campo de respuesta de GraphQL | Número | GraphQL Solo API. El coste de todos los campos a los que se accede en la consulta. El coste de cada acceso de campo se configura en el esquema. |
| graphql_response_max_nesting | Número | GraphQL Solo API. La profundidad de anidamiento encontrada en la consulta por la acción de validación de ensamblado. La configuración del esquema se utiliza para determinar qué tipos se consideran anidados, por lo que este valor podría ser menor que la profundidad de anidamiento encontrada por la acción de análisis del conjunto. |
| recuento de campos principales en la respuesta de GraphQL | Objecto | GraphQL Solo API. El número de veces que cada campo fue recuperado por la consulta. Este número es igual al número de veces que debe ejecutarse el programa de
resolución. Este campo se almacena en formato JSON y no está indexado, por lo que no está disponible para visualizaciones. Se almacena un número limitado de solicitudes de consulta y respuestas para cada entrada, en función de la cantidad de datos que cada una contiene. La cantidad máxima de datos que se puede almacenar está sujeta a cambios. |
| recuento de tipos principales de respuesta de GraphQL | Objecto | GraphQL Solo API. El número de veces que se recuperó un objeto de cada tipo mediante la consulta. Este campo se almacena en formato JSON y no está indexado, por lo que no está disponible para visualizaciones. Se almacena un número limitado de solicitudes de consulta y respuestas para cada entrada, en función de la cantidad de datos que cada una contiene. La cantidad máxima de datos que se puede almacenar está sujeta a cambios. |
| cost_del_tipo_de_respuesta_graphql | Número | GraphQL Solo API. El coste de todos los tipos que se han recuperado en la consulta. El coste de cada tipo se configura en el esquema. |
| headers. field_ name | Serie | Información interna relacionada con la ingesta de datos analíticos. headers.field_name no está relacionado con la llamada API o su respuesta, consulte request_http_headers para obtener esa información. |
| host | Serie | El nombre de host o la dirección IP del nodo de ingesta que recibió el evento de API. |
| http_user_agent | Serie | El valor del encabezado del agente de usuario en la solicitud entrante. |
| immediate_client_ip | Serie | La dirección IP del cliente que está directamente delante de la pasarela. Por lo general, immediate_client_ip es la IP de un equilibrador de carga. |
| latency_info.started | Número | El tiempo de retardo (en milisegundos) entre el momento en que se recibió la solicitud y el momento en que la pasarela inició la tarea correspondiente. El inicio de una tarea implica varios pasos previos a la ejecución de una API; por ejemplo, completar el protocolo de autenticación de TCP / TLS, verificar el ID de cliente y el secreto de la aplicación, y hacer coincidir el URI de la solicitud con un catálogo, una API y un plan. Cuando la pasarela recibe una solicitud, la duración de «Inicio» se establece en 0. A continuación, se suma la duración de cada paso de la tarea de inicio, y el total representa la duración de la tarea de inicio. |
| latency_info.task | Serie | La transacción API que se procesó. |
| política_de_registro | Serie | La política de registro definida. Los valores incluyen none, event, headers y payload. |
| método | Serie | El método HTTP utilizado en la solicitud. Por ejemplo, GET, POST. |
| atributo_monitor | Serie | El atributo personalizado que se utiliza para la supervisión de la API. |
| opentracing_info | Objecto | Los datos de seguimiento distribuidos para la solicitud. |
| ruta_de_operación | Serie | La ruta de operación específica dentro de la API. |
| org_id | Serie | El identificador de la organización proveedora propietaria de la API y los Productos asociados. |
| org_name | Serie | El nombre de la organización proveedora propietaria de la API y los Productos asociados. |
| vía de acceso | Serie | La ruta completa de la solicitud API. |
| id_ruta | Serie | Identificador de la ruta API a la que se accede. |
| plan_id | Serie | El identificador del plan. |
| plan_name | Serie | El nombre del plan. Nota : La propiedad se establece en undefined cuando no se utiliza un ID de cliente o este no es válido en la API. La pasarela necesita un ID de cliente para determinar qué aplicación estaba invocando la API. Desde esta aplicación, la pasarela puede determinar a qué plan está suscrita la aplicación en el producto que contiene la API. Sin un ID de cliente, la pasarela no puede determinar qué plan, producto o aplicación se invocó porque una sola API puede pertenecer a varios productos (cada uno de los cuales tiene varios planes y aplicaciones que están suscritos a esos planes con ID de cliente). |
| versión_plan | Serie | El número de versión del plan. |
| product_id | Serie | Identificador del producto asociado a la API. |
| nombre_producto | Serie | El nombre del producto. Nota : La propiedad se establece en undefined cuando no se utiliza un ID de cliente o este no es válido en la API. La pasarela necesita un ID de cliente para determinar qué aplicación estaba invocando la API. Desde esta aplicación, la pasarela puede determinar a qué plan está suscrita la aplicación en el producto que contiene la API. Sin un ID de cliente, la pasarela no puede determinar qué plan, producto o aplicación se invocó porque una sola API puede pertenecer a varios productos (cada uno de los cuales tiene varios planes y aplicaciones que están suscritos a esos planes con ID de cliente). |
| título_producto | Serie | El título del Producto. |
| versión del producto | Serie | El número de versión del Producto. |
| cadena_de_consulta | Serie | El valor de la cadena de consulta URL en la solicitud entrante. |
| límite_de_tasa | Serie | El número máximo de solicitudes que una aplicación puede realizar a la API durante un intervalo de tiempo específico. |
| rate_limit.count | Número | El número de llamadas API restantes en el intervalo de tiempo límite de velocidad especificado. |
| rate_limit.interval | Número | El intervalo de tiempo total durante el cual se permite un cierto número de llamadas API. |
| rate_limit.limit | Número | El número máximo de solicitudes que una aplicación puede realizar a la API durante un intervalo de tiempo específico. |
| rate_limit.period | Número | El intervalo de tiempo que se utiliza para establecer un límite de velocidad para las llamadas API. |
| rate_limit.reject | Serie | Una indicación de si se rechazan las llamadas que superan el límite de tarifa especificado. Si es cierto, la llamada API se rechaza con un código de estado 429. Si es falso, se crea un registro en el registro de actividad. |
| rate_limit.shared | Serie | Una indicación de si el límite de tarifa se comparte a nivel de Plan por todas las operaciones, o si se especifica un límite de tarifa en operaciones e indivIDual. |
| rate_limit.unit | Número | La unidad de tiempo utilizada para calcular el límite de velocidad. Nota : Los valores permitidos son segundo, minuto, hora, día y semana |
| cuerpo_de_la_solicitud | Serie | El cuerpo de la solicitud entrante. |
| request _http_headers.field_name | Serie | Un componente de la sección de encabezado " HTTP " de la solicitud entrante; por ejemplo, las codificaciones aceptables, la cadena de identificación del agente de usuario o los servidores proxy a través de los cuales se envió la solicitud. Nota : Los siguientes tipos de encabezados se consideran confidenciales y no se muestran en los datos analíticos por razones de seguridad:
|
| método_solicitud | Serie | El método de la solicitud entrante. |
| protocolo_de_solicitud | Serie | El protocolo de la solicitud entrante. |
| recurso | Serie | Nombre de la operación. |
| resource_id | Serie | El identificador de la operación. |
| ruta_recursos | Serie | La ruta de operación. |
| respuesta_cuerpo | Serie | El cuerpo de la respuesta saliente. |
| respuesta_http_headers.nombre_del_campo | Serie | Un componente de la sección de encabezado " HTTP " de la respuesta saliente; por ejemplo, el tipo MIME del contenido o los datos y la hora en que se envió el mensaje. |
| nombre_regla | Serie | Nombre de la regla que se aplica a la solicitud. |
| alcance | Serie | No se utiliza para DataPower® API Gateway o DataPower Gateway. |
| space_id | Serie | Identificador del espacio bajo el que se realizó la llamada a la API. |
| nombre_espacio | Serie | El nombre del espacio. |
| Status_Code | Serie | El código de estado establecido en la respuesta saliente. |
| tiempo_para_servir_solicitud | Número | El tiempo transcurrido (en milisegundos) desde que la pasarela recibió la solicitud hasta que envió una respuesta. |
| transaction_id | Serie | El identificador de la transacción API. Consulte https://www.ibm.com/docs/en/datapower-gateway/latest?topic=variables-varservicetransaction-id-servicevarstransactionid. |
| ruta_uri | Serie | La ruta URI en la solicitud entrante. |
| agente_usuario | Objecto | El contenido analizado del campo " http_user_agent ", que contiene información sobre el usuario que realizó la llamada a la API. |
| user_agent.device | Serie | Nombre del dispositivo. |
| user_agent.major | Serie | Número de versión principal del agente de usuario. |
| user_agent.minor | Serie | Número de versión menor del agente de usuario. |
| user_agent.name | Serie | Nombre del agente de usuario. |
| user_agent.os_full | Serie | Nombre completo del sistema operativo detectado. |
| user_agent.os_major | Serie | Número de versión principal del sistema operativo detectado. |
| user_agent.os_minor | Serie | Número de versión menor del sistema operativo detectado. |
| user_agent.os_name | Serie | Nombre del sistema operativo detectado. |
| user_agent.os_patch | Serie | Versión de parche del sistema operativo detectada. |
| user_agent.os_version | Serie | Versión del sistema operativo detectada. |
| user_agent.patch | Serie | Versión del parche del agente de usuario. |
| user_agent.version | Serie | Versión del agente de usuario detectada. |
| tipo_mensaje_webocket | Serie | El tipo de mensaje WebSocket. |
| websocket_origin | Serie | La cabecera de origen de la conexión WebSocket. |
not in https://github.ibm.com/velox/analytics/blob/master/scripts/localESApicData/apic-api-template.json but in https://www.elastic.co/guide/en/logstash/current/plugins-filters-useragent.html