Building and Running the IBM mq_prometheus collector on Windows

IBM provides a sample “MQ Exporter for Prometheus monitoring” on GitHub. (the original article introducing this sample can be found here on the IBM Community site)

A simple graphical overview illustrates the overall monitoring setup:

The “collector” will retrieve statistics from the IBM MQ queue manager using PCF. It will expose them over HTTP to Prometheus. Prometheus scrapes the metrics and stores them in its database. Grafana is used for showing the data on a dashboard (also available in the samples provided by IBM).

The “collector” is written in GO, we only need to build it from the source in order to use it.

Building the collector for Windows

Install go ( )
Install tdm-gcc ( )
Install full mq client for windows ( )

git clone c:\src
cd c:/src/cmd/mq_prometheus
go build -o ./bin/mq_prometheus.exe

Running the collector

The mq_prometheus.exe binary takes a configuration file using the -f parameter. In this file (a combination of the config.collector.yml and config.common.yml sample) you can specify the connection details and the objects you want to monitor.

Important to understand is that you can only monitor a single queue manager at a time. If you have multiple queue managers you want to monitor, you’ll need multiple instances of the collector each with their own config file.

mq_prometheus.exe -f config.qm01.yaml

Scraping with Prometheus

Let’s say I have 5 queue managers. This results in 5 collectors that are exposing metrics on a different port. In your Prometheus config, you will need to add the address + port of these endpoints. Prometheus will start scraping the metrics once started.

Dashboards with Grafana

The final step is to link Grafana to your Prometheus instance and import a dashboard. The “MQ Prometheus-1541759594068.json” dashboard is a nice start to explore the available metrics, it gives you a global overview of your queue managers.


The next logical step is to configure the Prometheus AlertManager. Now that we have all our metrics in Prometheus and are able to explore them with Grafana, we can better understand them and build alerts and do something useful with the data.

BizTalk Server 2020 Developer VM in Azure

As of today, there is still no BizTalk Server 2020 Developer VM image available in Azure.

So, what do we need to do to configure a developer environment in Azure?

Here are some easy steps to get you up to running in no time:

Disclaimer: an MSDN subscription is required to make use of developer licenses.

Step 1: Create a new VM based on the “SQL Server 2017 on Windows Server 2016 image”:

Why? It is possible to assign this image a “free developer license”. This image also comes with SQL Server 2017 (and Management Studio) installed and preconfigured.

Step 2: Download and install Visual Studio 2019 Professional

Step 3: Download, install and Configure BizTalk Server 2020 Developer Edition from MSDN.

Step 5: Install the BizTalk Server Developer tools (more info there)

Install the BizTalk Server extension to use the developer tools

NEW: With Visual Studio 2019 and BizTalk Server 2020, the Developer tools are now installed using a separate plugin.

Conclusion: In 5 easy steps, my development environment was ready in about 2 hours. The VM size used was a “Standard D4s v3 (4 vcpus, 16 GiB memory)”.

Qualities of a Highly Effective Architect

Recently I came across an excellent talk from Devoxx 2019: Qualities of a Highly Effective Architect by Venkat Subramaniam.

Link to slides (PDF)

In this talk, Venkat discusses 12 qualities an effective architect should have. Also, he mentions an old article by Martin Fawler called “Who needs an architect“.

Both the talk and the article are great resources to understand what an architect is and what qualities he should possess.