Điểm:0

Nginx đã tính toán các biến nhật ký bằng lua

lá cờ ng

Tôi đang cố gắng để Nginx (chạy dưới dạng bộ điều khiển xâm nhập Kubernetes) đăng nhập trong mili giây thay vì giây. (Điều này là để chúng tôi có thể nhập nhật ký vào hệ thống Elaticsearch hiện tại của mình, hệ thống này đã có các hệ thống khác đăng nhập bằng ms)

Dựa vào cái này bài viết trên blog Tôi đã thử các cách sau trong ngữ cảnh 'http':

  bản đồ $host $request_time_ms {
    'kiểm tra' mặc định;
  }
  log_by_lua_block { 
    ngx.var.request_time_ms = 'foo'
  }

Và sau đó trong chuỗi nhật ký của tôi:

 '{...."duration_ms":"$request_time_ms",....}'

Nhưng giá trị đã ghi luôn là giá trị mặc định của kiểm tra chứ không phải là một trong những mong đợi của foo.

Cuối cùng, nó sẽ kết thúc như sau:

ngx.var.request_time_ms = math.floor(tonumber(ngx.var.request_time) * 1000)

Nhưng tôi chỉ đang cố gắng làm cho tình huống cơ bản hoạt động trước.

Bất cứ ý tưởng tại sao điều này không làm việc? Nó như thể log_by_lua_block chỉ là không chạy.

Điểm:0
lá cờ gr

Tôi không thể tái tạo tình huống của bạn trên máy chủ của riêng tôi (cần phải nói rằng tôi không sử dụng kubernetes hoặc docker để kiểm tra). Đối với tôi cấu hình này hoạt động như mong đợi. Nó thực sự trông giống như log_by_lua_block hoàn toàn không chạy trên bộ điều khiển xâm nhập của bạn. Nhưng bạn có thể sử dụng giải pháp thay thế sau để nhận thời gian yêu cầu tính bằng mili giây thay vì giây:

bản đồ $request_time $request_time_ms {
    ~^0\.0*(\d+?)$ $1;
    ~(\d+)\.(\d+) $1$2;
}
lá cờ ng
Điều này có vẻ hiệu quả, nhưng tôi cũng đã có một số giá trị xuất hiện như: ` "duration":0.112, "duration_ms":"8"` thật kỳ lạ....
Ivan Shatsky avatar
lá cờ gr
Nó thực sự trông kỳ lạ, nhưng tôi không có câu trả lời tại sao nó lại xảy ra ...

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.