.. _stats_fs_doc: VPP stats segment FUSE filesystem ================================= The statfs binary allows to create a FUSE filesystem to expose and to browse the stats segment. It relies on the Go-FUSE library and requires Go-VPP stats bindings to work. The binary mounts a filesystem on the local machine with the data from the stats segments. The counters can be opened and read as files (e.g. in a Unix shell). Note that the value of a counter is determined when the corresponding file is opened (as for /proc/interrupts). Directories update their contents on epoch changes so that new counters get added to the filesystem. The script ``install.sh`` is responsible for building and installing the filesystem. Usage ----- The local Makefile contains targets for all the possible interactions with the stats_f binary. Help ~~~~ A basic help menu .. code:: bash make help Install ~~~~~~~ Building the binary .. code:: bash make install Start ~~~~~ Starts the filesystem. Requires a running VPP instance using the default socket /run/vpp/stats.sock. May require a privileged user (sudo) .. code:: bash make start Stop ~~~~ Stops and unmounts the filesystem if it is not busy. May require a privileged user (sudo) .. code:: bash make stop Force unmount ~~~~~~~~~~~~~ Forces the unmount of the filesystem even if it is busy. May require a privileged user (sudo) .. code:: bash make force-unmount Cleanup ~~~~~~~ Cleaning stats_fs binary. May require a privileged user (sudo). .. code:: bash make clean Browsing the filesystem ----------------------- The default mountpoint is /run/vpp/stats_fs_dir. You can browse the filesystem as a regular user. Example: .. code:: bash cd /run/vpp/stats_fs_dir cd sys/node ls -al cat names Building and mounting the filesystem manually --------------------------------------------- For more modularity, you can build and mount the filesystem manually. Building ~~~~~~~~ Inside the local directory, you can build the go binary: .. code:: bash go build Mounting ~~~~~~~~ Then, you can mount the filesystem with the local binary. May require a privileged user (sudo). The basic usage is: .. code:: bash ./stats_fs **Options:** - debug (default is false) - socket (default is /run/vpp/stats.sock) : VPP socket for stats Unmounting the file system ~~~~~~~~~~~~~~~~~~~~~~~~~~ You can unmount the filesystem with the fusermount command. May require a privileged user (sudo) .. code:: bash fusermount -u /path/to/mountpoint To force the unmount even if the resource is busy, add the -z option: .. code:: bash fusermount -uz /path/to/mountpoint