nginx logging: Existe uma maneira de registrar o tempo de solicitação em milissegundos desde a época do Unix?

2

Estou ciente do $msec parâmetro de registro que fornece o tempo de solicitação como segundos desde Época Unix com granularidade em milissegundos. No entanto, o formato disso inclui um período '.' por exemplo. '1407233265.472' e isso é um problema para a função de importação que estou usando para analisar os arquivos de log.

Existe uma maneira (parâmetro de log ou plug-in) que permitirá que o tempo de solicitação seja registrado em milissegundos totais? por exemplo. '1407233265472'. Estou feliz em compilar o nginx conforme necessário.

    
por jamesc 06.08.2014 / 11:32

1 resposta

2

Existem 2 maneiras de conseguir isso. O primeiro é sujo e eu não o recomendarei - é o caminho mais rápido:

if ($msec ~ "(.*)\.(.*)") {
    set $epoch_millis = "$1$2"
}

Isso é muito mais limpo, mas requer lua:

set_by_lua_block $epoch_millis { return string.gsub(ngx.var.msec, "%.", "") }

depois é só logar $ epoch_millis

    
por 25.01.2017 / 15:21