Skip to content

Latest commit

 

History

History
71 lines (56 loc) · 2.49 KB

README.md

File metadata and controls

71 lines (56 loc) · 2.49 KB

inspect is a collection of operating system/application monitoring analysis libraries and utilities with an emphasis on problem detection.

Installation

  1. get go
  2. go get -u -v github.com/square/inspect/...

The above commands should install three binaries in your original $GOPATH/bin directory.

  1. inspect
  2. inspect-mysql (work in progress)
  3. inspect-postgres (work in progress)

Please see subdirectories for more detailed documentation

Glossary

  • cmd - Directory for command line programs based on the below libraries

  • os - Operating system metric measurement libraries used by inspect.
  • mysql - MySQL metric reporting libraries.
  • postgres - Postgres metric reporting libraries.
  • metrics/metricscheck - Simple metrics libraries for golang.

Development

Development setup is a bit tricky given interaction of godep/gopath:

  • Create a fork
  • Setup golang workspace and set GOPATH Reference
    • export GOPATH=$HOME/godev # example
    • mkdir -p $GOPATH/{src,bin,pkg}
  • Setup project
    • mkdir -p $GOPATH/src/github.com/square
    • cd $GOPATH/src/github.com/square
    • git clone [email protected]:CHANGE-ME/inspect.git # change path to your fork
    • cd inspect
  • Setup a reference to upstream to sync changes with upstream easily etc
    • git remote add upstream github.com/square/inspect.git
[s@pain inspect (master)]$ git remote -v
origin	[email protected]:syamp/inspect.git (fetch)
origin	[email protected]:syamp/inspect.git (push)
upstream	github.com/square/inspect.git (fetch)
upstream	github.com/square/inspect.git (push)
  • We use godep for vendoring and dependency management. We rewrite import paths. If you are adding a new dependency or updating one, please run

    1. godep save -r
  • Please format, test and lint before submitting PRs

    1. go fmt ./...
    2. go test ./...
    3. $GOPATH/bin/golint ./...
Testing

To run the linux tests in this repo on a non-linux machine, use the TestLinuxDockerfile in the root of the repo.

docker build -q -f TestLinuxDockerfile .

# record the image id outputted from the command ^

docker run --rm -it --entrypoint bash ${the_full_image_id_from_above}

# Once attached to the docker container, run the tests. E.g.
cd os/cpustat
go test ./...

Todo

  • metriccheck uses some darkmagic and uses golang/x/tools APIs which tend to break API compat often. Need to fix it.