149 lines
2.7 KiB
ReStructuredText
149 lines
2.7 KiB
ReStructuredText
|
.. _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 <MOUNT_POINT>
|
|||
|
|
|||
|
**Options:** - debug <true|false> (default is false) - socket
|
|||
|
<statSocket> (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
|