From 5d221e781a566a79da861c66188481dc2d97c674 Mon Sep 17 00:00:00 2001 From: Marshall Jones Date: Tue, 20 Aug 2019 20:47:30 -0700 Subject: [PATCH] Propose Embedding Health Check Proto Copy this file https://github.com/grpc/grpc-proto/blob/master/grpc/health/v1/health.proto into the ghz folder for use when promoting a canary running a grpc service. This repo describes the file: > This repository contains common protocol definitions for peripheral services around gRPC such as health checking, load balancing etc.. Any app that chooses to implement this interface (which imo should be any grpc service exposing a health check) will then be able to use this without providing reflection. I'm not a grpc expert so I'm not sure what the best practices are around allowing reflection on the server but this seems like a simple solution for those who choose not to enable it. Slack discussion on the weave users slack is here - https://weave-community.slack.com/archives/CGLQLLH9Q/p1566358441123400 You can utilize this file like so `/ghz --proto=/tmp/health.proto --call=grpc.health.v1.Health/Check ...` --- Dockerfile.loadtester | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Dockerfile.loadtester b/Dockerfile.loadtester index 220c2738..2fd6031b 100644 --- a/Dockerfile.loadtester +++ b/Dockerfile.loadtester @@ -16,6 +16,8 @@ rm -rf linux-amd64 RUN curl -sSL "https://github.com/bojand/ghz/releases/download/v0.39.0/ghz_0.39.0_Linux_x86_64.tar.gz" | tar xz -C /tmp && \ mv /tmp/ghz /usr/local/bin && chmod +x /usr/local/bin/ghz && rm -rf /tmp/ghz-web +ADD https://github.com/grpc/grpc-proto/blob/master/grpc/health/v1/health.proto /tmp/ghz/health.proto + RUN ls /tmp COPY ./bin/loadtester .