Making it easy to play with Maestro

Maestro is a collection of tools that can be used for distributed performance testing. It is oriented towards testing of messaging oriented middleware (MOM), such as Apache ActiveMQ and its successor Apache Artemis , but can be extended to other performance test use cases.

Because Maestro forms a test cluster, it requires several components to run and deploying it can be tricky.

In order to simplify the development process as well as simplify it for users hoping to play with and run local tests, I created a set of containers (handled by Docker Compose) that can deploy a Maestro Test Cluster for local testing.

The process is extremely simple and you can go from 0 to the actual test execution in 3 commands (supposing docker-compose is already installed on your system):

1. Build and run the containers:

2.Run the client:

3. Execute a test (within the client):

After the test is completed, just point the browser to http://localhost:8000/ to read the report and view the details.

Additional details about this, such as how to tweak the tests or use a different messaging project, are available in this document within the Maestro Java source code.

 

Garmin Connect IQ on Fedora

Garmin Connect IQ is the SDK used to build applications and widgets for Garmin Devices such as the awesome Garmin Vivoactive 3.

Unfortunately, the package does not work on Fedora out of the box. In order to make it run, you have to take the following steps:

1. Install Gnucash (it is required because there’s no package for a compatible webkitgtk):

2. Export the path to the webkit library required (you might want to leave this on your shell profile or similar):

3. Install libjpeg8.

3.1 (Update) Enable this COPR and install libjpeg8 from there.

3.1 If you are using Fedora 27, you can install this RPM

3.2 If you are using Fedora 26, luck is on your side and you can just use the package from this COPR.

How to find the IP address of Linux guests

There’s a lot of examples in the internet showing how you can obtain the IP address of a libvirt guest virtual machine. Most of the examples show how to do that when the network is using NAT forwarding (aka “Virtual Networks”).

However, how to do that if your setup is using Bridged Networking and your guests receive an IP address from an external DHCP server?

One idea is to install the read the DHCP leases file straight from the guest FS. You can do that by using the libguestfs-tools to cat the file within the image. For RHEL 6 (and CentOS 6 and similar distributions) the process is similar to this:

For RHEL 7 (as well as CentOS 7 and similar) the process is slightly different due to the way NetworkManager stores the leases file:

In this Gist there’s a modified script I used to update the IP address of all guests in one shot.

My personal tips for a better Fedora experience

Fedora is a rock-solid stable, with a good selection of official and non-official packages. Just like many other distros, it still gives you the flexibility to adjust the system to your workflow. Here’s my basic steps to adjust it to my needs:

  1. Install Cinnamon
  2. Install Lightdm:
  3. Replace GDM with LightDM:
  4. Remove evolution and all evolution stuff:
  5. If you are Brazilian, using a US International keyboard, install Roberto’s cedilla patch to fix the annoying default behavior for cedilla.
  6. Install zsh and oh-my-zsh.

EOY 2016 links

Some links about interesting things I’ve read or watched by the end of 2016. Further comments are provided on each item of the list.

 

Google Sanitizers and Fedora 25

Here’s a tip if you are using Fedora and trying to use one of the Google Sanitizers with clang and is having problems doing so. One of the common problems is not being able to find libclang_rt.asan-x86_64.a:

This can be resolved by simply installing the compiler-rt package:

Restoring click method behavior on Fedora 25 and libinput

Here’s a quick tip if you need to enable the Software Button Area behavior on an Apple macbook running Fedora 25:

Some comments about this:

  1. You have to run it after every reboot
  2. There’s, probably, a better way to do this. Per documentation, it should be possible to set it up permanently by creating a file on /etc/X11/xorg.conf.d however I did not manage to create a file that works so far.

References:

 

SonarQube 5.6 upgrade

Overall tips for upgrade a SonarQube instance from 5.4 to 5.6 LTS.