Quais são as boas maneiras de monitorar uma loja ao vivo?

41

Prefácio: queremos estender o monitoramento de uma de nossas oficinas on-line, pois o provedor teve problemas com a configuração do PHP e algumas partes da webshop ao vivo travaram (o back-end e o check-out não estão funcionando). Não quero discutir sobre a mudança para outro provedor aqui.

Como agora pensamos nas possibilidades de monitorar a própria loja virtual e a disponibilidade de determinadas peças (como "O check-out está funcionando?"), A pergunta é:

Quais ferramentas e estratégias você sugere para monitorar um site ao vivo?

Algumas ideias:

  • Você verifica automaticamente se o checkout ainda está funcionando em um site ativo?
  • Quais podem ser bons parâmetros para monitorar para detectar falhas? Last Order <1 dia atrás, último login do usuário, ...
  • Usando trabalhos cron: verificando, por exemplo, a data / hora do último pedido e, se há muito tempo, envie um e-mail e / ou verifique manualmente se o checkout ainda funciona?
  • Usando software / ferramentas como Icinga, Uptime Robot, ...
  • Enviando E-mails de aviso para Admins, ...

Ansioso para suas respostas :)

Anna Völkl
fonte
1
Mesmo que isso pareça um pouco "baseado em opiniões", estou realmente ansioso para ver algumas respostas :).
Marius
Graças @Marius, eu sei que é meio subjetivo, mas pode ser interessante para compartilhar de qualquer maneira :)
Anna Volkl
Ótima pergunta, eu estive pensando a mesma coisa! Obrigado!
Wessel

Respostas:

30

Existem algumas coisas que você pode fazer automatizado.

  1. Se partes da loja param de funcionar , os testes de unidade são uma boa maneira de detectar se determinadas funcionalidades ainda estão funcionando.
  2. Para testar o frontend, uso o phpQuery em um servidor remoto para procurar periodicamente certos elementos DOM em determinadas páginas-chave como 'ainda existem produtos na lista de categorias', 'existe um rodapé * na página inicial', etc.
  3. Configure um cronjob simples que faça ping no seu host para ver se ele ainda está disponível
  4. Use o feed RSS nativo do pedido Magento para verificar se os pedidos ainda estão chegando. Em lojas com muito tráfego, nenhum pedido por uma hora na sexta-feira à noite é um bom indicador de que há algo errado :)
  5. Monitore seu provedor de serviços de pagamento. Na Holanda, usamos o iDeal para lidar com pagamentos. Este site exibe seu tempo de atividade, seu PSP pode fornecer um serviço semelhante

* se não houver rodapé em uma página que possa apontar para um erro do PHP interrompendo a renderização.

Estas são algumas das soluções que estamos usando. Eles só precisam de algum tempo de configuração e são livres para executar.

Ótima pergunta, a propósito, estou realmente ansioso por todas as respostas!

Sander Mangel
fonte
25

Vou me encaixar na fantástica resposta de Sander a seguir, que assume que você configurou e utilizou um serviço de monitoramento como o Pingdom *:

  • Preste atenção no conteúdo da página; geralmente a </html>tag de fechamento . Vi tantos before_body_endscripts falharem com terceiros (exceções não capturadas etc.) invisíveis para os usuários finais, mas retornam o status 500 - muito ruim para as Ferramentas de SEO / Google / Webmaster
  • Configure as Ferramentas do Google para webmasters para notificá-lo quando os erros estiverem aumentando acima de um determinado limite
  • Configurar alertas para SSL inválido na página
  • Configurar alertas para erros de javascript na página
  • Use grupos de e-mail / cco para e-mails com falha de pagamento, relatórios de erros.
  • Entre em contato com o pessoal da sua central de atendimento e verifique se eles sabem como solucionar problemas de captura de tela - eles geralmente são os primeiros a apontar quando as coisas estão dando errado.
  • Um site lento é tão ruim quanto um site inativo. Verifique se os alertas são confidenciais quando o site está demorando mais para carregar do que o normal.
  • Assine os feeds do twitter para todos os seus principais serviços hospedados / de terceiros. Os hosts maiores geralmente têm gatilhos do Twitter para quando houver problemas. Você pode configurar o Twitter para enviar um e-mail / texto quando determinadas contas forem publicadas.

Devops:

  • Configure o Nagios para monitorar sistemas críticos e enviar alertas
  • Configure um syslog ou Splunk (libere até um certo número de consultas / dia) para agregar logs e emitir alertas com base nos dados do log
  • Configure uma verificação rotineira e com script do seu equipamento de rede. Eu já vi (em mais de uma ocasião) as placas de rede voltarem e caírem de 1 GB para 10 MB sem o nosso conhecimento.

