Torne os logs do servidor divertidos novamente


Todo mundo odeia logs do servidor. Bem, talvez nem todos. Mas você sabe o que eu quero dizer. Frequentemente os procuramos quando há um erro. E o processo de encontrar um código de erro na web de solicitações HTTP pode ser um pesadelo. Existe uma maneira melhor?

Eu queria escrever este artigo como meu post-mortem nos logs do servidor. Não quero mais lidar com eles além da configuração atual explicada aqui.

Eu entrei recentemente no PM2, que é um Gerenciador de Instâncias do Nó. Como você deve saber correndo node index.js funciona bem para pequenos projetos e ambientes locais. Mas nunca é recomendável executar o seu Produção servidor dessa maneira.

(Yvocê acabará por obter o Cano quebrado erro se você deixá-lo em execução por muito tempo com as configurações padrão… ou seu ISP desconecta, outro cliente SSH efetua login para o servidor ou o sistema é encerrado devido a uma relâmpago! Pode acontecer.)

Se o erro não for gerado por algo completamente fora do seu controle, você poderá corrigir o Broken Pike mensagem ajustando os tempos limite padrão. Não vou entrar em detalhes aqui, mas você pode executar os seguintes comandos no seu cli / bash:

eco ‘ServerAliveInterval 30’ | tee -a ~ / .ssh / config

eco ‘ServerAliveCountMax 1200’ | tee -a ~ / .ssh / config

Isso basicamente aumentará os intervalos de “manutenção” no seu sistema Linux. Mas isso não basta. E se o seu servidor cair devido a erro de codificação?

PM2 é ótimo porque reiniciará o servidor se houver um pequeno erro ou até mesmo um vazamento de memória. É como ter alguém atento ao seu servidor.

A maioria das pessoas descobre o PM2 percebendo node index.js falha com muita freqüência e se você for desconectado do servidor remoto por terminal ou em bash.exe a nó index.js quebras de comando.

PM2 não é a única ferramenta para manter seu servidor funcionando, não importa o quê. E também não estou dizendo que é o melhor. É apenas um dos muitos que ajuda a manter seu servidor ativo, mesmo que uma solicitação de API, por exemplo, gere um erro.

Os comandos PM2 mais frequentemente usados ​​são:

1.) pm2 start index.js --no-daemon (executar e log de saída na tela)

(Note, sem --no-daemon diretiva, você não receberá logs na tela)…e…

2.) pm2 kill (finaliza a sessão do PM2 e encerra o aplicativo index.js)

Existem outros comandos do PM2 (como pm2 monitor), mas por algum motivo eu realmente não preciso usar nenhum deles.

3.) pm2 dashboard abre essa visualização com a análise de memória do servidor. Um exemplo do que painel pm2 does é retratado na imagem do cabeçalho deste artigo! Basicamente, mostrará o log do servidor regular, além dos recursos de memória.

Você tem que usar pm2 kill para parar o servidor iniciado com pm start se você quer que pare. Se você simplesmente sair do PM2 com Ctrl-C (pressionado duas vezes seguidas,), você sairá apenas do monitor de log na tela, mas o PM2 ainda manterá o servidor em execução. É exatamente para isso que você deseja usar o PM2.

Chega de mensagens Broken Pipe! Entre ou saia do seu SSH, faça com que a fonte de alimentação do seu PC seja interrompida por um raio … e isso não afetará o servidor remoto iniciado com o PM2.

Então, como isso torna os servidores divertidos? Não O que eu queria falar neste artigo tem mais a ver com o tráfego que rastrearemos através de nossos logs do PM2.

Eles podem. Mas isso requer mudar a maneira como pensamos sobre eles. E com um pouco de trabalho de manutenção e código de cores, podemos melhorar a experiência!

Observar os logs do servidor é entediante. Então você recebeu uma solicitação 200 bem-sucedida. Mas isso realmente precisa ser mostrado no console? Seu software de análise provavelmente já está acompanhando isso. Então, que tipo de coisas devemos nós rastreamos e porque?

É sobre a intenção do seu aplicativo

Tradicionalmente, apenas acessamos os logs do servidor quando há um erro grave isso aconteceu no back-end.

Mas se você estiver executando um aplicativo com base em eventos concretos (registro de usuário, inscrições em boletins, vendas, chamadas de API importantes, etc.) separá-los do tráfego geral não apenas economizará espaço no servidor (já que você não está mais registrando eventos comuns), mas pode tornar divertido assistir ao servidor!

Erros ainda são importantes, é claro. Mas, acompanhando coisas ainda mais importantes, estamos utilizando os recursos existentes para servir a um propósito prático (sem trocadilhos).

Digamos que haja uma inscrição no boletim informativo. Você pode fazer login no seu Mailchimp ou outra conta para verificá-lo. Ou você pode ser notificado diretamente através do log do servidor, que você sempre abriria na tela.

Agora seu servidor está lhe dizendo o que deu certo.

Reduzindo Solicitações de Lixo Eletrônico

Já não acompanha .html ou outros arquivos de conteúdo. Por quê? Sua análise cuidará disso. Um site útil geralmente tem eventos muito mais interessantes acontecendo.

Focando apenas em eventos positivos

Os logs do servidor são conhecidos por observar erros. Mas por que não podemos usá-los para gerar eventos positivos como inscrições e vendas?

