GithubHelp home page GithubHelp logo

akme / get-closer Goto Github PK

View Code? Open in Web Editor NEW
29.0 4.0 1.0 65 KB

Find out closest hosts in terms of network latency and performance

License: GNU General Public License v3.0

Go 100.00%
golang go cli network monitoring measurements

get-closer's Introduction

get-closer

GoDoc Build Status Go Report Card Maintainability codecov License: GPL v3

Overview

get-closer helps you to find out closest hosts in terms of network latency or application performance.

Warning: project is under heavy development, feel free to open an issue

Motivation

Network services are very sensitive to latency degradation. In era of cloud computing we can get the same services from different providers that will have different locations, so network distance will differs too.
Choosing an optimal performing endpoint is vital part of optimization.
We wanted an easy way to compare different endpoints in case of network latency or application performance.

Install

go get -u github.com/akme/get-closer

How to use

Find out closest hosts in terms of network latency.

Usage:
  get-closer [command]

Available Commands:
  dns         Measuring domain resolve time via DNS resolver
  help        Help about any command
  http        Measuring time for HTTP request.
  icmp        Measuring RTT for hosts from list.
  tcp         Measuring time for connecting to open TCP port.

Flags:
  -c, --concurrency uint      concurrency (default 1)
      --config string         config file (default: ~/.get-closer.yaml)
      --count int             number of tests per host (default 1)
  -d, --delay int             set delay between checks (default 3)
  -r, --dns-resolver string   use custom DNS resolver
  -w, --dns-warm-up           warm up DNS cache before request (default true)
  -f, --from-file string      path to file with hosts to check
  -h, --help                  help for get-closer
  -l, --limit uint            number of hosts to return
  -b, --progress-bar          show progress bar (default true)
  -t, --timeout uint          timeout for request (default 60)
  -v, --verbose               enable verbose mode

Use "get-closer [command] --help" for more information about a command.

Examples

This repo contains hosts.txt and dnsresolvers.txt as an example of hosts file that you can use for test runs.

ICMP

On Linux, you need to enable "unprivileged" mode:

sudo sysctl -w net.ipv4.ping_group_range="0   2147483647"
get closer ping -f hosts.txt

TCP

get closer tcp -f hosts.txt

HTTP

get-closer http -f hosts.txt

DNS

get-closer dns -f hosts.txt

Publications

Contributing

When contributing to this repository, please first discuss the change you wish to make via issue, email, or any other method with the owners of this repository before making a change.

Versioning

We use SemVer for versioning. For the versions available, see the tags on this repository.

License

GNU General Public License v3.0

get-closer's People

Contributors

akme avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

sbotirov

get-closer's Issues

Add concurrency

Is your feature request related to a problem? Please describe.
Checking a big list is pretty time consuming adding concurrency will help to speed up
Describe the solution you'd like
flag with concurrency will set number of workers

fix timeout flag

Describe the bug
timeout flag doesn't work
To Reproduce
try to set timeout with flag
Expected behavior
flag sets timeout

Operatins System:

  • OS: MacOS
  • Go version 1.12

Output as standard metrics

Is your feature request related to a problem? Please describe.
Find out infrastructure wan status via metrics.

Describe the solution you'd like
Output metrics to telegraf and Prometheus.

Describe alternatives you've considered
Handle by my self.

Additional context
Get metrics of datacenters wan and internet access is one of the checkpoint of find out network/datacenter problems.

HTTP methods

Is your feature request related to a problem? Please describe.
there is no way to set method for HTTP request
Describe the solution you'd like
Allow to choose method that will be used for HTTP request

URI for HTTP

Is your feature request related to a problem? Please describe.
Sometime you need to check specific URI and not only index
Describe the solution you'd like
flag for setting an URI for HTTP measurements

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.