Como definir a hora de início da solicitação com o HAProxy?

5

Gostaria de medir o tempo da pilha de pedidos completos. O tempo de captura da New Relic do middleware (por exemplo, java, python, ruby) e o tempo de solicitação (consulte link ). Para isso, preciso configurar o cabeçalho X-Request-Start conforme a solicitação passe pelo saldo de carga do HAProxy. O haproxy.cfg deve ser parecido com:

backend www
  balance roundrobin
  mode http
reqadd      "X-Request-Start"  UNKNOWN_TIME_FUNCTION()
server servername 192.168.0.1:80 weight 1 check

Existe uma função nativa haproxy para substituir o UNKNOWN_TIME_FUNCTION()

    
por Tupy 08.11.2012 / 23:42

1 resposta

3

Você não pode fazer isso agora, embora seja possível depois que possamos passar as informações SSL, pois permitiremos passar qualquer informação dinâmica em um cabeçalho. Essa informação também seria a hora atual.

Se você realmente precisa disso, não é muito difícil implementar no código. Idealmente, deve ser feito na função que também é capaz de enviar o nome do servidor em um cabeçalho, para que, no caso de nova tentativa de conexão ou de reencaminhamento, a hora seja atualizada, embora isso não pareça crítico.

Ah, e BTW, por que você simplesmente não usa os logs do haproxy como todo mundo para medir seu tempo de processamento preciso? Ele faz exatamente o que você precisa com mais detalhes (por exemplo: split connect / processing / transfer) sem ter que alterar nada no servidor, e com mais precisão (ter duas máquinas sincronizadas em menos de 1 milissegundo não é fácil).

    
por 09.11.2012 / 08:30