Nginx Log Analyzer
nginx-ի access-լոգերի CLI վերլուծիչ՝ հոսքային մշակում, սխալ ձևաչափի տողերի նկատմամբ կայունություն և հաշվետվություններ JSON, Markdown և AsciiDoc ձևաչափերով։
Տեխնոլոգիաներ
- Python
- Docker
Հիմնական տեխնիկական որոշումները
- Հոսքային ընթերցում՝ ֆայլն ամբողջությամբ հիշողության մեջ բեռնելու փոխարեն. ամբողջ լոգը RAM-ում պահելու կարիք չկա։
- Սխալ ձևաչափով տողը բաց է թողնվում, այլ ոչ թե ընդհատում աշխատանքը, և հաշվարկը շարունակվում է մնացածով։
- Աղբյուրը կարող է լինել լոկալ ֆայլ, glob-ձևանմուշ կամ URL։
- Նույն ագրեգացված տվյալներն արտահանվում են երեք ձևաչափով. JSON՝ ավտոմատ մշակման համար, Markdown և AsciiDoc՝ ընթերցման համար։
- Runtime-ում միայն Python-ի ստանդարտ գրադարանն է, արտաքին կախվածություններ չկան։
- Խիստ տիպավորում՝ mypy-ով ստուգմամբ, մոդուլային թեստեր pytest-ով, լինտինգ, Docker և CI։
Հրամանային տողի գործիք, որը կարդում է nginx-ի access-լոգերը և դրանցից հավաքում վիճակագրություն՝ ամենահաճախ հարցվող ռեսուրսները, պատասխանների կոդերը, պատասխանի չափի պերցենտիլները և հարցումների բաշխումն ըստ ամսաթվերի։
nginx-ի լոգերը հեշտությամբ հասնում են գիգաբայթների, և հենց դա է թելադրում գործիքի պահանջները՝ ֆայլն ամբողջությամբ հիշողության մեջ չպահել և շարունակել մշակումը նույնիսկ այն դեպքում, երբ առանձին տողեր չեն համապատասխանում սպասվող ձևաչափին։