Está em baixo, ou é só consigo?
Uma verificação com vários pontos de vista executa o mesmo teste — um ping, um pedido HTTP, uma consulta DNS — a partir de sondas nas redes de outras pessoas, noutros países, no mesmo momento em que o executa a partir da sua. Essa única mudança transforma uma pergunta sem resposta (“comigo funciona — mais alguém está a ver isto?”) numa comparação: se todos os pontos de vista falharem, o alvo está em baixo; se só o seu falhar, o problema vive no caminho entre si e ele. Este guia explica o que um segundo ponto de vista realmente prova, a armadilha do anycast em que toda a gente cai uma vez, e como executar a verificação com o ping global deste site.
O problema do “comigo funciona”
Todos os canais de incidentes já ouviram as duas frases na mesma hora: “o site está em baixo” e “comigo funciona”. Ambas podem ser relatos honestos. Um teste executado a partir de um único ponto de vista — o seu portátil, o seu escritório, uma máquina de monitorização — mede exatamente uma coisa: a experiência dessa única rede, nesse único caminho, nesse único momento. Não consegue distinguir um serviço que está em baixo para todos de um caminho que está quebrado só para si: um fornecedor de trânsito doente, uma regra de filtragem regional, um resolvedor DNS a devolver respostas envenenadas ou obsoletas, uma disputa de peering a três redes de distância da qual nunca ouviu falar. De dentro do único ponto de vista, tudo isto parece idêntico — uma falha sem endereço de retorno.
Os tickets de suporte e as páginas de estado sofrem da mesma geometria. Uma página de estado diz “operacional” porque as sondas do próprio fornecedor — sentadas no próprio bairro do fornecedor — alcançam o serviço sem problemas, enquanto uma região inteira não consegue. Um utilizador relata “em baixo” porque o seu ISP está a engolir o tráfego num buraco negro, enquanto o serviço cantarola. Nenhum dos lados está a mentir; ambos estão a generalizar a partir de uma única cadeira. A correção não é mais precisão a partir da mesma cadeira. São mais cadeiras.
O que um segundo ponto de vista prova
Adicione sondas noutras redes — outros sistemas autónomos, outros países, outros tipos de ligação — e execute o teste idêntico a partir de todas ao mesmo tempo. Agora o padrão faz a argumentação. Se sondas em cinco redes de três continentes falharem todas da mesma maneira no mesmo momento, o fator comum é o alvo: o serviço, o seu host ou a sua própria rede estão em baixo, e nenhuma quantidade de mexidas locais mudará isso. Se quatro tiverem sucesso e só falhar a sonda mais próxima da sua situação — ou só você falhar — o fator comum inverte-se: o alvo está de pé, e a quebra está algures no caminho que os pontos de vista falhados partilham. O acordo entre pontos de vista independentes é o mais próximo de uma prova que a pergunta “está em baixo?” tem.
As sondas que este site usa pertencem à rede Globalping, operada pela jsDelivr: milhares de pequenas sondas de software alojadas por voluntários em todo o mundo, em todo o tipo de sítios, desde servidores em centros de dados até ligações domésticas, que aceitam medições padronizadas — ping, traceroute, MTR, DNS e HTTP — e relatam o que viram. O valor não é nenhuma sonda individual; uma máquina voluntária numa cidade é uma anedota. O valor é que as anedotas são independentes: redes diferentes, upstreams diferentes, modos de falha diferentes, todas a responder à mesma pergunta no mesmo momento.
A advertência do anycast e dos CDN
Aqui está a armadilha, e toda a gente cai nela uma vez: respostas diferentes de lugares diferentes podem estar todas corretas. Os serviços modernos não são uma máquina num lugar. O anycast anuncia o mesmo endereço a partir de muitos locais, de modo que uma sonda em Frankfurt e uma sonda em São Paulo a enviar pacotes para o “mesmo” IP estão a falar com bordas físicas diferentes, possivelmente em continentes de infraestrutura diferentes — uma saudável, outra a reiniciar. Um CDN encaminha cada cliente para uma borda próxima, e uma borda pode estar em baixo numa região enquanto o serviço é impecável noutra. A divergência entre sondas não é automaticamente contradição; para um alvo anycast, a divergência é o desenho a funcionar como pretendido, e a pergunta passa a ser “em baixo onde?” em vez de “em baixo?”.
O DNS faz o mesmo ponto pelo outro lado. Os servidores autoritativos e os resolvedores entregam respostas diferentes por desenho — o GeoDNS devolve o endereço da borda “mais próxima”, e o EDNS Client Subnet permite a um resolvedor perguntar em nome do seu bairro, de modo que o resolvedor de uma sonda em Tóquio e um no Texas recebem legitimamente endereços diferentes para o mesmo nome (compare-os lado a lado com o verificador de propagação DNS quando a pergunta for que registos o mundo detém). Endereços diferentes de sondas diferentes não são evidência de inconsistência. São evidência de que o nome está a fazer localização — e dizem-lhe que borda os utilizadores de cada região vão realmente encontrar.
Escolha a medição que responde à pergunta
O ping global oferece cinco tipos de medição, e escolher bem importa mais do que executar muitas. Cada um responde a uma pergunta diferente, e executar o errado produz uma resposta confiante a algo que não perguntou. Emparelhe o tipo com o sintoma antes de olhar para os resultados de alguém.
Ping responde à pergunta mais estreita: o alvo é alcançável a partir daqui, e quanto se perde pelo caminho? É o teste certo para “esta rede consegue ver aquele host de todo?”, e o teste errado para qualquer coisa sobre a aplicação — um host pode responder ao ping enquanto o seu serviço web está morto. HTTP responde à pergunta do utilizador: um pedido real tem sucesso a partir dali, com que código de estado, e quanto tempo demorou tudo? Quando a discussão é “o site funciona / o site não funciona”, HTTP a partir de várias sondas é a evidência que ambos os lados deviam aceitar. DNS responde à pergunta do nome: que endereços recebe realmente cada região para este nome? É assim que separa “o serviço está em baixo” de “a minha região está a ser enviada para a borda morta”.
Traceroute responde à pergunta do onde: salto a salto, onde é que o caminho desta sonda até ao alvo para, emperra, ou desvia para algum lugar inesperado? Execute-o a partir do ponto de vista que falha, não de um que funciona. MTR é traceroute ao longo do tempo — o mesmo caminho sondado repetidamente, de modo que a perda e o atraso se mostram por salto como taxas em vez de uma única amostra congelada; é a ferramenta para “quebra intermitentemente”, onde um único traceroute apanha o caminho num dia de bom comportamento. A disciplina nas cinco: decida que falha está a testar, escolha a única medição que a consegue ver, e deixe as outras esperar.
Ler resultados sem se enganar
Comece por separar os dois números que as pessoas habitualmente misturam. A perda — pedidos que nunca voltaram — é dano; a latência — pedidos que voltaram devagar — é desconforto, e as duas têm causas e correções diferentes. Uma sonda a mostrar 100 % de perda encontrou uma parede; uma sonda a mostrar zero perda e latência alta encontrou um caminho longo ou congestionado, e relatar o segundo como “em baixo” é como serviços saudáveis são acordados a meio da noite. Depois compare o comparável: tome a sonda mediana como a história, não a melhor nem a pior. Uma sonda a devolver um valor atípico selvagem — latência enorme, um tempo limite que mais ninguém viu — é uma afirmação sobre o momento dessa sonda, o seu host ou o seu upstream. Só se torna evidência sobre o alvo quando sondas independentes concordam com ela.
Cuide também da contabilidade. Uma sonda que relata o alvo como “offline” enquanto as vizinhas têm sucesso muito provavelmente relatou-se a si mesma — uma sonda que caiu, uma ligação doméstica que se cortou, um filtro local — e as sondas voluntárias têm tudo isso; é o preço de uma rede que ninguém opera centralmente. Anote as marcas temporais e trate resultados obsoletos ou em cache como história, não como notícia. E quando todas as sondas concordam que o alvo está de pé mas os seus utilizadores continuam sem o alcançar, acredite em ambas: aprendeu que a falha é real e estreita — vive num caminho que nenhuma das suas sondas partilhava por acaso, o que é uma descoberta, não uma contradição.
Limites honestos
As sondas são voluntárias, e a rede comporta-se como tal. As sondas vêm e vão — uma localização disponível esta manhã pode estar offline esta noite, a cobertura é densa nalguns países e escassa até inexistente noutros, e não pode exigir uma sonda dentro de um ISP específico só porque é lá que os seus utilizadores estão. As sondas também se sentam maioritariamente em centros de dados e em ligações de entusiastas, não nas redes residenciais e móveis a partir das quais os seus utilizadores reais navegam; uma sonda de centro de dados prova que o serviço é alcançável a partir de lugares bem ligados, que é a maior parte da pergunta, mas não a totalidade. Trate o mapa como uma amostra das redes do mundo, generosamente desenhada — não como o mundo.
O uso que este site faz da rede é deliberadamente modesto: funciona no nível gratuito anónimo e partilhado do Globalping, de modo que as verificações têm limites por visitante e os resultados ficam brevemente em cache em vez de martelar um recurso voluntário — se uma verificação lhe pedir para esperar, é o nível partilhado a ser partilhado. Dentro desses limites, o padrão de trabalho é: execute aqui a verificação com vários pontos de vista para resolver “em baixo ou só eu?”, e depois aprofunde no vencedor — a verificação de saúde do site para tudo o que um olhar detalhado único ao site lhe pode dizer, e uma ronda nova a partir do ping global depois de ter mudado alguma coisa. Em-baixo-para-todos e em-baixo-só-para-si precisam de tardes diferentes; dez minutos dos pontos de vista dos outros é como descobre que tarde está a ter.
Perguntas frequentes
A partir de quantas localizações devo testar?
Esta ferramenta executa até quatro localizações por verificação, e quatro bem escolhidas vencem quarenta escolhidas ao acaso. Escolha uma distribuição que encaixe na discussão: uma sonda perto dos seus próprios utilizadores, uma noutro continente, uma perto do alojamento do alvo, e uma em qualquer lugar distante como controlo. Se as sondas próximas e as distantes concordarem, tem a sua resposta; se só as próximas falharem, também localizou o problema. Mais localizações ajudam sobretudo quando as quatro primeiras discordam num padrão que ainda não sabe ler.
Uma sonda diz offline — o site está em baixo?
Não apenas com essa evidência. Uma única sonda pode estar offline ela própria — caída, desligada, ou atrás de um filtro seu — e as sondas voluntárias não têm nenhum operador a garanti-las. “Em baixo” é uma conclusão que tira do acordo: várias sondas independentes, em redes diferentes, a falhar da mesma maneira no mesmo momento. Uma sonda a falhar enquanto as vizinhas têm sucesso fala-lhe do caminho dessa sonda, e o relato honesto é “inalcançável a partir desse único ponto de vista”, não “em baixo”.
Porque é que o mesmo domínio resolve para endereços diferentes a partir de sondas diferentes?
Porque é assim que deve funcionar. O GeoDNS e o EDNS Client Subnet fazem as respostas DNS depender de onde a consulta parece vir, de modo que a cada região é entregue o endereço da sua borda saudável mais próxima; o anycast e os CDN apoiam-se no mesmo truque na camada de encaminhamento. Endereços diferentes de sondas diferentes são a localização a fazer o seu trabalho. Só se torna uma descoberta quando o endereço de uma região está morto enquanto os outros funcionam — então o nome está fielmente a enviar os utilizadores dessa região para uma borda quebrada.