Skip to content

canonical/hermes

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Introduction

Hermes is a versatile time-series profiling tool for comprehensive system performance analysis. It runs periodic or oneshot jobs defined in the configurations to monitor performance metrics. If system loading stays below defined thresholds, metric collection is skipped to ensure minimal impact on system performance. This allows the profiling service to run in production environments without concern.

Big Picture

hermes_architecture

To enhance flexibility, we've modularized the functionalities into distinct elements:

  • Collector
    • Deploy this component on the target machine for gathering performance metrics as defined in the configurations. Collected data is stored in /var/log/collector/.
  • Parser
    • Transform the collected data into a format easily readable by the frontend.
  • Frontend
    • Provide multiple ways to visualize data for analysis.

Usage

Using Snap is a convenient installation method for the tool.

  1. Gather performance metrics on the target machines
hermes-time-series-profiling.collector
  1. Start a web server to offer RESTful APIs
hermes-time-series-profiling.webserver
  1. Establish a connection to the web server
  • Web

    • Access the web UI at http://<-webserver_ip->:8080/. hermes_web_ui_frontend
  • Grafana App

    • Build the Grafana app with make grafana and start the Grafana server using cd grafana_app; docker-compose up.
    • Access the Grafana app at http://<grafana_ip>:3000/
    • Enable the Hermes plugin (Administration->Plugins, search for Hermes, select it and click 'Enable')
    • Add the web server's IP as a Hermes plugin Data Source
    • From the Data Source config screen, you can import dashboards from the 'Dashboards' tab (eg. CPU Profile) hermes_grafana_frontend

Build

Two options:

  • Local build
sudo make && sudo make install
  • Snap build
snapcraft && sudo snap install hermes_X.X_XXX.snap --dangerous --classic