Dmitry Volyntsev
April 16, 2020 08:42AM
> On 16 Apr 2020, at 00:41, edc <nginx-forum@forum.nginx.org> wrote:
>
> Возникла необходимость читать счётчики с сетевых интерфейсов. Метрика
> доступна в файле /sys/class/net/eth0/statistics/rx_bytes
> NJS возвращает текущее значение и вдобавок к метрике мусор. Похоже весь файл
> читается блоком в 4K. Если тот-же код выполнить в ноде - результат
> корректен. Правильное ли это поведение njs?
>
> Пример кода - test.js
>
> var fs = require('fs')
> var file = fs.readFileSync('/sys/class/net/eth0/statistics/rx_bytes')
> var file = fs.writeFileSync('filecopy.txt', file)
>
> Проверка:
>
> stat /sys/class/net/wlp61s0/statistics/rx_bytes
>
> File: /sys/class/net/wlp61s0/statistics/rx_bytes
> Size: 4096 Blocks: 0 IO Block: 4096 regular file
>
> njs test.js
> stat filecopy.txt
>
> File: filecopy.txt
> Size: 4096 Blocks: 8 IO Block: 4096 regular file
>
> node test.js
> stat filecopy.txt
>
> File: filecopy.txt
> Size: 10 Blocks: 8 IO Block: 4096 regular file
>
> Версии:
> njs -v
> 0.3.9
>
> node -v
> v8.10.0
>
> Проверял на Ubuntu 18.04.4 LTS и так же в Docker nginx:latest
>
> Posted at Nginx Forum: https://forum.nginx.org/read.php?21,287667,287667#msg-287667


Могу подтвердить проблему, исправим в ближайших релизах.
njs сейчас доверяет размеру файла полученного через fstat(), который составляет 4096.

В качество workaround могу предложить следующее

: var fs = require(‘fs’)
: var file = fs.readFileSync('/sys/class/net/eth0/statistics/rx_bytes’)
: var rx_bytes = Number(file.slice(0, file.indexOf(‘\n’)));



>
> _______________________________________________
> nginx-ru mailing list
> nginx-ru@nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru

_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

NJS - Неправильное чтение файла

edc April 15, 2020 05:41PM

Re: NJS - Неправильное чтение файла

Dmitry Volyntsev April 16, 2020 08:42AM

Re: NJS - Неправильное чтение файла

edc April 17, 2020 12:54AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 306
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready