All Projects → mrichman → Hargo

mrichman / Hargo

Licence: mit
Hargo is a Go library and command line utility that parses HAR files, can convert to curl format, and serve as a load test driver.

Programming Languages

go
31211 projects - #10 most used programming language
golang
3204 projects

Projects that are alternatives of or similar to Hargo

Performance Testing Framework
Framework allows to perform load testing with Apache Jmeter, view application/server metrics in real-time with Grafana, analyze errors cause with detailed traces for failed requests, compare different test runs in scripted dashboard and perform frontend performance testing with sitespeed.io+webpagetest
Stars: ✭ 275 (+67.68%)
Mutual labels:  influxdb, grafana, performance-testing, load-testing
bounded-disturbances
A k6/.NET red/green load testing workshop
Stars: ✭ 39 (-76.22%)
Mutual labels:  influxdb, grafana, load-testing
Wait4disney
Shanghai Disney Waiting Queue Statistics 上海迪士尼排队情况
Stars: ✭ 99 (-39.63%)
Mutual labels:  influxdb, grafana
Iotstack
docker stack for getting started on IOT on the Raspberry PI
Stars: ✭ 1,383 (+743.29%)
Mutual labels:  influxdb, grafana
Grafana Influx Dashboard
Grafana InfluxDB scripted dashboard
Stars: ✭ 130 (-20.73%)
Mutual labels:  influxdb, grafana
Awesome K6
A curated list of resources on automated load- and performance testing using k6 🗻
Stars: ✭ 78 (-52.44%)
Mutual labels:  performance-testing, load-testing
Influxgraph
Graphite InfluxDB backend. InfluxDB storage finder / plugin for Graphite API.
Stars: ✭ 87 (-46.95%)
Mutual labels:  influxdb, grafana
Pi Hole Influx
A python daemon to send Pi-Hole stats for Grafana to InfluxDB
Stars: ✭ 126 (-23.17%)
Mutual labels:  influxdb, grafana
Go Web Backend
Dockerized backend services for web application
Stars: ✭ 50 (-69.51%)
Mutual labels:  influxdb, grafana
Gpu monitor
Monitor your GPUs whether they are on a single computer or in a cluster
Stars: ✭ 133 (-18.9%)
Mutual labels:  influxdb, grafana
Docker Influxdb Grafana
A Docker container which runs InfluxDB and Grafana ready for persisting data
Stars: ✭ 130 (-20.73%)
Mutual labels:  influxdb, grafana
Ohmgraphite
Export Open Hardware sensor data to Graphite / InfluxDB / Prometheus / Postgres / Timescaledb
Stars: ✭ 155 (-5.49%)
Mutual labels:  influxdb, grafana
Jmeter Elasticsearch Backend Listener
JMeter plugin that lets you send sample results to an ElasticSearch engine to enable live monitoring of load tests.
Stars: ✭ 72 (-56.1%)
Mutual labels:  grafana, performance-testing
Nagflux
A connector which copies performancedata from Nagios / Icinga(2) / Naemon to InfluxDB
Stars: ✭ 55 (-66.46%)
Mutual labels:  influxdb, grafana
Internet Speedtest Docker
Internet testing running on Docker Compose.
Stars: ✭ 88 (-46.34%)
Mutual labels:  influxdb, grafana
Personal Influxdb
Import data from various APIs into InfluxDB
Stars: ✭ 51 (-68.9%)
Mutual labels:  influxdb, grafana
Grafana
The open and composable observability and data visualization platform. Visualize metrics, logs, and traces from multiple sources like Prometheus, Loki, Elasticsearch, InfluxDB, Postgres and many more.
Stars: ✭ 45,930 (+27906.1%)
Mutual labels:  influxdb, grafana
Appmetrics
App Metrics is an open-source and cross-platform .NET library used to record and report metrics within an application.
Stars: ✭ 1,986 (+1110.98%)
Mutual labels:  influxdb, grafana
Ssh Log To Influx
Send SSH authentication logs to influxdb with geohashing IP
Stars: ✭ 49 (-70.12%)
Mutual labels:  influxdb, grafana
Influx Crypto Trader
Node js trading bot, let you create trading strategy and run it (backtest/simulation/live)
Stars: ✭ 49 (-70.12%)
Mutual labels:  influxdb, grafana

