Skip to content

grpc support in fortio (grpc load testing)#519

Merged
ldemailly merged 35 commits intomasterfrom
rawvm-register-1
Aug 7, 2017
Merged

grpc support in fortio (grpc load testing)#519
ldemailly merged 35 commits intomasterfrom
rawvm-register-1

Conversation

@ldemailly
Copy link
Copy Markdown
Member

@ldemailly ldemailly commented Aug 1, 2017

fortio support for grpc
fixes #451

fortio now supports grpc testing as well
docker images are created for fortio, grpcping, echosrv

…or programatic calls

Also auto set the testing function for http by default
ldemailly added a commit that referenced this pull request Aug 1, 2017
Moved a lot of the code from fortio main to the library so #517 can be
better/easier

(This is same as #519 with attempt at preserving history and without
the grpc wip)
@ldemailly ldemailly removed the request for review from douglas-reid August 1, 2017 03:02
ldemailly added a commit that referenced this pull request Aug 1, 2017
* make http runner available as library

Moved a lot of the code from fortio main to the library so #517 can be
better/easier

(This is same as #519 with attempt at preserving history and without
the grpc wip)

* Added test, moved echosrv code to lib, ...

Added test, moved echosrv code to lib, created DynamicHTTP for test,
renames per @douglas-reid code review comments

* Better initialization syntax

* Add a negative testing
@ldemailly ldemailly changed the title make http runner available as library wip grpc fortio Aug 1, 2017
@ldemailly ldemailly changed the title wip grpc fortio grpc support in fortio (grpc load testing) Aug 2, 2017
@ldemailly ldemailly requested a review from douglas-reid August 2, 2017 03:38
@istio istio deleted a comment from istio-testing Aug 4, 2017
bazel test //...

echo 'Pushing Images'
(cd devel/fortio make TAG="${GIT_SHA}")
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

don't you need a ; ?
(cd devel/fortio; make TAG="${GIT_SHA}")

@sebastienvas
Copy link
Copy Markdown
Contributor

prow/istio-presubmit.sh and makefile look legit beside the typo

@ldemailly
Copy link
Copy Markdown
Member Author

ldemailly commented Aug 4, 2017

the presubmit part needs istio/test-infra#366

@istio istio deleted a comment from istio-testing Aug 5, 2017
@istio istio deleted a comment from istio-testing Aug 5, 2017
@istio istio deleted a comment from istio-testing Aug 5, 2017
+ reduce the verbosity of http
Copy link
Copy Markdown
Contributor

@douglas-reid douglas-reid left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Only small nits. I don't need to review again (unless there are major changes).

// GODEBUG="http2debug=2" GRPC_GO_LOG_VERBOSITY_LEVEL=99 GRPC_GO_LOG_SEVERITY_LEVEL=info grpcping -loglevel debug

