## Description

The example showcases how to run a p2p network with **libp2p** and collect metrics using `libp2p-metrics`.
It sets up multiple nodes in the network and measures various metrics, such as `libp2p_ping`, to evaluate the network's performance.

## Usage

To run the example, follow these steps:

1. Run the following command to start the first node:

   ```sh
   cargo run
   ```

2. Open a second terminal and run the following command to start a second node:

   ```sh
   cargo run -- <listen-addr-of-first-node>
   ```

   Replace `<listen-addr-of-first-node>` with the listen address of the first node reported in the first terminal.
   Look for the line that says `NewListenAddr` to find the address.

3. Open a third terminal and run the following command to retrieve the metrics from either the first or second node:

   ```sh
   curl localhost:<metrics-port-of-first-or-second-node>/metrics
   ```

   Replace `<metrics-port-of-first-or-second-node>` with the listen port of the metrics server of either the first or second node.
   Look for the line that says `tide::server Server listening on` to find the port.

   After executing the command, you should see a long list of metrics printed to the terminal.
   Make sure to check the `libp2p_ping` metrics, which should have a value greater than zero (`>0`).

## Conclusion

This example demonstrates how to utilize the `libp2p-metrics` crate to collect and analyze metrics in a libp2p network.
By running multiple nodes and examining the metrics, users can gain insights into the network's performance and behavior.
