Bluemix Monitoring and Analysis – Diagnostics version

In this article I will show how to utilize some aspects of the paid Bleumix Monitoring and Analysis service to look inside the performance of your applications.

State of shock

I am in a state of shock, as I am writing this post I actually broke my application, and used these very tools to figure out why……………..COOL !!!


The paid version of Bluemix monitoring and analysis costs $0.03 per application her hour – which equates to about $21 a month per app. Once you turn this on it starts charging – and this is completely outside of the 375GB/Hour free cost. In a week I racked up $5 in charges cos I went away for an extended weekend.



I hooked that up to my application and immediately started to see more information about it than the free package


Clicking on the Diagnose button gives me access to more information about my slowest requests


Click on one of the request name options then shows me more information about the response time of that item



So how did I break the application?

I am putting together a websockets demo for MWLUG and as part of looking at this monitoring service I started to refresh my website repeatedly, quickly in multiple browsers. This blew up the application and it crashed


Out of memory……weird – how come?

Well as I look at the monitoring tools I can clearly see that the baseline application with no one using it – was hovering over 100M


So clearly we need to add more memory


All this preaching about scaling and paying for what you need is all well and good until you actually see it happen. In less than 30 seconds I have more memory applied


and after a quick restart – we can see that we are now not pushing the limit of allocated memory


This is fantastic – because I plan to do a live demo of this application in a room full of people next month – there is a really good chance that this would have crashed when 30 people connected to it – and now there isn’t – and that is freaking awesome !!!!



Bluemix Monitoring and Analytics – free service

In this article I will introduce the free IBM Bluemix Monitoring and Analytics service and show some of the available information.

Monitoring and Analytics

From the Bluemix Dashboard select one of your node applications and then “Add a new Service” – scroll down until you find the DevOps section and select Monitoring and Analysis.



There are two opens – Free and not Free, in this case we are going to select free.


Once added you have to restage the application




Once the application is restaged we can access the service from the dashboard – and initially there will be very little of interest/use.



But over time you will start to see information build up about how your application is performing within Bluemix. In this case I am using an example from – which if you click on the link you will find nothing – that is because I purposefully have nothing running on the root. What is fascinating is how the monitoring shows this and other interesting information.

Once you have added the service you can bind it to all your applications and it will monitor all of them separately.

Investigating a crash

Apparently the application crashed overnight



So I wondered what the monitoring said



Apparently the application went from zero CPU usage to DEAD right at 3:24am. But what is also really cool and apparent is that the application self healed and restarted itself – how freaking-cloud-cool is that !!


The application is never available – well that is as I would expect – the root has no node path responding to it. There are other routes within the application which work – but not that one.


Looking at the logs we can see that something happened but not much information as to what. I do not have any logging built into the application yet – but I will have to work on that.


Unfortunately the whole suite of monitoring is not available for XPages yet – I bound the service to my XPages application and all that was visible was he availability. This is still better than nothing.



The not free version

“You can use the Request Summary dashboard to identify the requests with the slowest response times and use the widgets to drill down and identify blockages. To open the Request Summary dashboard, open theMonitoring and Analytics service, click on the Performance tab and click Diagnose.”

Sounds interesting…….


Doing “DevOps” means constant monitoring of you application. The trick will be to take action based on the monitoring – we will see if we can do that and I will keep watching these logs over time to see what happens to the applications. Admittedly there are next to no users at all – but hey we will see.





XPages in Bluemix – Pushing new changes via Bluemix git repository

In this article I will look at modifying the out of the box boilerplate application and starting to look at the tooling around the new XPages in Bluemix capability. I will specifically talk about the use of the Bluemix integrated git repository.


In the previous article I walked through the basic steps of creating the boilerplate XPages application in Bluemix. So let’s look at what we created and how we can mess with it 🙂

The Dashboard

Looking at the dashboard for our new boilerplate application we can start to see a number of items. On the top right there is an option to Add Git


Continuing will create a git repository within the Bluemix integrated jazz hub repository. Once complete you will see a link to the new repo


Clicking on the link will take you to the repo page


We can immediately see from this image that it is not quite what we normally expect from a “source control repo” for XPages development. The entire NSF is part of the repo……but let’s go with it.

Click on the “Git URL” link to get the URL for the repo


I use source tree for this part of the process – Clone New and use the URL for the repo – you will have to log into IBM as well


Once complete you will have the repo locally – it can then be opened in Domino Designer

h7 h8


As we have seen before – we have the to do boilerplate application – to which we can add a new simple XPage




You must be using the notes ID provided by bluemix for your notes applications.

Build and then close the application in designer

Within Sourcetree – we commit the changes in the master branch and push to repo



Once that is complete we can refresh the jazz hub repo page and see the committed change


When we created this repo in Bluemix, the automatic build and deploy tasks were created as well – so clicking on the “Build and Deploy” tab on the top right takes us the deploy page where we can see this in action


Once that is complete we can go over to our application and there it is



Using this method we are able to upload a new XPage into the application without using the built in tooling in OpenNTF release v13


I did have a build issue, don’t know why (experimental code) but clicking the redeploy button fixed it.

Don’t forget to build before you send to Bleumix (duh Marky)

I am not sure I recommend this manner of deploying an application to Bluemix via this method – I just wanted to see if it was possible.




