Métricas disponibles
Las métricas se dividen en tres categorías:
-
Métricas recopiladas automáticamente
-
Métricas proporcionadas por el SDK
-
Métricas personalizadas
Recopilación automática de métricas
No se requieren cambios en el código para estas métricas:
Métricas de la instancia
| Tipo de métrica | Descripción | Caso de uso |
|---|---|---|
| CPU | Porcentaje de uso por instancia | Monitoreo de recursos |
| Memoria | Uso de memoria física y porcentaje | Planificación de la capacidad |
| E/S de red | Bytes y paquetes enviados/recibidos | Estado de la conexión |
| E/S de disco | Operaciones de lectura/escritura y rendimiento | Rendimiento del almacenamiento |
Métricas de flota
| Tipo de métrica | Descripción | Caso de uso |
|---|---|---|
| Instancias activas | Recuento de instancias en ejecución | Escalado de flotas |
| Sesiones de juego | Sesiones activas y disponibles | Administración de la capacidad |
| Sesiones de juego bloqueadas | Sesiones de juego que se han bloqueado | Supervisión de errores |
Métricas proporcionadas por el SDK
Requiere llamadas a funciones del SDK en el código:
Métricas de tiempo del servidor
| Métrica | Descripción | Implementación |
|---|---|---|
| Tiempo diferencial del servidor | Diferencia de tiempo entre el tiempo de graduación del servidor actual y el anterior. Mide la constancia de la frecuencia de graduación del servidor | Llamada a GetDeltaTime() |
| Frecuencia de graduación del servidor | Muestra el número de veces por segundo que el servidor procesa las actualizaciones | Se calcula automáticamente |
| Tiempo de graduación del servidor | La cantidad de tiempo que tarda el servidor en procesar una sola graduación o actualización | Llamada a GetTickTime() |
| Tiempo de graduación del servidor mundial | La cantidad de tiempo que tarda el servidor en actualizar el mundo del juego con cada graduación | Llamada a GetWorldUpdateTime() |
Implementación: en el caso de los SDK independientes del motor (C++, C#, Go), estas métricas se implementan llamando a funciones de SDK desde el ciclo de juego con valores de tiempo calculados. En el caso de los complementos de motor (Unreal o Unity), estas métricas se capturan automáticamente mediante la integración del motor.
Métricas de red
| Métrica | Descripción | Implementación |
|---|---|---|
| Connections | Número total de conexiones de red establecidas por el agente | Automática después de InitMetrics() |
| E/S de red (bytes) | Número total de bytes que envía y recibe el nodo a través de la red | Automática después de InitMetrics() |
| E/S de red (paquetes) | Cantidad total de paquetes de red enviados y recibidos por el servidor | Automática después de InitMetrics() |
| Pérdida de paquetes | Porcentaje de paquetes de red que se pierden durante la transmisión | Automática después de InitMetrics() |
Implementación: integre las llamadas a las funciones del SDK con la biblioteca de redes. El SDK proporciona directrices para diferentes implementaciones de red.
Métricas de proceso
| Métrica | Descripción | Implementación |
|---|---|---|
| Uso de la CPU (%) | Porcentaje de recursos de CPU que utiliza el proceso del servidor de juegos | Automática después de InitMetrics() |
| Uso de memoria (unidades) | Cantidad total de memoria que consumen los procesos del servidor | Automática después de InitMetrics() |
| Uso de memoria física (%) | Porcentaje de memoria física total del servidor que está en uso actualmente | Automática después de InitMetrics() |
| Estado del servidor | Estado del servidor de juegos | Automática después de InitMetrics() |
Implementación: el SDK recopila automáticamente estas métricas para cada proceso de sesión de juego.
Organización del panel por proceso
Las métricas por proceso están disponibles en dos paneles especializados:
-
Panel de rendimiento del servidor: contiene los tiempos del servidor (tiempo diferencial, frecuencia de graduación, tiempo de graduación, tiempo de graduación del mundo del juego), métricas de red (conexiones, bytes/paquetes de E/S, pérdida de paquetes), uso de memoria y uso de CPU de cada sesión de juego.
-
Panel de rendimiento de las instancias: incluye las tablas “Las N sesiones de juego que más memoria consumen” y las “N sesiones de juego que más CPU consumen”, que ayudan a identificar qué procesos contribuyen en mayor medida al consumo de recursos de la instancia. Haga clic en los enlaces de las sesiones de juego para investigar más a fondo las métricas detalladas.
Casos de uso de las métricas por proceso
Las métricas por proceso y por sesión de juego permiten los siguientes escenarios de supervisión:
-
Investigación del rendimiento en profundidad: cuando un host o instancia presentan un rendimiento degradado debido a procesos o sesiones de juego específicos, las métricas por proceso ayudan a identificar qué proceso ocasionó el problema con ayuda de las tablas de sesiones de juego que más memoria y CPU consumen.
-
Investigación de bloqueos del servidor de juegos: cuando una sesión de juego se bloquea, estas métricas ayudan a determinar si el bloqueo se debe a una falta de memoria, a una sobrecarga de la CPU o a problemas de ancho de banda de la red.
-
Investigación de problemas notificados por los jugadores: cuando los jugadores informan de retrasos o interrupciones durante el juego, las métricas por proceso ayudan a identificar los cuellos de botella en la CPU, la memoria, la red, el tiempo de graduación o el tiempo de actualización del mundo de juego.
-
Identificación de las variaciones de rendimiento en las diferentes compilaciones: las métricas del tiempo de graduación, frecuencia de graduación y tiempo de actualización del mundo de juego permiten a los desarrolladores medir las variaciones de rendimiento del juegos en las distintas compilaciones del servidor.
-
Detección de retrasos y ralentización del juego: las métricas de tiempo de graduación, frecuencia de graduación y tiempo de actualización del mundo de juego reflejan la rapidez con la que el servidor actualiza el juego, lo que repercute directamente en la experiencia del usuario.
-
Análisis comparativo: identifique cómo los diferentes escenarios del juego afectan al rendimiento del servidor en función de factores como el número de jugadores, el modo de juego y otras variables.
Organización en paneles
Las métricas se organizan en paneles especializados en Amazon Managed Grafana para ofrecer diferentes posibilidades de supervisión. Los paneles disponibles dependen del tipo de flota:
Paneles de flotas de EC2
-
Panel de información general de las flotas de EC2: información detallada de capacidad de la flota, datos de escalado, jugadores simultáneos (CCU), instancias, capacidad de jugadores y sesiones de juego bloqueadas.
-
Panel de información general de las instancias: métricas agregadas de nivel de host de todas las instancias, incluidos el uso promedio de la CPU, la memoria, la red y el disco.
-
Panel de rendimiento de las instancias: métricas detalladas de las instancias individuales con las tablas “N sesiones de juego que consumen más memoria” y “N más sesiones de juego que consumen CPU” para identificar los procesos que consumen muchos recursos.
-
Panel de rendimiento del servidor (EC2): temporización de los bucles de juego, rendimiento de la red, memoria y CPU para las sesiones de juego individuales en las instancias de EC2.
Paneles de la flota de contenedores
-
Panel de información general sobre la flota de contenedores: descripción general de alto nivel de la utilización de los recursos de la flota de contenedores, incluida la reserva de CPU, la utilización de la memoria y el estado del grupo de contenedores.
-
Panel de rendimiento de contenedores: métricas detalladas de los contenedores individuales dentro de tareas específicas de ECS, como el uso de la CPU, el uso de la memoria, las E/S de la red y el rendimiento del almacenamiento.
-
Panel de rendimiento del servidor (contenedor): medición de la duración de los ciclos de juego, el rendimiento de la red, la memoria y la CPU de las sesiones de juego individuales en contenedores.
Para obtener más información e instrucciones detalladas, consulte Organización y uso de los paneles.