Reduzindo ataques

Ataques ao servidor (nem sempre), mas frequentemente provêm de um único endereço IP. Implemente um rastreador de IP e, se seu site for acessado 100 vezes por minuto ou você detectar um padrão incomum, poderá desqualificar esse endereço IP.

Otimizado para utilidade

Como alguém que possui e executa um servidor, você tem acesso aos endereços IP de cada visitante. Eles podem ser convertidos em localização geográfica em tempo real. Com base nessas informações, você pode alimentar uma versão diferente do seu conteúdo.

Por exemplo, quando eu estava vendendo meus livros, muitos me enviaram um DM no Twitter dizendo $ 34.99 é uma fortuna (para pagar por um livro) em seu país. Então, o que eu fiz foi reduzir o preço para US $ 9,99 para países onde $ 34.99 é muito dinheiro.

Isso resultou em algumas vendas paralelas dessas regiões de visitantes que de outra forma nem comprariam o livro devido a diferenças de preço.

Agora você tem um cliente satisfeito que pode comprar seu livro e conseguiu uma venda extra. O preço foi reduzido, mas é melhor do que perder essa oportunidade. Todo mundo ganha. Só foi preciso um pequeno ajuste no servidor.

(Que era basicamente uma declaração se que acionou a alteração no link de pagamento.)

(Claro, as pessoas podem fazer um acordo conectando-se à página de venda por servidor proxy.)

(Mas não sou responsável pelo que as pessoas escolhem fazer, apenas por tentar servir os clientes da melhor maneira possível.)

Eventos de código de cores

Finalmente, é isso que faz com que os logs do servidor sejam divertidos para mim. Se você codificar em cores seus eventos, poderá obter uma boa imagem do que aconteceu simplesmente olhando para a tela.

console.log O método pode produzir saída de texto colorido. No servidor ode, você também pode usar um módulo chamado colors (instalar npm install colors), que tem um conjunto limitado de cores, mas não é um problema enorme:

Por exemplo: console.log(“ABC”.lightGreen); produz texto verde claro.

Você pode colorir eventos do servidor de código usando este módulo. Basta ramificar com uma instrução if com base em um tipo de evento recebido. O .Ciano claro é outro favorito. (ciano e outras cores têm “luz” contraparte em cores módulo.)

magenta ou Magenta claro pode indicar inscrições em boletinsverde pode indicar vendas, amarelo pode ser usado em chamadas de API provenientes de uma localização geográfica específica e assim por diante …

Você só precisa ser criativo e elaborar seus próprios padrões de cores com base no que é importante alcançar para seu inscrição. Pode ser uploads de imagens, classificações ou comentários.

Visualize dados usando gráficos codificados por cores

Agora que os eventos do servidor estão codificados por cores, é hora de visualizá-los! Eu rapidamente codifiquei essa análise usando CSS flex-end alinhar para cada item dentro das barras.

Finalmente, você pode visualizar esses dados em um gráfico simples com código de cores. Aqui está um teste de uma das minhas próprias experiências para um dos meus sites:

Sobreponha estatísticas coloridas do lado do servidor sobre minhas estatísticas de seguidores no Twitter. Também redimensionei os dados com base nas médias. Eu queria manter os eventos importantes visíveis, mas não queria que eles criassem altos picos.

Então, aqui, cerca de 1K de “hits” é bem dimensionado para algo que pode ser estético.

Objetivo: Isso me ajudará a analisar no futuro como a criação e distribuição de novos conteúdos afeta meus seguidores no Twitter e algumas outras coisas.

Agora, cada evento pode ser decifrado visualmente sem precisar passar por listas de solicitações HTTP. Não estamos rastreando erros, apenas eventos positivos. De certa forma, estamos mesclando tráfego e chamadas importantes com software de análise feito por você.

(Vamos ser sinceros, é difícil configurar eventos personalizados em alguns dos softwares de análise conhecidos … mesmo que produza ótimos gráficos, não é adaptado ao objetivo específico do seu aplicativo. E não há APIs para fazer login, basta criar tudo sozinho.)

Não vou dizer exatamente o que cada cor significa na minha configuração. Mas a maneira como eu as estruturo é que as cores mais brilhantes na parte inferior (amarelo neste caso) refere-se ao evento mais importante em todo o servidor, como um inscrição na newsletter. As barras laranja indicam quantas vezes o formulário de inscrição no boletim informativo foi visualizado. Dessa forma, você pode ver a taxa de conversão visualmente!

Agora você vê como convertemos os logs chatos do servidor em algo que você realmente pode se empolgar. Seu trabalho pode ser reduzido a criar mais conteúdo e compartilhar com a comunidade … e assistir aos resultados descritos neste gráfico de análise de código de cores personalizado!

Nenhuma lista ou registro de erros … apenas com uma simples olhada, você vê todos os eventos importantes e se concentra apenas no trabalho que produzirá mais deles.

alguma coisa

Obrigado Cirrus The Cat, por seu apoio eterno.

Agradeço a todos pelo apoio. Você também, Cirrus, o gato. 😊

Você pode Siga me no twitter para obter atualizações sobre os tutoriais de codificação gratuitos ou confira esta página com 📚 meus livros de codificação em JavaScript e CSS, se você precisar de uma cópia.



Fonte

Leave a Reply

Your email address will not be published. Required fields are marked *