XPages in Bluemix – Looking at the application dashboard

In this article I will explain the XPages in Bluemix application dashboard and what is available to the developer from the Bluemix web interface.

The Dashboard

Once you have created your new XPages application in Bluemix it will appear on the “Dashboard” with a weird spacecraft for an icon.


Clicking on the box will review a lot about your application


Link to the application

Clicking on the link at the top left will open your application in a new window

Clicking on the pencil next to it allows you to edit and / or create an additional subdomain for the application (yes it can have many)


Add Git

Clicking on this link will automatically create a source control site for this application


Memory allocated ($$$)

By default the application has 512M allocated to it. Once XPages in Bluemix goes live this will become more significant – this is the number by which Bluemix determines how much you get charged each month. Throughout Bluemix you are charged by the GigaByte hour. That is the number of Gigabytes utilized by a running application each hour. so in this case 512M for an hour is 0.5 Gigabyte hours. Over a typical month that is 720 hours, or 360GBHours. The free allocation is typically 375hours. So this one application running for a month is all you would have “free”. You can reduce this value through the menu, but what you need will be based on your application. Right now (July 2015) XPages is free – keep an eye on it !!!

VCAP services

On the bottom of the smaller box for IBM XPages NoSQL Database you will see a down arrow – if you click on it you will see what are called the “VCAP” services. These are the Cloud Foundry Environmental Variables.

“Environment variables are the means by which the Cloud Foundry runtime communicates with a deployed application about its environment. This page describes the environment variables that Droplet Execution Agents (DEAs) and buildpacks set for applications.”


This JSON construct is critical to telling Bluemix how the XPages boilerplate application works. When you use the self selection to deploy the application all this information is created on the fly. Looking at the labels for the data they should be relatively self explanatory for a Domino developer.






XPages in Bluemix – where is the design and where is the data?

Digging into the code for the example database – aaaah memories – but I digress… normal I am mostly blogging this for my own notes and if someone else happens to get something out of it – great 😀

Design and Data are separate?

So the design and the data are separate – well kinda – in fact “some” of the design is separate and “all” of the data is. Following the instructions on how to deploy the starter code and mess with it I managed to change the database and add a new XPage.

BTW for those who cannot find “Start Coding” it is here….took me ages to find it in front of my nose


Notes client

So the database look like this in the notes client – pretty normal


and viewing the design of this database we can see forms, views and No XPages of worth


The data can be changed through the notes client and immediately represented on the website


The Design

Looking at the boilerplate code which was downloaded from starter code we can see – no data, no form, no views – but there are the XPages


New design elements

So I created a XPage in the Design database and followed the instructions on deploying the new code – it worked


Adding a new form to the VIEW database, failed.

Adding a new form to the DESIGN database worked just fine



Conclusion – So where is everything again?

Views and Data are in the NoSQL database

XPages and Forms and in the Design database

There is a lot to learn here……..and a lot of questions….

Creating my first true XPages in Bluemix application

In this post I will document my attempt to create my first XPages application in Bluemix. I will be following the documentation (ish) and also clicking around to see what happens. This was written July 2015 and is likely out of date soon after.


I installed the new ExtLib by downloading the last release, then in designer installing the new eclipse plugin. This is not necessary for the sake of this post but will be later.


Go to the Catalog, then scroll to the bottom and select “Looking for more”


Then from the next page select the XPages Web Starter



You will then get the screen to create the instance – over on the right give it a name – in this case I called it xpages


Select Create

and you will get a screen telling you it is being created




Click on the “Dashboard” link at the top


Click on the box for the new application (xpages in this case)


Then we click on our new application link at the top – and there we have it.




Setting up our first application was a very simple set of clicking options. This is cloud – self service deployment of services and capabilities.

XPages in Bluemix – Experimental is live

Finally – we have XPages in Bluemix. It is currently “Experimental” which means nothing is guaranteed to function as expected, it is basically a good Alpha made available to early adopters for testing. This means that at any time, things could change. The model, the process, the everything. So while there is much to learn, much to play with….

This is absolutely 100% NOT production ready

Here are the links to the documentation

  1. Building apps with the IBM XPages for Bluemix runtime
  2. Getting started with IBM XPages NoSQL Database for Bluemix
  3. The new OpenNTF ExtLib release


There is a lot to cover and I know a number of people are looking at it. XPages exists in Bluemix as two completely separate entities.

  1. The XPages runtime based on JSF
  2. The XPages NoSQL data store

Why are they not one NSF like normal??

Tony McGuckin explained it all to me in Orlando back In January. It was one of those surreal conversations where everything he said made sense as it came out of his mouth and yet at the end of the conversation I knew nothing more than – oooo that makes sense………and I am clearly now more stupid than I was 20 minutes ago. Hopefully he will be able to better explain to us some day. 

So here is what I think I understood – it is to do with the way that Cloud Foundry underpins Bluemix. The runtime container which is running on top of Bluemix has to be able to run without the NoSQL data piece. For the sake of uptime failover, scaling and other fundamental aspects of Cloud Foundry I don’t entirely understand, they are separate. A side aspect of this means that the runtime is not dependent on the Notes NSF structure to create applications.

As normal – I have way more questions than answers – so let’s get rocking 🙂