var (
countFlag = flag.Int("n", 1, "how many ping the client will send")
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

super nit: "how many ping (s) the client will send"

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

changed


func main() {
flag.Parse()
if *hostFlag != "" {
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

in the future, you may want to consider https://github.com/spf13/cobra to allow subcommands that may be better suited for this purpose (instead of grpcping -host ..., you would have something like grpcping server ... which might be easier to grok (and allow file separation of client/server code)).

"istio.io/istio/devel/fortio"

context "golang.org/x/net/context"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: unnecessary separation of import blocks.

other nit: here and elsewhere, you are using import blocks of the order: stdlib, istio, external. elsewhere in istio, it is typically: stdlib, external, istio.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

my IDE or gofmt seems to do the ordering but I'll see if a change sticks

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

changed


// TestGrpc exercises Grpc health check at the target QPS.
// To be set as the Function in RunnerOptions.
func TestGrpc(t int) {
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

food for thought: i know this matches other bits, but this always makes me do a double-take to ensure that I'm not in a *_test.go file.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yeah, on the other hand fortio is all about testing but I'll see if I can come up with something


// DynamicGrpcHealthServer starts and returns the port where a Grpc Health
// server is running. It runs until error or program exit (separate go routine)
func DynamicGrpcHealthServer() int {
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

small nit: initialisms, like GRPC, are supposed to be non-mixed-case (https://github.com/golang/go/wiki/CodeReviewComments#initialisms).

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I was happy the linter didn't know about GRPC but you do :-)

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

changing it but for the record I think it's less readable... but conventions are conventions so ok

@ldemailly ldemailly merged commit 13ced35 into master Aug 7, 2017
@ldemailly ldemailly deleted the rawvm-register-1 branch August 7, 2017 05:32
@ldemailly
Copy link
Copy Markdown
Member Author

Thanks a lot @douglas-reid for all the reviews!

rshriram pushed a commit that referenced this pull request Oct 30, 2017
* make http runner available as library

Moved a lot of the code from fortio main to the library so #517 can be
better/easier

(This is same as #519 with attempt at preserving history and without
the grpc wip)

* Added test, moved echosrv code to lib, ...

Added test, moved echosrv code to lib, created DynamicHTTP for test,
renames per @douglas-reid code review comments

* Better initialization syntax

* Add a negative testing


Former-commit-id: 7b83910
rshriram pushed a commit that referenced this pull request Oct 30, 2017
fortio now supports grpc testing as well
fixes #451

docker images are created for fortio, grpcping, echosrv

* Simple grpc cli/server

Gazelle doesn’t seem to generate build rule for proto

* Added payload flag

* User fortio logger, temp check in of .pb. file

* Renamed to grpcping

* Allow grpc_cli ls to work

* ping and clock skew calculations

* Add histograms to grpcping

* Make http runner accessible/reusable as library

So #517 can be better/easier

* Return actual QPS and indicate default runner options aren't needed for programatic calls

Also auto set the testing function for http by default

* Comment on the provenance of the code

* Adding gprc std health svc check (through -health)

* Grpc runner as library

* Fortio now has a -grpc flag to exercise grpc servers (that have health services)

For #451

* Minor fixes/updates

* Added comment per code review

* Opsa spell check

* Fix Dockerfile

Builds 3 binaries which is kind of big
Todo: consider 1 binary

* Move grpc in separate package to keep echosrv binary small

Move grpc in separate package to keep echosrv binary small and
dependencies smaller when not using grpc (so echosrv which doesn’t use
grpc stays 4mb instead of becoming 6mb)
(Seemingly a side effect of go’s init() that not using still pulls it
in)

Individual images fortio.fortio fortio.echosrv fortio.grpcping as well
as a combo images having all 3

* Adding images push

* Adding missing GIT_SHA

* Typo galore

* Debug docker version

* Got push failure, trying authorize

+ reduce the verbosity of http

* Code review comments

Thx doug!

Former-commit-id: 13ced35
vbatts pushed a commit to vbatts/istio that referenced this pull request Oct 31, 2017
* make http runner available as library

Moved a lot of the code from fortio main to the library so istio#517 can be
better/easier

(This is same as istio#519 with attempt at preserving history and without
the grpc wip)

* Added test, moved echosrv code to lib, ...

Added test, moved echosrv code to lib, created DynamicHTTP for test,
renames per @douglas-reid code review comments

* Better initialization syntax

* Add a negative testing


Former-commit-id: 7b83910
vbatts pushed a commit to vbatts/istio that referenced this pull request Oct 31, 2017
fortio now supports grpc testing as well
fixes istio#451

docker images are created for fortio, grpcping, echosrv

* Simple grpc cli/server

Gazelle doesn’t seem to generate build rule for proto

* Added payload flag

* User fortio logger, temp check in of .pb. file

* Renamed to grpcping

* Allow grpc_cli ls to work

* ping and clock skew calculations

* Add histograms to grpcping

* Make http runner accessible/reusable as library

So istio#517 can be better/easier

* Return actual QPS and indicate default runner options aren't needed for programatic calls

Also auto set the testing function for http by default

* Comment on the provenance of the code

* Adding gprc std health svc check (through -health)

* Grpc runner as library

* Fortio now has a -grpc flag to exercise grpc servers (that have health services)

For istio#451

* Minor fixes/updates

* Added comment per code review

* Opsa spell check

* Fix Dockerfile

Builds 3 binaries which is kind of big
Todo: consider 1 binary

* Move grpc in separate package to keep echosrv binary small

Move grpc in separate package to keep echosrv binary small and
dependencies smaller when not using grpc (so echosrv which doesn’t use
grpc stays 4mb instead of becoming 6mb)
(Seemingly a side effect of go’s init() that not using still pulls it
in)

Individual images fortio.fortio fortio.echosrv fortio.grpcping as well
as a combo images having all 3

* Adding images push

* Adding missing GIT_SHA

* Typo galore

* Debug docker version

* Got push failure, trying authorize

+ reduce the verbosity of http

* Code review comments

Thx doug!

Former-commit-id: 13ced35
mandarjog pushed a commit that referenced this pull request Oct 31, 2017
mandarjog pushed a commit that referenced this pull request Nov 2, 2017
* make http runner available as library

Moved a lot of the code from fortio main to the library so #517 can be
better/easier

(This is same as #519 with attempt at preserving history and without
the grpc wip)

* Added test, moved echosrv code to lib, ...

Added test, moved echosrv code to lib, created DynamicHTTP for test,
renames per @douglas-reid code review comments

* Better initialization syntax

* Add a negative testing


Former-commit-id: 7b83910
mandarjog pushed a commit that referenced this pull request Nov 2, 2017
fortio now supports grpc testing as well
fixes #451

docker images are created for fortio, grpcping, echosrv

* Simple grpc cli/server

Gazelle doesn’t seem to generate build rule for proto

* Added payload flag

* User fortio logger, temp check in of .pb. file

* Renamed to grpcping

* Allow grpc_cli ls to work

* ping and clock skew calculations

* Add histograms to grpcping

* Make http runner accessible/reusable as library

So #517 can be better/easier

* Return actual QPS and indicate default runner options aren't needed for programatic calls

Also auto set the testing function for http by default

* Comment on the provenance of the code

* Adding gprc std health svc check (through -health)

* Grpc runner as library

* Fortio now has a -grpc flag to exercise grpc servers (that have health services)

For #451

* Minor fixes/updates

* Added comment per code review

* Opsa spell check

* Fix Dockerfile

Builds 3 binaries which is kind of big
Todo: consider 1 binary

* Move grpc in separate package to keep echosrv binary small

Move grpc in separate package to keep echosrv binary small and
dependencies smaller when not using grpc (so echosrv which doesn’t use
grpc stays 4mb instead of becoming 6mb)
(Seemingly a side effect of go’s init() that not using still pulls it
in)

Individual images fortio.fortio fortio.echosrv fortio.grpcping as well
as a combo images having all 3

* Adding images push

* Adding missing GIT_SHA

* Typo galore

* Debug docker version

* Got push failure, trying authorize

+ reduce the verbosity of http

* Code review comments

Thx doug!

Former-commit-id: 13ced35
guptasu pushed a commit to guptasu/istio that referenced this pull request Jun 11, 2018
Signed-off-by: Kuat Yessenov <kuat@google.com>
howardjohn pushed a commit to howardjohn/istio that referenced this pull request Jan 12, 2020
* [kiali] issue-18798 fix some wrong yaml.
Another (trivial) change is that this alphabetizes a couple settings to make comparison with the old helm charts easier.

* gen check results
danehans pushed a commit to danehans/istio that referenced this pull request Nov 2, 2021
antonioberben pushed a commit to antonioberben/istio that referenced this pull request Jan 29, 2024
…cified (istio#519)

Annotations for ServiceAccounts can now be specified with helm values

Signed-off-by: Nabeel Sadiq <nabeel.sadiq@paytrix.io>
Signed-off-by: Pavel Nikolov <pavelnikolov@users.noreply.github.com>
Co-authored-by: Pavel Nikolov <pavelnikolov@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

grpc benchmark (code to be able to do it)

5 participants