Controle de Gateway
O controle de Gateway é a visão do Admin do cluster principal do Gateway em execução. Ele lê o estado do nó ao vivo e envia solicitações de recarregamento de guilda, e não expõe sessão, presença ou payload de chamada.
Uma solicitação de Gateway não respondida retorna 504 GATEWAY_TIMEOUT. Um cluster sobrecarregado ou indisponível retorna 503 SERVICE_UNAVAILABLE. Uma resposta de Gateway inválida retorna 502 BAD_GATEWAY.
Objeto de estatísticas de nó
Seção intitulada “Objeto de estatísticas de nó”Um instantâneo do cluster do Gateway, tirado através dos nós que a solicitação pesquisou. Todo contador de nível superior, exceto uptime_seconds, node_count e status, é uma soma simples sobre esses nós, incluindo cada membro de memory. A matriz nodes relata cada nó pesquisado por conta própria.
Estrutura
Seção intitulada “Estrutura”| Campo | Tipo | Descrição |
|---|---|---|
| status1 | string | A saúde agregada do cluster |
| sessions | integer | As sessões do Gateway de cliente conectadas, somadas entre os nós |
| guilds | integer | Os processos de guilda ao vivo, somados entre os nós |
| presences | integer | As presenças rastreadas, somadas entre os nós |
| calls | integer | As chamadas ao vivo, somadas entre os nós |
| memory | objeto memória do nó | A contabilização de memória, somada entre os nós |
| process_count | integer | Os processos Erlang em uso, somados entre os nós |
| process_limit | integer | O teto de processo Erlang, somado entre os nós |
| uptime_seconds2 | integer | O menor tempo de atividade relatado por qualquer nó pesquisado, em segundos |
| node_count3 | integer | O número de nós que a solicitação pesquisou |
| nodes4 | array[objeto nó de gateway] | A divisão por nó (máx. 1000 entradas) |
1 healthy quando todo nó pesquisado reportou healthy e degraded quando pelo menos um não o fez
2 O valor rastreia o nó iniciado mais recentemente e cai sempre que qualquer nó reinicia
3 Inclui nós que não responderam
4 As entradas são ordenadas por node_id ascendente. O nó que atendeu a solicitação é sempre pesquisado, então a matriz nunca está vazia
Exemplo
Seção intitulada “Exemplo”{ "status": "healthy", "sessions": 4820, "guilds": 1913, "presences": 4611, "calls": 12, "memory": {"total": "3221225472", "processes": "1610612736", "system": "1610612736"}, "process_count": 92114, "process_limit": 2097152, "uptime_seconds": 84213, "node_count": 2, "nodes": []}Objeto de nó de gateway
Seção intitulada “Objeto de nó de gateway”Uma entrada para cada nó que a solicitação pesquisou, incluindo nós que não responderam dentro do prazo de 10 segundos por nó.
Estrutura
Seção intitulada “Estrutura”| Campo | Tipo | Descrição |
|---|---|---|
| node_id1 | string | O nome que o nó relata para si mesmo |
| status2 | string | A saúde que este nó reportou |
| sessions | integer | As sessões de Gateway de cliente conectadas neste nó |
| guilds | integer | Os processos de guilda ao vivo neste nó |
| presences | integer | As presenças rastreadas neste nó |
| calls | integer | As chamadas ao vivo neste nó |
| memory | objeto memória do nó | A contabilização de memória para este nó |
| process_count | integer | Os processos Erlang em uso neste nó |
| process_limit | integer | O teto de processo Erlang neste nó |
| uptime_seconds | integer | Os segundos desde que este nó começou |
1 Um nó relata seu valor de ambiente HOSTNAME quando esse valor é uma string não em branco, e seu nome de nó Erlang de outra forma
2 healthy para um nó que respondeu e unavailable para um que não respondeu. Um nó que não respondeu relata nulo para cada contador aqui e contribui com zero para cada total de cluster
Uma entrada de nó pode ter membros diagnósticos adicionais. Um cliente trata um membro que não reconhece como ausente.
Objeto de memória do nó
Seção intitulada “Objeto de memória do nó”Contagens de bytes para um nó, ou para todos os nós pesquisados somados juntos. Cada contagem é uma string decimal porque um número JSON não pode preservar uma contagem de bytes de 64 bits.
Estrutura
Seção intitulada “Estrutura”| Campo | Tipo | Descrição |
|---|---|---|
| total | string | O total de bytes alocados |
| processes | string | Os bytes alocados para processos Erlang |
| system | string | Os bytes alocados fora dos processos Erlang |
Objeto de estatísticas de memória da guilda
Seção intitulada “Objeto de estatísticas de memória da guilda”Memória e atividade para uma guilda ao vivo.
Estrutura
Seção intitulada “Estrutura”| Campo | Tipo | Descrição |
|---|---|---|
| node_id | string | O nó que possui o processo da guilda |
| guild_id | ?snowflake | O ID da guilda que o processo atende, ou nulo quando o estado do processo não tem ID de guilda |
| guild_name1 | string | O nome da guilda que o processo mantém na memória |
| guild_icon | ?string | O hash do ícone que o processo da guilda mantém na memória, ou nulo quando não tem nenhum |
| nsfw_level2 | ?integer | O Nível NSFW resolvido a partir de dados armazenados da guilda, ou nulo quando a guilda não pôde ser resolvida |
| memory3 | string | Os bytes que o processo da guilda usa, como uma string decimal |
| member_count | integer | O número de membros que o processo da guilda contém |
| session_count | integer | O número de sessões inscritas no processo da guilda |
| presence_count | integer | O número de presenças que o processo da guilda rastreia |
1 Um processo cujos dados armazenados em cache da guilda não têm nome relata Unknown
2 Nulo para um processo ao vivo cuja linha de guilda não pôde ser carregada e para um processo que não relata guild_id
3 A memória de processo Erlang do processo da guilda. As entradas são ordenadas de forma decrescente em todo o cluster, com empates desfeitos por guild_id ascendente
Objeto de contagem de estado de voz
Seção intitulada “Objeto de contagem de estado de voz”Totais de estado de voz do cluster, com um agrupamento por região de voz e um por servidor de voz.
Estrutura
Seção intitulada “Estrutura”| Campo | Tipo | Descrição |
|---|---|---|
| total_voice_states1 | integer | Os estados de voz em todo o cluster |
| regions2 | array[objeto contagem de estado de voz da região] | As contagens agrupadas por região de voz (máx. 1000 entradas) |
| servers2 | array[objeto contagem de estado de voz do servidor] | As contagens agrupadas por servidor de voz (máx. 5000 entradas) |
1 A soma dos totais que cada nó reportou, portanto, pode diferir da soma das entradas em regions ou servers
2 As entradas são ordenadas por voice_state_count decrescente, com empates desfeitos por identificador ascendente. Um identificador sem estados de voz está ausente da matriz, então cada entrada tem uma contagem de pelo menos 1
Exemplo
Seção intitulada “Exemplo”{ "total_voice_states": 318, "regions": [{"region_id": "europe-north", "voice_state_count": 204}], "servers": [{"server_id": "europe-north-server-1", "voice_state_count": 204}]}Objeto de contagem de estado de voz da região
Seção intitulada “Objeto de contagem de estado de voz da região”Uma entrada para cada região de voz que contém pelo menos um estado de voz.
Estrutura
Seção intitulada “Estrutura”| Campo | Tipo | Descrição |
|---|---|---|
| region_id | string | O ID da região a qual a contagem pertence |
| voice_state_count | integer | Os estados de voz atribuídos à região |
Objeto de contagem de estado de voz do servidor
Seção intitulada “Objeto de contagem de estado de voz do servidor”Uma entrada para cada servidor de voz que contém pelo menos um estado de voz.
Estrutura
Seção intitulada “Estrutura”| Campo | Tipo | Descrição |
|---|---|---|
| server_id1 | string | O ID do servidor ao qual a contagem pertence |
| voice_state_count | integer | Os estados de voz atribuídos ao servidor |
1 O identificador é único apenas dentro de sua região
Obter estatísticas do nó do Gateway
Seção intitulada “Obter estatísticas do nó do Gateway”GET/v1/admin/gateway/statsRetorna o objeto de estatísticas do nó para todo o cluster do Gateway. Requer gateway:memory_stats.
Resposta
Seção intitulada “Resposta”| Status | Corpo | Condição |
|---|---|---|
| 200 | objeto estatísticas do nó | O estado do cluster foi retornado |
Efeitos colaterais
Seção intitulada “Efeitos colaterais”A operação registra uma entrada de auditoria de Admin com ação get_gateway_stats, tipo de alvo gateway, ID de alvo 0 e chave de metadados node_count.
Limite de taxa
Seção intitulada “Limite de taxa”200 solicitações por minuto para cada usuário autenticado, no bucket admin:lookup.
Obter estatísticas de memória da guilda
Seção intitulada “Obter estatísticas de memória da guilda”GET/v1/admin/gateway/memory-statsRetorna os processos de guilda mais pesados ao vivo como objetos de estatísticas de memória da guilda. Requer gateway:memory_stats.
Parâmetros de consulta
Seção intitulada “Parâmetros de consulta”| Campo | Tipo | Descrição |
|---|---|---|
| limit?1 | integer | Os processos máximos da guilda a retornar (100-1000, padrão 100) |
1 O Gateway fixa o valor sobre o qual atua em 500, e cada nó contribui com no máximo 100 de seus próprios processos de guilda. Um limit de 1000 retorna no máximo 500 entradas
Corpo da resposta
Seção intitulada “Corpo da resposta”| Campo | Tipo | Descrição |
|---|---|---|
| guilds | array[objeto estatísticas de memória da guilda] | Os processos de guilda nesta resposta (máx. 1000 entradas) |
Resposta
Seção intitulada “Resposta”| Status | Corpo | Condição |
|---|---|---|
| 200 | corpo da resposta | Os processos da guilda foram retornados |
Efeitos colaterais
Seção intitulada “Efeitos colaterais”Um nó que não responde dentro de 5 segundos não contribui com nenhuma entrada, e a solicitação ainda retorna 200.
A operação registra uma entrada de auditoria de Admin com ação list_guild_memory_stats, tipo de alvo guild, ID de alvo 0 e chaves de metadados limit e result_count para as entradas nesta resposta.
Limite de taxa
Seção intitulada “Limite de taxa”200 solicitações por minuto para cada usuário autenticado, no bucket admin:lookup.
Obter contagens de estado de voz
Seção intitulada “Obter contagens de estado de voz”GET/v1/admin/gateway/voice-state-countsRetorna o objeto de contagem de estado de voz. Requer gateway:memory_stats.
Resposta
Seção intitulada “Resposta”| Status | Corpo | Condição |
|---|---|---|
| 200 | objeto contagem de estado de voz | Contagens foram retornadas |
Efeitos colaterais
Seção intitulada “Efeitos colaterais”As contagens abrangem estados de voz em canais de guilda e em chamadas. Um nó que não responde dentro de 10 segundos contribui com zero, e a solicitação ainda retorna 200.
A operação registra uma entrada de auditoria de Admin com ação get_voice_state_counts, tipo de alvo gateway, ID de alvo 0 e chaves de metadados total_voice_states, region_count e server_count.
Limite de taxa
Seção intitulada “Limite de taxa”200 solicitações por minuto para cada usuário autenticado, no bucket admin:lookup.
Recarregar guildas do Gateway
Seção intitulada “Recarregar guildas do Gateway”POST/v1/admin/gateway/reloadsBusca os dados da guilda para as guildas fornecidas do banco de dados novamente e os envia para cada processo de guilda ativo e retorna quantos processos de guilda ativos foram selecionados. Requer gateway:reload_all.
Corpo JSON
Seção intitulada “Corpo JSON”| Campo | Tipo | Descrição |
|---|---|---|
| guild_ids1 | array[snowflake] | As guildas a recarregar (máx. 1000 entradas) |
1 O campo é obrigatório. Uma matriz vazia seleciona todos os processos de guilda ativos em todos os nós ativos
Corpo da resposta
Seção intitulada “Corpo da resposta”| Campo | Tipo | Descrição |
|---|---|---|
| count1 2 | integer | O número de processos de guilda ativos selecionados para recarregamento |
1 Uma guilda fornecida sem processo ativo é ignorada, então o valor pode ser menor que o número de IDs enviados. Um nó proprietário que falha ou não responde dentro de 15 segundos contribui com zero
2 Tirado quando os processos são selecionados. Um processo selecionado cujos dados de guilda não podem ser buscados ainda é contado, então o valor é um limite superior sobre os recarregamentos que tiveram sucesso
Resposta
Seção intitulada “Resposta”| Status | Corpo | Condição |
|---|---|---|
| 200 | corpo da resposta | O Decoding Chat iniciou um recarregamento para cada processo de guilda selecionado |
Efeitos colaterais
Seção intitulada “Efeitos colaterais”Uma guilda cujo nó proprietário não pode ser resolvido não é contada. Os recarregamentos ainda podem estar em andamento quando a resposta chega. Nenhum dado de guilda é alterado.
A operação registra uma entrada de auditoria de Admin com ação reload_guilds, tipo de alvo guild, ID de alvo 0 e chaves de metadados guild_count para as guildas solicitadas e reloaded para a count retornada.
Limite de taxa
Seção intitulada “Limite de taxa”5 solicitações por minuto para cada usuário autenticado, no bucket admin:gateway:reload.