Hargo

Hargo Build Status GoDoc Go Report Card Join the chat at https://gitter.im/mrichman/hargo GitHub license GitHub issues Twitter

Hargo parses HAR files, can convert to curl format, and serve as a load test driver.

NAME:
   hargo - work with HTTP Archive (.har) files

USAGE:
   hargo <command> [arguments] <.har file>

VERSION:
   0.1.2-dev.57 (da53069)

AUTHOR:
   Mark A. Richman <[email protected]>

COMMANDS:
     fetch, f     Fetch URLs in .har
     curl, c      Convert .har to curl
     run, r       Run .har file
     validate, v  Validate .har file
     dump, d      Dump .har file
     load, l      Load test .har file
     help, h      Shows a list of commands or help for one command

GLOBAL OPTIONS:
   --debug        Show debug output
   --help, -h     show help
   --version, -v  print the version

COPYRIGHT:
   (c) 2019 Mark A. Richman

Running Hargo

go get github.com/mrichman/hargo
export GOPATH=$HOME/go
cd $GOPATH/src/github.com/mrichman/hargo
go run cmd/hargo/hargo.go validate test/golang.org.har

Building from source

Make sure that you have Go version 1.9 or greater (I haven't tested with lower) and that your GOPATH env variable is set (I recommand setting it to ~/go if you don't have one). If GOBIN is not set, also try setting that to ~/go/bin, as make install may fail. You can check all Go environment variables with go env.

go get -d github.com/mrichman/hargo
cd $GOPATH/src/github.com/mrichman/hargo
make install

About HAR Files

If you use Google Chrome, you can record these files by following the steps below:

  1. Right-click anywhere on that page and click on Inspect Element to open Chrome's Developer Tools
  2. The Developer Tools will open as a panel at the bottom of the page. Click on the Network tab.
  3. Click the Record button, which is the solid black circle at the bottom of the Network tab, and you'll start recording activity in your browser.
  4. Refresh the page and start working normally
  5. Right-click within the Network tab and click Save as HAR with Content to save a copy of the activity that you recorded.
  6. Within the file window, save the HAR file.

Commands

Fetch

The fetch command downloads all resources references in .har file:

hargo fetch foo.har

This will produce a directory named hargo-fetch-yyyymmddhhmmss containing all assets references by the .har file. This is similar to what you'd see when invoking wget on a particular URL.

Curl

The curl command will output a curl command line for each entry in the .har file.

hargo curl foo.har

Run

The run command executes each HTTP request in .har file:

hargo run foo.har

This is similar to fetch but will not save any output.

Validate

The validate command will report any errors in the format of a .har file.

hargo validate foo.har

HAR file format is defined here: https://w3c.github.io/web-performance/specs/HAR/Overview.html

Dump

Dump prints information about all HTTP requests in .har file

hargo dump foo.har

Load

Hargo can act as a load test agent. Given a .har file, hargo can spawn a number of concurrent workers to repeat each HTTP request in order. By default, hargo will spawn 10 workers and run for a duration of 60 seconds.

Hargo will also save its results to InfluxDB, if available. Each HTTP response is stored as a point of time-series data, which can be graphed by Chronograf, Grafana, or similar visualization tool for analysis.

Docker

Build container

docker build -t hargo .

Run container

docker run --rm -v `pwd`/test:/test hargo hargo run /test/golang.org.har

Docker-compose

The example docker-compose file will start three containers:

  • hargo
  • influxdb
  • grafana

The hargo container will first needs to be built. See build. When the compose file is run it will start a hargo load process that will write the results to InfluxDB. This InfluxDB instance can be viewed using the grafana container. This contains an example dashboard showing the latency of the executed request. Username/password for all the containers is hargo/hargo.

commands

cd example/docker-compose
docker-compose up
docker-compose down -v
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].