Antipatrón: Agrega información personalizada al esquema que es propiedad de Apigee en la base de datos de Postgres

Estás viendo la documentación de Apigee Edge.
Ve a la documentación de Apigee X.
info

Las estadísticas de la API de Edge son una función integrada muy potente que proporciona Apigee Edge. Recopila y analiza un amplio espectro de datos que fluyen a través de las APIs. Los datos de estadísticas capturados pueden proporcionar estadísticas muy útiles. Por ejemplo, ¿cuáles son las tendencias del volumen de tráfico de la API durante un período? ¿Cuál es la API más utilizada? ¿Qué APIs tienen altos porcentajes de errores?

El análisis periódico de estos datos y estadísticas se puede usar para tomar las medidas adecuadas, como la planificación de la capacidad futura de las APIs en función del uso actual, las decisiones de inversión futuras y empresariales, y mucho más.

Datos de Analytics y su almacenamiento

Las estadísticas de la API capturan muchos tipos de datos diferentes, como los siguientes:

  • Información sobre una API: URI de solicitud, dirección IP del cliente, códigos de estado de respuesta, etcétera
  • Rendimiento del proxy de API: Porcentaje de éxito o error, tiempo de procesamiento de solicitudes y respuestas, etcétera
  • Rendimiento del servidor de destino: Tasa de éxito o error, tiempo de procesamiento
  • Información de errores: Cantidad de errores, código de falla, política con errores, cantidad de errores causados por Apigee y el servidor de destino
  • Otra información: Cantidad de solicitudes realizadas por desarrolladores, apps de desarrolladores, etcétera

Todos estos datos se almacenan en un esquema analytics que Apigee Edge crea y administra en una base de datos de Postgres.

Por lo general, en una instalación estándar de Edge, Postgres tendrá los siguientes esquemas:

Edge usa el esquema llamado analytics para almacenar todos los datos de estadísticas de cada organización y entorno. Si la monetización está instalada, habrá un esquema rkms. Otros esquemas están destinados a los elementos internos de Postgres.

El esquema analytics seguirá cambiando a medida que Apigee Edge le agregue tablas de hechos nuevas de forma dinámica durante el tiempo de ejecución. El componente del servidor de Postgres agregará los datos de hechos en tablas agregadas que se cargarán y mostrarán en la IU de Edge.

Antipatrón

No se recomienda agregar columnas, tablas o vistas personalizadas a ninguno de los esquemas de Apigee en la base de datos de Postgres en entornos de nube privada directamente con consultas SQL, ya que puede tener implicaciones adversas.

Tomemos un ejemplo para explicar esto en detalle.

Considera que se creó una tabla personalizada llamada account en el esquema de Analytics, como se muestra a continuación:

Después de un tiempo, supongamos que es necesario actualizar Apigee Edge de una versión inferior a una superior. La actualización de Apigee Edge para la nube privada implica actualizar Postgres entre muchos otros componentes. Si hay columnas, tablas o vistas personalizadas agregadas a la base de datos de Postgres, la actualización de Postgres falla con errores que hacen referencia a los objetos personalizados, ya que Apigee Edge no los crea. Por lo tanto, la actualización de Apigee Edge también falla y no se puede completar.

De manera similar, pueden ocurrir errores durante las actividades de mantenimiento de Apigee Edge, en las que se realizan copias de seguridad y restablecimientos de componentes de Edge, incluida la base de datos de Postgres.

Impacto

  • No se puede completar la actualización de Apigee Edge porque la actualización del componente de Postgres falla con errores que hacen referencia a objetos personalizados que no creó Apigee Edge.
  • Inconsistencias (y fallas) durante el mantenimiento del servicio de Apigee Analytics (copia de seguridad o restablecimiento)

Práctica recomendada

  • No agregues información personalizada en forma de columnas, tablas, vistas, funciones ni procedimientos directamente a ninguno de los esquemas que pertenecen a Apigee, como analytics, etcétera.
  • Si es necesario admitir información personalizada, se puede agregar como columnas (campos) con una política de Statistics Collector al esquema analytics.

Lecturas adicionales