Métricas disponíveis
As métricas são classificadas em três categorias:
-
Métricas coletadas automaticamente
-
Métricas fornecidas pelo SDK
-
Métricas personalizadas
Coleta automática de métricas
Nenhuma alteração de código é necessária para essas métricas:
Métricas de instância
| Tipo de métrica | Descrição | Caso de uso |
|---|---|---|
| CPU | Porcentagem de utilização por instância | Monitoramento de recursos |
| Memória | Uso de memória física e porcentagem | Planejamento de capacidade |
| E/S de Rede | Bytes e pacotes enviados/recebidos | Integridade de conexão |
| E/S de disco | Operações de leitura/gravação e throughput | Desempenho de armazenamento |
Métricas de frota
| Tipo de métrica | Descrição | Caso de uso |
|---|---|---|
| Instâncias Ativas | Contagem de instâncias em execução | Dimensionamento da frota |
| Sessões de jogo | Sessões ativas e disponíveis | Gerenciamento de capacidade |
| Sessões de jogo interrompidas | Sessões de jogo que falharam | Monitoramento de erros |
Métricas fornecidas pelo SDK
Requer chamadas de função do SDK em seu código:
Métricas de temporização do servidor.
| Métrica | Descrição | Implementação |
|---|---|---|
| Horário Delta do Servidor | Diferença de tempo entre a marcação atual do servidor e a marcação anterior do servidor. Mede a consistência da taxa de tiques do servidor | Chamar GetDeltaTime () |
| Taxa de Tiques do Servidor | Mostra o número de vezes por segundo em que o servidor está processando atualizações | Calculado automaticamente |
| Tempo de tique do servidor | O tempo necessário para o servidor processar um único tique ou atualização | Chamar GetTickTime () |
| Tempo mundial de tiques do servidor | A quantidade de tempo necessário para o servidor atualizar o mundo do jogo a cada tique | Chamar GetWorldUpdateTime () |
Implementação: para SDKs independentes de sistema (C++, C#, Go), você implementa essas métricas chamando funções do SDK do seu loop de jogo com valores de tempo calculados. Para plug-ins de mecanismo (Unreal, Unity), essas métricas são capturadas automaticamente por meio da integração do mecanismo.
Métricas de rede
| Métrica | Descrição | Implementação |
|---|---|---|
| Conexões | O número total de conexões de rede que o servidor estabeleceu | Automático após InitMetrics () |
| E/S de rede (bytes) | O número total de bytes sendo enviados e recebidos pelo servidor na rede | Automático após InitMetrics () |
| E/S de Rede (Pacotes) | O número total de pacotes de rede enviados e recebidos pelo servidor | Automático após InitMetrics () |
| Perda de Pacotes | A porcentagem de pacotes de rede que estão sendo perdidos durante a transmissão | Automático após InitMetrics () |
Implementação: integre as chamadas de função do SDK à sua biblioteca de rede. O SDK fornece orientação para diferentes implementações de rede.
Métricas de processo
| Métrica | Descrição | Implementação |
|---|---|---|
| Uso da CPU (%) | A porcentagem de recursos da CPU que estão sendo utilizados pelo processo do servidor do jogo | Automático após InitMetrics () |
| Uso de Memória (Unidades) | A quantidade total de memória consumida pelos processos do servidor | Automático após InitMetrics () |
| Uso de Memória Física (%) | A porcentagem da memória física total do servidor que está sendo utilizada atualmente | Automático após InitMetrics () |
| Status do servidor | Estado de integridade do servidor de jogos | Automático após InitMetrics () |
Implementação: essas métricas são coletadas automaticamente pelo SDK para cada processo de sessão de jogo.
Organização do painel por processo
As métricas por processo estão disponíveis em dois painéis especializados:
-
Painel de desempenho do servidor — Contém horários do servidor (hora delta, taxa de tiques, hora de tiques, hora mundial), métricas de rede (conexões, bytes/pacotes de E/S, perda de pacotes), uso de memória e uso de CPU para sessões de jogo individuais.
-
Painel de Desempenho de Instância — Apresenta as tabelas “N principais sessões de jogo que consomem memória” e “N principais sessões de jogos que consomem CPU” que ajudam a identificar quais processos contribuem mais para o consumo de recursos da instância. Clicar nos links da sessão de jogo permite uma investigação mais profunda das métricas detalhadas.
Casos de uso de métricas por processo
As métricas por processo/por sessão de jogo oferecem suporte aos seguintes cenários de monitoramento:
-
Investigação aprofundada de desempenho — Quando um host/instância tem desempenho degradado devido a processos ou sessões de jogo específicos, as métricas por processo ajudam a identificar qual processo causou o problema por meio das tabelas de sessões de jogo que consomem mais CPU e memória.
-
Investigação de falhas no servidor de jogos — Quando uma sessão de jogo falha, essas métricas ajudam a determinar se a falha ocorreu devido a falta de memória, sobrecarga da CPU ou problemas de largura de banda da rede.
-
Investigue problemas relatados por jogadores — Quando os jogadores relatam atrasos ou interrupções durante o jogo, as métricas por processo ajudam a identificar gargalos na CPU, memória, rede, tempo de ativação ou tempo de atualização mundial.
-
Identifique mudanças de desempenho em diferentes versões — As métricas de hora de tiques, taxa de tiques e tempo de atualização mundial permitem que os desenvolvedores avaliem como o desempenho do jogo muda em diferentes versões de servidores.
-
Detecte atrasos e lentidão na jogabilidade — As métricas de hora de tiques, taxa de tiques e tempo de atualização mundial refletem a rapidez com que o servidor atualiza o jogo, impactando diretamente a experiência do cliente.
-
Avaliação comparativa — identifique como diferentes cenários de jogo afetam o desempenho do servidor com base em fatores como número de jogadores, modo de jogo e outras variáveis.
Organização do painel
As métricas são organizadas em painéis especializados no Amazon Managed Grafana para diferentes cenários de monitoramento. Os painéis disponíveis dependem do tipo de sua frota:
Painéis da Frota do EC2
-
Painel de visão geral da frota do EC2 — Capacidade de frota de alto nível, insights de escalabilidade, jogadores simultâneos (CCU), instâncias, capacidade de jogadores e sessões de jogo interrompidas.
-
Painel de visão geral das instâncias — Métricas agregadas em nível de host em todas as instâncias, incluindo utilização média de CPU, memória, rede e disco.
-
Painel de desempenho da instância — Métricas detalhadas para instâncias individuais com as tabelas “N principais sessões de jogos que consomem memória” e “N principais sessões de jogos que consomem CPU” para identificar processos que consomem muitos recursos.
-
Painel de desempenho do servidor (EC2) — Tempo de loop de jogo, desempenho de rede, memória e métricas de CPU para sessões de jogo individuais em instâncias do EC2.
Painel da frota de contêineres
-
Painel de visão geral da frota de contêineres — Visão geral de alto nível da utilização dos recursos da frota de contêineres, incluindo reserva de CPU, utilização de memória e status do grupo de contêineres.
-
Painel de desempenho de contêineres — métricas detalhadas para contêineres individuais em tarefas específicas do ECS, incluindo utilização de CPU, uso de memória, E/S de rede e desempenho de armazenamento.
-
Painel de desempenho do servidor (Contêineres) — Tempo de loop de jogo, desempenho de rede, memória e métricas de CPU para sessões de jogo individuais em contêineres.
Para obter informações e instruções de uso detalhadas, consulte Uso e organização do painel.