Skip to content
/ gprobe Public

client app for the gRPC health-checking protocol

License

Notifications You must be signed in to change notification settings

ncbi/gprobe

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

    ____  ____
   /    \/    \                             |
  |            |    ,--.  ,--.   .--  .--.  |,--. ,---.
   \::::::::::;    |   |  |   | |    |    | |   | |---'
    `:::::::;'      '--|  |--'  |     '--'  '---' `---
      `:::;'          /   |
        `'         

gprobe is a CLI client for the gRPC health-checking protocol.

Usage

Assuming server is listening on localhost:1234

Check server health (it is considered healthy if it has grpc.health.v1.Health service and is able to serve requests)

gprobe localhost:1234

Check specific service health

gprobe localhost:1234 my.package.MyService

Get help

gprobe -h

Building from source

Valid go environment is required to build gprobe (go is in PATH, GOPATH is set, etc.).

Clone code into valid GOPATH location

git clone git@github.com:ncbi/gprobe.git $GOPATH/src/github.com/ncbi/gprobe

Build distributable tarballs for all OSes

make release

Build binary for current OS

make bin

Development

This project follows git-flow branching model. All development is done off of the develop branch. HEAD in production branch should always point to a tagged release. There's no master branch to avoid possible confusion.

To contribute:

  1. Fork or create a feature branch from the latest develop, commit your work there
    git checkout develop
    git pull
    git checkout -b feature/<feature_description>
  2. Run go fmt and all the checks before committing any code
    go fmt ./...
    make lint test acctest
  3. When the change is ready in a separate commit update CHANGELOG.md describing the change. Follow keepachangelog guidelines
  4. Create PR to develop

To release:

  1. Create a release branch from the latest develop and update CHANGELOG.md there, setting version and date
    git checkout -b release/1.2.3
  2. Create PR to production
  3. Once PR is merged, tag HEAD commit using annotated tag
    git tag -a 1.2.3 -m "1.2.3"
  4. Merge production back to develop. Do not use fast-forward merges
    git checkout develop
    git merge --no-ff production