CakePHP Status Dashboard - Everything You Need To Know About Your App On One Page

Posted by Matt on Mon, Jul 06 2009

Beta

First off this thing is still pretty rough. I don't have any unit tests at the moment and I'm likely to make huge, wholesale changes on a whim.

Download

Get it at GitHub

What The Heck Is This Thing?

You build a cool CakePHP app and now you have to maintain it. You go to Google to check your analytics; you SSH to your system to check log files; You log into your web admin to check affiliate clicks... Wouldn't it be cool if you could check all this (and more) from one page? That's what this status plugin does. Check out the screenshot:
CakePHP Status Dashboard

Or visit this live (but admittedly boring) example.

What Are The Different Panels Available?

Right now there are four "core" widgets, some of which have multiple options, so they can produce multiple panels.

Google Analytics

Multiple panels for quick info on your visits, referrers and search engine keywords using the Google Analytics API. Adjustable timeframes to get a recent or long range snapshot.

Shells

Add logging to your shells to capture info when they run - great for shells that run from cron. Clicking on the shell link in the panel pops open a window with detailed information. Requires integrating the log task in your shell.

System

Basic information about the system hardware, including disk space and uptime.

Logs

Show Cake's log files. Can be used on any log file in /app/tmp/logs, including custom ones. Just pass the log file name(s).

Extending For Custom Panels

It's pretty easy to write your own custom panels. Check out the click plugin, which tracks outbound clicks and displays the results via panels in the status dashboard. I'll write full post on how to code your own panels in bit.

Posted in GitHub

16 Comments

Jonah Turnquist said on Jul 06, 2009
This is really cool.. kudos
iammikek said on Jul 07, 2009
this is very nice. looks a bit like mint stats but obviously stats is stats. top work.
Matt said on Jul 07, 2009
Yea, Mint was the inspiration.
Shawn Poulson said on Jul 07, 2009
Very cool!
Mark Story said on Jul 07, 2009
Nice stuff matt :)
jlarmstrong said on Jul 07, 2009
Nice plugin, though the CSS isn't working properly within Chrome. You get 2 columns with everything overlapped unless you expand your window up to 2048px. It does work properly in IE7, IE8 and firefox 3.5
Matt said on Jul 07, 2009
Thanks, I see the same thing. Probably an issue with the javascript arranging thing. I tried to mimic Mint's smart organizing of the panels to maximize space, so that depending on the screen size it'll always fill in.
Sam said on Jul 07, 2009
Yet another great plugin.
dave rupert said on Jul 07, 2009
good work. how do you keep shelling out such bad-assery!?!?
Miles J said on Jul 07, 2009
Looks pretty legit, I should give it a go on one of my high traffic sites.
Jojo Siao said on Jul 08, 2009
Hey,

This is very cool! I want to try it on my personal web app project.
Will said on Apr 29, 2010
Hi Mat, I'm having a few problems with this on upgrading a working site to cake1.3. Have you used the status plugin with 1.3? basicly cake dosn't really seem to know where things are anymore, so css and js assets arn't found if left in the plugin vendor folder, and this code:

$.get("/status/google_analytics/<?php echo $options ?>/" + $("#<?php echo $key ?>-span").val(), function(data) {
$("#<?php echo $key ?>").html(data);
});

results in some sort of white page of death redirect, after flashing up the page with i think a cake error page, maybe a can;t find controller error, who know? it vanishes too quick to see :(

Any ideas? is there some sort of plugin config i need to do? i know cake has a new way to set plugin locations, but i have put this in the standard app/plugins folder.

Will
Matt said on Apr 29, 2010
Hey Will,
This plugin hasn't been updated to 1.3 yet. Soon I hope. Keep an eye on the GitHub repo.
will said on May 05, 2010
hay mat, no worries. i finaly figured it out! :)

the paths to the analytics actions need to have the controller in them now, so these lines are now:

$.get("/status/status/google_analytics/<?php echo $options ?>/" + $("#<?php echo $key ?>-span").val(), function(data) {

and

$.get("/status/status/google_analytics/<?php echo $options ?>/" + $(this).val(), function(data) {

note the double /status no idea why.

liam said on Jun 13, 2010
This plugin looks great.

How can i get notified when its gets updated for 1.3?
Matt Kaufman said on Aug 22, 2010
Great website (and also the amazing Cake Status *plugin* you have here).

Thanks for providing this. PS I remember your site being useful as well many years ago (okay like 2 or so.) Glad to see that you are still a Cake programmer.... :).

Thanks,
Matt

Add new comment