My name is Philipp von dem Bussche-Hünnefeld and I am a Solution Architect in Germany.
No, there is not a typo in the title of this post. I use Foglight to monitor my cousin’s newborn baby. Yes…that’s kind of weird. I admit it. But, I love my job and my family…so it was kind of cool to see how they could come together in a useful way.
Enjoy the read.
While talking about monitoring with customers or colleagues we seem to focus on the obvious use cases for monitoring. According to Gartner, IT companies will see themselves in a challenge of creating a performance management database (PMDB) over the next years. This means that those companies (for the success of their business) will have to look deep into their IT applications and resulting business performance rather than just looking at status and availability of any hardware infrastructure. As an experienced architect who has consulted with companies around the world about how to implement APM solutions I feel quite senior when talking about monitoring requirements around this space but as a single being in the end of my twenties I felt like a school boy when I was thinking about a way to monitor a new born baby. Ever since my cousin’s daughter was born around 3 months ago I've been thinking of ways that I could support the parents in raising their child. Maybe I am spending too much time with Quest's monitoring solution but while standing in front of the playpen with my cousin, I found myself dreaming of holding a presales meeting to answer a number of critical customer questions:
- How can you monitor a baby from end to end (or rather, from head to toe)?
- Do you do passive monitoring (we don't want to harm the child)?
- Can you issue a proper action while any of the thresholds are violated (we may have to change the diapers when the baby continues to cry and feeding which was our first action but was not resulting in the expected behaviour)?
I ended up studying the baby. While being very young a human seems to do only a few things: mainly sleep and eat. Making a mess as a result of eating happens a lot too, but let’s keep this post clean.
Eating is at least as important as sleeping because eating means that the baby will grow and eventually become an APM consultant one day.
So I thought that I will focus on the eating part. Unfortunately, I found out that kids won't speak clearly to state their case, which is why I had to automate the process of discovering the state when a baby wants to have food. I finally found out that a baby starts moving before crying for food and there I had my first requirement: I needed to detect the motions of the child and if it’s more than a certain value, then the baby will soon let everyone know acoustically that it is time for lunch. So I had to create an agent that will use whatever device to record the motions of the baby and compare them for difference.
I ended up with a SPID based Foglight Java agent that is using a video appliance to do just that. Well in fact, the video appliance is a Logitech USB Webcam and the agent is using the Java Media Framework (JMF) API to talk to the camera and detect motions. I found a few utility classes on the Internet where someone was using the framework to compare images and some wrapper classes from another person which makes it even easier to react on motions (this last person needed something for managing his Lego robots, which I think is a very unusual use case). As a result I now have a Foglight Type 2 agent that is constantly detecting motions and it will send the motion count back to Foglight after the configurable sample frequency. Besides that, the agent takes two more properties: the name of the baby and an upload directory which is a web server directory to store the snapshots of the moving baby.
I built a Foglight dashboard that reflects the motion count as well as shows the last snapshot of the baby (helpful if you have to do remote baby-sitting). So now I had the technical answer to my first requirement, but I had to interpret it correctly. Therefore, I created a derived metric that looks at the motion activity and, from that, calculate a baby status. While sitting in front of the baby for hours I found out that this either can be "I am sleeping", "I am just looking around", or "I am hungry!!!". So this is what I ended up with.

All that has been described above forms the first version of my Foglight Baby Monitor. But after telling colleagues and customers about this I ended up with requirements for the next release. Sound support was requested as there are basically two sounds that the baby makes currently, but with the second, being a much louder one, we have to react because then it is crystal clear that it is feeding time! There might, of course, be a second reason for a baby to cry. But this would put me in a much more difficult situation: how do I navigate a robotic arm that smoothly wraps a new diaper around a fragile new born?
I will let you know as soon as I have the answer.