Hey
script
Hey | script | |
---|---|---|
42 | 16 | |
18,480 | 6,333 | |
0.7% | 11.6% | |
0.0 | 6.5 | |
6 months ago | 28 days ago | |
Go | Go | |
Apache License 2.0 | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Hey
- [Bahasa] Tracer: Open Telemetry, Golang, and Jagger Simple Implementation
-
Amazon DevOps Guru for the Serverless applications - Part 12 Anomaly detection on Lambda consuming from DynamoDB Streams
We can reproduce the failure with curl or hey tool, so that we have many failed UpdateProduct Lambda functions.
-
Amazon DevOps Guru for the Serverless applications - Part 11 Anomaly detection on SNS (kind of)
Then I sent several hundreds create product requests via the hey tool like :
-
Amazon DevOps Guru for the Serverless applications - Part 10 Anomaly detection on Aurora Serverless v2
As in the previous article we use hey tool to perform the load test like this
-
AWS SnapStart - Part 19 Measuring cold starts and deployment time with Java 17 using different Lambda memory settings
The results of the experiment below were based on reproducing approximately 100 cold starts for the duration of our experiment which ran for approximately 1 hour. For it (and all experiments from my previous articles) I used the load test tool hey, but you can use whatever tool you want, like Serverless-artillery or Postman
-
Data API for Amazon Aurora Serverless v2 with AWS SDK for Java - Part 5 Basic cold and warm starts measurements
The results of the experiment to retrieve the existing product from the database by its id see GetProductByIdViaAuroraServerlessV2DataApiHandler with Lambda function with 1024 MB memory setting were based on reproducing more than 100 cold and approximately 10.000 warm starts with experiment which ran for approximately 1 hour. For it (and experiments from my previous article) I used the load test tool hey, but you can use whatever tool you want, like Serverless-artillery or Postman. We won't enable SnapStart on the Lambda function first.
-
AWS SnapStart - Part 15 Measuring cold and warm starts with Java 21 using different synchronous HTTP clients
The results of the experiment below were based on reproducing more than 100 cold and approximately 100.000 warm starts with experiment which ran for approximately 1 hour. For it (and experiments from my previous article) I used the load test tool hey, but you can use whatever tool you want, like Serverless-artillery or Postman. I ran all these experiments for all 3 scenarios using 2 different compilation options in template.yaml each:
-
AWS SnapStart - Part 13 Measuring warm starts with Java 21 using different Lambda memory settings
In our experiment we'll re-use the application introduced in part 9 for this. There are basically 2 Lambda functions which both respond to the API Gateway requests and retrieve product by id received from the API Gateway from DynamoDB. One Lambda function GetProductByIdWithPureJava21Lambda can be used with and without SnapStart and the second one GetProductByIdWithPureJava21LambdaAndPriming uses SnapStart and DynamoDB request invocation priming. We'll measure cold and warm starts using the following memory settings in MBs : 256, 512, 768, 1024, 1536 and 2048. I also put the cold starts measured in the part 12 into the tables to see both cold and warm starts in one place. The results of the experiment below were based on reproducing more than 100 cold and approximately 100.000 warm starts for the duration of our experiment which ran for approximately 1 hour. Here is the code for the sample application. For it (and experiments from my previous article) I used the load test tool hey, but you can use whatever tool you want, like Serverless-artillery or Postman. Abbreviation c is for the cold start and w is for the warm start.
-
Diagnósticos usando dotnet-monitor + prometheus + grafana
Por último, podemos executar os testes de carga usando hey.
-
Amazon DevOps Guru for the Serverless applications - Part 2 Setting up the Sample Application for the Anomaly Detection
For running our experiments to provoke anomalies we'll use the stress test tool. You can use the tool of your choice (like Gatling, JMeter, Fiddler or Artillery), I personally prefer to use the tool hey as it is easy to use and similar to curl. On Linux this tool can be installed by executing
script
- Shell-ish scripting in Go with ease
- Script: Making it easy to write shell-like scripts in Go
- Making it easy to write shell-like scripts in Go
- Go is my hammer, and everything is a nail
-
Using ARG in a Dockerfile – beware the gotcha
That's why I plan on migrating all my shell scripts to Golang programs f.ex. using https://github.com/bitfield/script -- it already has a number of simulations of shell commands and I'd contribute others if I had the time.
sh / bash / zsh scripts are just fragile and that's the inconvenient truth. People who devised the shell interpreters had good intentions but ultimately their creations grew to a scope 1000x bigger than they intended, hence all the "do X but if Y flag is set then do Z... unless flag A is also set in which case do Y and part of Z".
It's horrendous and I seriously don't get what's so difficult in just coding these scripts in a programming language that provides single statically linked binaries (like Golang) and just distribute it with your images -- or run them in CI/CD and have init containers and never include them in the images in the first place.
Inertia, of course. But I'll be actively working against it until I retire.
-
GNU Parallel, where have you been all my life?
I use Go. You can run scripts with go run directly, and this package makes shell tasks easy: https://github.com/bitfield/script
-
Scripting with Go: A Modest Proposal
If you're not deeply familiar with Go there is one detail missing from this post (though it's in the script README) - what a complete program looks like. Here's the example from https://github.com/bitfield/script#a-realistic-use-case
package main
- 'script' is for writing shell-like pipelines in Go
- script
-
Some Useful Patterns for Go's os/exec
Imho also worth mentioning: https://github.com/bitfield/script
What are some alternatives?
Vegeta - HTTP load testing tool and library. It's over 9000!
Go Metrics - Go port of Coda Hale's Metrics library
k6 - A modern load testing tool, using Go and JavaScript - https://k6.io
Gitea - Git with a cup of tea! Painless self-hosted all-in-one software development service, including Git hosting, code review, team collaboration, package registry and CI/CD
bombardier - Fast cross-platform HTTP benchmarking tool written in Go
Gogs - Gogs is a painless self-hosted Git service
anteon - Anteon (formerly Ddosify) - Effortless Kubernetes Monitoring and Performance Testing. Available on CLI, Self-Hosted, and Cloud
webhook - webhook is a lightweight incoming webhook server to run shell commands
grpcurl - Like cURL, but for gRPC: Command-line tool for interacting with gRPC servers
topip - IPv4 grep and top usage summary for log files
siege - Siege is an http load tester and benchmarking utility