Para equipes maiores:

  • Configure um servidor de IC (Travis, Jenkins / Hudson, Capistrano) para avisá-lo sobre possíveis falhas nos testes após as confirmações.
  • Configure ganchos de pré-confirmação em seu controle de origem para impor padrões de código ou verificar problemas flagrantes, como código quebrado
  • Como Sander disse, configure algo para monitorar os feeds RSS de pedidos e volume por hora do dia - um benefício aqui é que ele não é armazenado em cache e, normalmente, se você definir o limiar de notificação baixo o suficiente, um possível problema será solucionado imediatamente
  • Use Selênio. MUITO. Faça testes com script que executam o processo de checkout a cada hora ou duas.
  • Configurar lembretes do calendário e alertas específicos para expiração de SSL

Você vai gerar muitos dados e potencialmente falsos positivos; não fique imune a alertas.


Eu não sou afiliado ao Pingdom. Eu simplesmente amo o produto (gratuito).

philwinkle
fonte
8

Se você tiver apenas problemas com o hoster e não com o pagamento, pense em configurar um produto oculto, escreva um teste de selênio, coloque-o no carrinho, adicione um cupom para liberá-lo e faça o checkout.

Fabian Blechschmidt
fonte
1
bom, eu gosto da idéia de produto livre escondido :-)
Anna Volkl
5

Já existem ótimas respostas aqui, dependendo da sua configuração. Eu uso o NewRelic para monitorar as estatísticas do servidor e das transações, além de configurar as principais transações para cada etapa do processo de pagamento. Dessa forma, posso olhar para uma única tela no meu telefone e determinar se ainda estamos recebendo a quantidade adequada de pessoas que fazem check-out durante todo o processo e se estão obtendo tempos de resposta adequados. Se eu vir um monte de taxa de transferência em tudo, até a última etapa, sei que o PayPal provavelmente está quebrado porque ninguém é capaz de processar seus cartões. Também recebo alertas se houver muitos erros, o tempo de resposta estiver desativado, etc. Você não precisa estritamente do NewRelic para fazer isso, mas é muito simples e rápido de configurar e não tive tempo para criar meu próprio painel / aplicativo / sistema de alerta.

ddavidn
fonte
1
Estou de acordo com você sobre o NewRelic funciona como um encanto. Eu também acrescentaria que o uso de um serviço como o Pingdom também é uma boa opção para monitorar a acessibilidade do servidor.
Eirik
5

Eu gosto do NewRelic e do PagerDuty por isso, eles são simplesmente perfeitos e notificam você (e-mail, texto e chamada) em um minuto se o seu site ou qualquer parte dele estiver inativo. Ele até notifica se sua CPU ou memória vai além da porcentagem especificada de uso, tornando o site sem resposta.

  • Configure o New Relic com todas as páginas que você deseja monitorar e monitorar a frequência. Exemplo: página inicial, qualquer página de 1 categoria, qualquer página de 1 produto, página de carrinho, página de check-out etc.
  • Adicione usuários (que todos recebem notificações), agendas (dia e hora em que você prefere receber notificações), serviços (alertas da New Relic) e políticas de escalação nos alertas do PagerDuty e tipos de notificações que você deseja (email, texto, chamada)

https://www.pagerduty.com/docs/guides/new-relic-integration-guide/

Isenção de responsabilidade: Eu não sou afiliado a nenhum dos serviços acima.

Kalpesh
fonte
3
  • Munin no lado do provedor para obter valores históricos para todos os servidores (LB, App, DB, Redis, etc) e todos os serviços (memória, carga, io etc.)
  • Nagios / Icinga no lado do provedor ou local para carga de monitoramento quase ao vivo em todos os servidores
  • Faça pingdom para coletar tempo de resposta para URLs "importantes", como primeira página, check-out etc.
  • Pingdom para monitoramento de usuário real, você obtém um valor semelhante ao APDEX e vê o desenvolvimento histórico
  • Pingdom para verificar URLs e seu conteúdo correto
  • Relatórios com os últimos pedidos X no modo de recarga automática. Com ele eu posso ver possíveis quebras
  • Testes automatizados com Selenium em um sistema de estágio idêntico. Não sou amigo de caixas automáticas no meu sistema ativo. Você terá problemas com sua contabilidade mais tarde :)
  • Zapier e Twilio para Email2SMS. Erros críticos são enviados como SMS para um telefone
  • freeboard.io e dweet.io para exibir tudo em um bom painel.
waltavista
fonte