What is the best way to plot memory and CPU usage data (mainly) in Clojure? I will compare gnuplot, Incanter with JFreeChart, and vega-lite (via Oz). (Spoiler: I like Oz/vega-lite most but still use Incanter to prepare the data.) The data looks like this: ;; sec.ns | memory | CPU % 1541052937.882172509 59m 0.0 1541052981.122419892Continue reading “Clojure – comparison of gnuplot, Incanter, oz/vega-lite for plotting usage data”
Category Archives: [Dev]Ops
How good monitoring saved our ass … again
You know how it goes – suddenly people complain your app does not work, your are getting plenty of timeouts or other errors in your error tracking tool, you find the backend app that is misbehaving and finally “fix” the problem by restarting it. Phew! But why? What caused the downtime? A glitch an anContinue reading “How good monitoring saved our ass … again”
Monitoring process memory/CPU usage with top and plotting it with gnuplot
If you want to monitor the memory and CPU usage of a particular Linux process for a few minutes, perhaps during a performance test, you can capture the data with top and plot them with gnuplot. Here is how:
Why we love AWS Beanstalk but are leaving it anyway
Cross-posted from Telia’s Tech Blog. We have had our mission-critical webapp running on AWS Elastic Beanstalk for three years and have been extremely happy with it. However we have now outgrown it and move to a manually managed infrastructure and CodeDeploy. AWS Beanstalk provides you with lot of bang for the buck and enables youContinue reading “Why we love AWS Beanstalk but are leaving it anyway”
Pains with Terraform (perhaps use Sceptre next time?)
Cross-posted from Telia’s Tech Blog We use Amazon Web Services (AWS) heavily and are in the process of migrating towards infrastructure-as-code, i.e. creating a textual description of the desired infrastructure in a Domain-Specific Language and letting the tool create and update the infrastructure. We are lucky enough to have some of the leading Terraform expertsContinue reading “Pains with Terraform (perhaps use Sceptre next time?)”
Nginx: Protecting upstream from overload on cache miss
These 2 magical lines will protect your upstream server from possible overload of many users try to access the same in cached or expired content: proxy_cache_use_stale updating timeout; # Serve the cached version even when outdated while refreshing it proxy_cache_lock on; # Only one req is allowed to load/refresh the item, others wait / getContinue reading “Nginx: Protecting upstream from overload on cache miss”
Running Gor, the HTTP traffic replayer, as a service on AWS Elastic Beanstalk
Gor is a great utility for replicating (a subset of) production traffic to a staging/test environment. Running it on AWS Elastic Beanstalk (EB) has some challenges, mainly that it doesn’t support running as a daemon and that there isn’t any documentation/examples for doing this. Well, here is a solution:
AWS ebextensions: Avoiding “Could not enable service” (or .. disable ..)
If you are adding a service entry to your .ebextensions/ config to run a service in AWS Elastic Beanstalk and it fails with either “Could not enable service [..]” or “Could not disable service [..]” (based on the value of ensureRunning), make sure that the service init.d file supports chkconfig, i.e. contains the comments it looks for.
Fixing a mysterious .ebextensions command time out (AWS Elastic Beanstalk)
Our webshop, nettbutikk.netcom.no, runs on AWS Elastic Beanstalk and we use .ebextensions/ to customize the environment. I have been just trying to get Gor running on our leader production instance to replay some traffic to our staging environment so that we get a much richer feedback from it. However the container_command I used caused the instance to time out andContinue reading “Fixing a mysterious .ebextensions command time out (AWS Elastic Beanstalk)”
AWS: Passing private configuration to a Docker container (via S3)
Philipp Garbe describes how to pass environment variables that you want to keep private to a public Docker instance run on Amazon Web Services (beanstalk or ECS) in his post How to Run HuBot in Docker on AWS EC2 Container Services – Part 3. The trick is: Put them into an env.sh file that you canContinue reading “AWS: Passing private configuration to a Docker container (via S3)”