Go to file
Alberto Soutullo c05442b15d
Update README
2024-09-09 17:16:41 +02:00
data_analysis Added analysis scripts 2023-12-04 19:22:02 +01:00
debug_image Add accelerated deployment publisher 2024-03-04 13:43:35 +00:00
deployment Add container for get store messages 2024-09-09 17:15:29 +02:00
src Divided prepare path for file and folder (#37) 2024-09-05 10:13:50 +02:00
.gitignore Initial Commit 2023-09-13 16:28:00 +02:00
README.md Update README 2024-09-09 17:16:41 +02:00
example_log_analysis.py Alberto/victoriametrics reliability (#35) 2024-08-14 14:34:37 +02:00
main.py Set main to work with current code 2024-09-09 16:50:58 +02:00
requirements.txt Alberto/victoriametrics reliability (#35) 2024-08-14 14:34:37 +02:00
scrape.yaml Clean scrape yaml 2024-09-09 16:52:44 +02:00

README.md

Distributed deployer framework (Template name)

Python Version: 3.11.5

Yaml config:

General configuration

Important parameters for modifying when scrapping for simulation data.

general_config:
  times_names: # List of timestamps 
    - ["timestamp_init", "timestamp_end", "column_name"] # Last value is used to group data in the same spot in the plot

Example:

general_config:
  times_names:
    - [ "2024-05-15 12:31:00", "2024-05-15 12:47:00", "3K-1mgs-s-1KB" ]
    - [ "2024-05-15 13:10:00", "2024-05-15 13:30:00", "2K-1mgs-s-1KB" ]
    - [ "2024-05-15 16:34:00", "2024-05-15 16:56:00", "1K-1mgs-s-1KB" ]

Scrape configuration

Scrape parameters like step, interval, and dump location:

scrape_config:
  $__rate_interval: "rate"
  step: "step"
  dump_location: "folder_to_dump"

Example:

scrape_config:
  $__rate_interval: "121s"
  step: "60s"
  dump_location: "test/nwaku0.32/"

Metrics to scrape configuration

Important parameters for which metrics to scrape:

metrics_to_scrape:
  scrape_name:
    query: "query" # Query to extract data from
    extract_field: "instance" # Instance values, same as in Grafana panels
    folder_name: "folder" # This will be set inside `dump_location`

Example of what metrics to select:

metrics_to_scrape:
  libp2p_network_in:
    query: "rate(libp2p_network_bytes_total{direction='in'}[$__rate_interval])"
    extract_field: "instance"
    folder_name: "libp2p-in/"
  libp2p_network_out:
    query: "rate(libp2p_network_bytes_total{direction='out'}[$__rate_interval])"
    extract_field: "instance"
    folder_name: "libp2p-out/"

Important parameters for plotting:

plotting:
  "name_of_the_plot":
    "ignore": ["name"] # Pod names that starts with this string
    "data_points": number_of_points # 1 point per minute
    "folder": # Folders to get the data from
      - "folder_name_1"
      - "folder_name_2"
    "data": # Specific data from folder that will be used for the plot, needs to match `folder_name` from `metrics_to_scrape`
       - "data_from_folder"
    "xlabel_name": "xlabel"
    "ylabel_name": "ylabel"
    "scale-x": scale_number # If division is needed. Ie: y axis is bytes, we want KBytes, so we divide by 1000

Example of plotting bandwidth comparison between nWaku versions 26 27 and 28:

plotting:
  "bandwidth":
    "ignore": ["bootstrap", "midstrap"]
    "data_points": 25
    "folder":
      - "test/nwaku0.26/"
      - "test/nwaku0.27/"
      - "test/nwaku0.28/"
    "data":
      - "libp2p-in"
      - "libp2p-out"
    "xlabel_name": "NºNodes-MsgRate"
    "ylabel_name": "KBytes/s"
    "scale-x": 1000

We will have as many plots as keywords under plotting. Inside each plot, we will have as many subplots as metrics in data.

Main objectives

  • Automatic deployment of any P2P utils
    • Deployment of 10k Gossipsub / Waku relay nodes
    • Bandwidth usage per node
    • Log data for analysis

Secondary objectives

  • Add QoS parameter support to the 10k tool
  • Run further Waku protocols:
    • Filter
    • Lightpush
    • Store
    • Peer exchange

Acknowledgment

Inspired in the Codex framework https://github.com/codex-storage/cs-codex-dist-tests

Original Authors: