Using Keen.io for your 2017 goals

2017 just started, and it’s time to renew your “annual goals”. Mine for example always include things around the lines of:

  • Read x number of books.
  • Run x number of miles (kms actually) per week/month/year.
  • Write x number of posts.
  • [ big etc here ]…

For tracking my goals, I’ve been very comfortably using a Google spreadsheet and it’s been working wonders. But this year, I’ll try something different. I decided to give some analytics platform a chance. The thing is that analytics platforms have been improving and making themselves so flexible, that I believe that it actually makes sense to use them more and more for personal data (hours of sleep, weight, etc, etc…).

I happen to stumble across keen.io again, and was very pleased with the amount of things you can do with it, and how simple it is to set it up. So I decided to give it a try. I did an awfully simple script in node.js and installed it as a command line so I can pull my terminal and quickly track things in keen. The result looks like this:

code/metrics » keen weight 96.5
Recording "weight" with value 96.5
Success
code/metrics »

If you wonder how I did it, it’s extremely simple. Here’s the script:

#!/usr/bin/env node
var KeenTracking = require('keen-tracking');
var client = new KeenTracking({
projectId: '5...2', // use your projectId here
writeKey: '2...........7' // user your writeKey here
});
var [ type, value ] = process.argv.slice(2);
var numValue = Number(value);
if (value == numValue) { //comparing number to string on purpose
value = numValue;
}
console.log(`Recording "${type}" with value ${value}`);
// Record an event
client.recordEvent(type, {
value
}, function (err) {
if (err) {
console.log('An error occurred trying to record the event', err);
} else {
console.log('Success');
}
process.exit();
});

I installed the keen-tracking module with the following command:

yarn add keen-tracking

I configured the package.json so that it can be treated like a cli app:

{
"name": "keen",
"bin": "./index.js",
"dependencies": {
"keen-tracking": "^1.1.3"
}
}

Installed it globally with npm link.

Now all you have to do is play around with keen.io saved queries and dashboard so can see all your data nicely!