Solicitações de API de log via cache de verniz

1

Eu tenho o Varnish na frente de uma API REST padrão. As solicitações devem ser autenticadas com um cabeçalho X-Access-Token. Agora preciso acompanhar as solicitações de cada recurso em relação ao token de acesso usado. Por exemplo, o token abcd1234 solicitou / items / xyz 10 vezes.

Inicialmente, eu ia contar apenas os dados no aplicativo backend (PHP), mas depois percebi que o Varnish interceptaria todos os pedidos após o primeiro.

Qual seria a melhor maneira de rastrear solicitações contra tokens?

No momento, estou lendo ou lendo varnishlog / varnishncsa em um tópico separado, ou adicionando algo como o VMOD do Redis e fazendo com que ele incremente um contador baseado em token: url.

Alguém já fez algo assim?

    
por Dachande663 12.11.2014 / 15:04

2 respostas

1

Na minha opinião, existem três opções razoáveis aqui:

  1. Usando Estatísticas personalizadas do verniz . O VCS faz parte do Varnish Plus e foi especificamente projetado para resolver casos de uso como o que você está descrevendo. Se você estiver usando o Varnish Plus, este é o caminho a percorrer.

  2. Usando o varnishog / varnishncsa junto com alguns contadores de descarga de scripts para algum banco de dados externo.

  3. Usando um VMOD Redis ou Memcached. Comparado com a opção (2), isso adicionará uma sobrecarga desprezível a cada solicitação, mas você economizará um pouco de E / S e poderá evitar a implementação / manutenção do script. Acho que esta é a melhor alternativa se o VCS não puder ser usado.

por 26.11.2014 / 15:59
2

Eu sugiro que você deixe o verniz fazer o que ele faz melhor, armazenando em cache, e deixe o rastreamento feito por vernizog / ncsa

Ao adicionar o Redis Vmod, você adicionará complexidade ao seu vcl e se por algum motivo seus redis forem reduzidos, você perderá seu rastreamento.

Usando o varnishlog / ncsa, você pode construir sua lógica de rastreamento fora do verniz, processar o registro em tempo real, canalizando o processo do varnishlog ou armazenando o registro para um uso posterior.

    
por 23.11.2014 / 22:58

Tags