<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/rss2full.xsl" type="text/xsl" media="screen"?><?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/itemcontent.css" type="text/css" media="screen"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
  <channel>
    <title>Scout ~ The Blog</title>
    <link>http://blog.scoutapp.com/</link>
    <language>en-us</language>
    <ttl>40</ttl>
    <description>Scout ~ The Blog</description>
    <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/scoutapp" type="application/rss+xml" /><item>
      <title>Monitoring Amazon EC2 Instances</title>
      <description>&lt;p style="float:left"&gt;&lt;img src="http://scoutapp.com/images/uses/amazon_ec2.gif" alt="" /&gt;
Amazon&amp;#8217;s &lt;a href="http://aws.amazon.com/ec2"&gt;Elastic Compute Cloud (Amazon &lt;span class="caps"&gt;EC2&lt;/span&gt;) Service&lt;/a&gt; is changing how we approach computing infrastructure.  Scout is an ideal monitoring solution for Ruby on Rails application servers on &lt;span class="caps"&gt;EC2&lt;/span&gt; instances.&lt;/p&gt;


	&lt;h2&gt;Why use Scout for monitoring your &lt;span class="caps"&gt;EC2&lt;/span&gt; instances?&lt;/h2&gt;


	&lt;ul&gt;
	&lt;li&gt;Just a single line of code to add the client&lt;/li&gt;
		&lt;li&gt;No complicated scripts to configure &amp;#8211; choose what you want to monitor through the Scout web interface&lt;/li&gt;
		&lt;li&gt;Easy to re-use or view statistical data once an instance has terminated&lt;/li&gt;
	&lt;/ul&gt;


	&lt;h2&gt;Overview&lt;/h2&gt;


	&lt;p&gt;The basic process for &lt;span class="caps"&gt;EC2&lt;/span&gt; monitoring works like this: You create a new client that you want to use as a template . You can then clone this client (and all of its plugins) using the scout clone command, which can be added to the boot/startup script on your &lt;span class="caps"&gt;AMI&lt;/span&gt;.&lt;/p&gt;


	&lt;p&gt;Read on for the Step-by-Step.&lt;/p&gt;
&lt;h2&gt;Step-by-Step&lt;/h2&gt;


	&lt;p&gt;Create a new client using the Scout Web Interface:&lt;/p&gt;


	&lt;p&gt;&lt;img src="http://scoutapp.com/images/uses/new_client.gif" alt="" /&gt;&lt;/p&gt;


	&lt;p&gt;Install plugins on this client:&lt;/p&gt;


	&lt;p&gt;&lt;img src="http://scoutapp.com/images/uses/install_plugin.gif" alt="" /&gt;&lt;/p&gt;


	&lt;p&gt;Grab the client key of your newly created &amp;#8220;template&amp;#8221; from the Client Settings tab:&lt;/p&gt;


	&lt;p&gt;&lt;img src="http://scoutapp.com/images/uses/client_key.gif" alt="" /&gt;&lt;/p&gt;


	&lt;p&gt;Now, you can easily create a brand new client from your template using the scout clone command:&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;
scout clone [client-key] `hostname`
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;The output of the line above is a line for your crontab file, so you could simply add this to the bottom of the crontab:&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;
scout clone [client-key] `hostname` &amp;gt;&amp;gt; /etc/crontab
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;You&amp;#8217;re just one step away from automating the entire process by adding the scout gem dependency to your &lt;span class="caps"&gt;AMI&lt;/span&gt;, and even adding the scout clone line above to your startup scripts.&lt;/p&gt;


	&lt;p&gt;Here&amp;#8217;s my first version of our Scout install script to be run on boot of our Rails &lt;span class="caps"&gt;AMI&lt;/span&gt;:&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;
#!/bin/bash
# Scout Install / Setup Script

/usr/bin/gem install scout

CLONE_CLIENT_KEY = 6ecad312-0a17-3db1-9x2c-a12c45493fg # replace with your template client key
INTERVAL = 10
NEW_CLIENT_KEY = /usr/bin/scout clone $CLONE_CLIENT_KEY

# add to crontab:
echo "*/$INTERVAL * * * *   root   /usr/bin/scout $NEW_CLIENT_KEY" &amp;gt;&amp;gt; /etc/crontab
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;When your AMIs boot up, they&amp;#8217;ll be on the cloud, and under the watch of Scout.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/scoutapp/~4/326093301" height="1" width="1"/&gt;</description>
      <pubDate>Thu,  3 Jul 2008 12:53:00 CDT</pubDate>
      <guid isPermaLink="false">http://blog.scoutapp.com/articles/2008/07/03/monitoring-amazon-ec2-instances</guid>
      <link>http://feeds.feedburner.com/~r/scoutapp/~3/326093301/monitoring-amazon-ec2-instances</link>
      <category>HowTo</category>
      <category>Examples</category>
      <trackback:ping>http://blog.scoutapp.com/articles/trackback/34</trackback:ping>
    <feedburner:awareness>http://api.feedburner.com/awareness/1.0/GetItemData?uri=scoutapp&amp;itemurl=http%3A%2F%2Fblog.scoutapp.com%2Farticles%2F2008%2F07%2F03%2Fmonitoring-amazon-ec2-instances</feedburner:awareness><feedburner:origLink>http://blog.scoutapp.com/articles/2008/07/03/monitoring-amazon-ec2-instances</feedburner:origLink></item>
    <item>
      <title>Everything is easier with Scout Client 2.0</title>
      <description>&lt;p&gt;We&amp;#8217;ve released the 2nd version of our &lt;a href="http:scoutapp.com"&gt;Scout&lt;/a&gt; client. What I love about this release is that it doesn&amp;#8217;t make anything more complex or break compatibility with our first release. It just makes writing plugins easier.&lt;/p&gt;


	&lt;p&gt;For example &amp;#8211; lets say you want to generate an alert. How&amp;#8217;s this for simplicity?&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;
class INeedASandwich &amp;lt; Scout::Plugin
  def build_report
     alert(:subject =&amp;gt; "Get me a sandwich")
  end
end
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;We&amp;#8217;ve also made the process for managing memory (data stored on the client between runs of the plugin) easier to work with. Memory is a great tool for storing state.&lt;/p&gt;


	&lt;p&gt;For example:&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;
class INeedASandwich &amp;lt; Scout::Plugin
  def build_report
    if memory(:am_i_hungry)
      alert(:subject =&amp;gt; "Get me a sandwich")
      remember(:am_i_hungry =&amp;gt; false)
    else
      remember(:am_i_hungry =&amp;gt; true)
    end
  end
end
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;As always, updating to the latest release is as simple as:&lt;/p&gt;


&lt;div class="terminal"&gt;
&lt;strike&gt;gem install scout&lt;/strike&gt; [1]&lt;br /&gt;
gem install scout &amp;#45;&amp;#45;source http://gems.scoutapp.com/
&lt;/div&gt;

	&lt;ul&gt;
	&lt;li&gt;&lt;a href="http://scoutapp.com/plugin_urls/static/client_updates"&gt;Learn about the differences between v2 and v1&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href="http://scoutapp.com/plugin_urls/static/creating_a_plugin"&gt;View the updated HowTo Write a Plugin Article&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;[1] Rubyforge is slow to update, in the meantime, use our gem server mirror&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/scoutapp/~4/308021899" height="1" width="1"/&gt;</description>
      <pubDate>Mon,  9 Jun 2008 09:26:00 CDT</pubDate>
      <guid isPermaLink="false">http://blog.scoutapp.com/articles/2008/06/09/everything-is-easier-with-scout-client-2-0</guid>
      <link>http://feeds.feedburner.com/~r/scoutapp/~3/308021899/everything-is-easier-with-scout-client-2-0</link>
      <category>Updates</category>
      <trackback:ping>http://blog.scoutapp.com/articles/trackback/32</trackback:ping>
    <feedburner:awareness>http://api.feedburner.com/awareness/1.0/GetItemData?uri=scoutapp&amp;itemurl=http%3A%2F%2Fblog.scoutapp.com%2Farticles%2F2008%2F06%2F09%2Feverything-is-easier-with-scout-client-2-0</feedburner:awareness><feedburner:origLink>http://blog.scoutapp.com/articles/2008/06/09/everything-is-easier-with-scout-client-2-0</feedburner:origLink></item>
    <item>
      <title>Monitor MySQL queries with Scout</title>
      <description>&lt;p&gt;Robin Ward of &lt;a href="http://forumwarz.com/"&gt;Forumwarz&lt;/a&gt; has released a &lt;a href="http://scoutapp.com/plugin_urls/21-mysql-slow-queries"&gt;MySQL slow queries plugin for Scout&lt;/a&gt; that does exactly what you&amp;#8217;d expect: sends an alert when a slow query is run.&lt;/p&gt;


	&lt;p&gt;&lt;img src="http://img.skitch.com/20080606-gq95ajstbcynsai2e1h53e249t.jpg" alt="Scout &lt;sub&gt; Derek Laptop"/&gt;&lt;/p&gt;


	&lt;p&gt;The alert contains the full query along with the query time:&lt;/p&gt;


	&lt;p&gt;&lt;img src="http://img.skitch.com/20080606-x8s7mud989aymqcfxqbjyg6xr6.jpg" alt="Scout &lt;/sub&gt; Alert"/&gt;&lt;/p&gt;


	&lt;p&gt;Note that you&amp;#8217;ll need to enable slow query logging in your MySQL config file, but that&amp;#8217;s just a 2 line change. &lt;a href="http://scoutapp.com/plugin_urls/21-mysql-slow-queries"&gt;See the MySQL Slow Queries&lt;/a&gt; directory entry for more information.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/scoutapp/~4/306412663" height="1" width="1"/&gt;</description>
      <pubDate>Fri,  6 Jun 2008 17:36:00 CDT</pubDate>
      <guid isPermaLink="false">http://blog.scoutapp.com/articles/2008/06/06/monitor-mysql-queries-with-scout</guid>
      <link>http://feeds.feedburner.com/~r/scoutapp/~3/306412663/monitor-mysql-queries-with-scout</link>
      <trackback:ping>http://blog.scoutapp.com/articles/trackback/33</trackback:ping>
    <feedburner:awareness>http://api.feedburner.com/awareness/1.0/GetItemData?uri=scoutapp&amp;itemurl=http%3A%2F%2Fblog.scoutapp.com%2Farticles%2F2008%2F06%2F06%2Fmonitor-mysql-queries-with-scout</feedburner:awareness><feedburner:origLink>http://blog.scoutapp.com/articles/2008/06/06/monitor-mysql-queries-with-scout</feedburner:origLink></item>
    <item>
      <title>Meet our team at RailsConf</title>
      <description>&lt;p&gt;Charles, myself (Derek), and Andre are boarding a plan soon for RailsConf in Portland.&lt;/p&gt;


	&lt;p&gt;If you want to do a little coding, chat about monitoring, etc. &lt;a href="http://napkin.highgroove.com/articles/2008/05/28/say-hello-to-us-at-railsconf"&gt;look for us there!&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/scoutapp/~4/300657092" height="1" width="1"/&gt;</description>
      <pubDate>Thu, 29 May 2008 11:19:00 CDT</pubDate>
      <guid isPermaLink="false">http://blog.scoutapp.com/articles/2008/05/29/meet-our-team-at-railsconf</guid>
      <link>http://feeds.feedburner.com/~r/scoutapp/~3/300657092/meet-our-team-at-railsconf</link>
      <trackback:ping>http://blog.scoutapp.com/articles/trackback/31</trackback:ping>
    <feedburner:awareness>http://api.feedburner.com/awareness/1.0/GetItemData?uri=scoutapp&amp;itemurl=http%3A%2F%2Fblog.scoutapp.com%2Farticles%2F2008%2F05%2F29%2Fmeet-our-team-at-railsconf</feedburner:awareness><feedburner:origLink>http://blog.scoutapp.com/articles/2008/05/29/meet-our-team-at-railsconf</feedburner:origLink></item>
    <item>
      <title>Giving your web host access to your Scout account</title>
      <description>&lt;p&gt;A couple of times already, we&amp;#8217;ve seen users give their web host access to their &lt;a href="http://scoutapp.com"&gt;Scout&lt;/a&gt; account.&lt;/p&gt;


	&lt;p&gt;It&amp;#8217;s a big help when debugging problems &amp;#8211; especially things that a basic monitoring tool might not pick up (like &lt;a href="https://scoutapp.com/plugin_urls/3-ruby-on-rails-request-monitoring"&gt;slow web requests&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Click the &amp;#8216;People&amp;#8217; link in the header:&lt;/strong&gt;&lt;br/&gt;
&lt;img src="http://img.skitch.com/20080407-rb35p57kmurkew3789i8fisy65.jpg" alt="people link"/&gt;
&lt;br/&gt;&lt;br/&gt;
&lt;strong&gt;Select the &amp;#8216;Invite a New Person&amp;#8217; tab:&lt;/strong&gt;&lt;br/&gt;
&lt;img src="http://img.skitch.com/20080407-gd1317iqm9witdf3nrkik5g73m.jpg" alt="invite select"/&gt;
&lt;br/&gt;&lt;br/&gt;
&lt;strong&gt;Enter their email address and select the clients they need access to:&lt;/strong&gt;&lt;br/&gt;
&lt;img src="http://img.skitch.com/20080407-cu4jqy72krg6mr2ypda2mtqpty.jpg" alt="invite form"/&gt;
&lt;br/&gt;&lt;br/&gt;
Your web host&amp;#8217;s support team will now have read-only access to the clients you specified.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/scoutapp/~4/300645323" height="1" width="1"/&gt;</description>
      <pubDate>Thu, 29 May 2008 09:14:00 CDT</pubDate>
      <guid isPermaLink="false">http://blog.scoutapp.com/articles/2008/05/29/giving-your-web-host-access-to-your-scout-account</guid>
      <link>http://feeds.feedburner.com/~r/scoutapp/~3/300645323/giving-your-web-host-access-to-your-scout-account</link>
      <category>HowTo</category>
      <trackback:ping>http://blog.scoutapp.com/articles/trackback/10</trackback:ping>
    <feedburner:awareness>http://api.feedburner.com/awareness/1.0/GetItemData?uri=scoutapp&amp;itemurl=http%3A%2F%2Fblog.scoutapp.com%2Farticles%2F2008%2F05%2F29%2Fgiving-your-web-host-access-to-your-scout-account</feedburner:awareness><feedburner:origLink>http://blog.scoutapp.com/articles/2008/05/29/giving-your-web-host-access-to-your-scout-account</feedburner:origLink></item>
    <item>
      <title>How we handle background jobs</title>
      <description>&lt;p&gt;We run background jobs on our Scout servers. Lots of them.&lt;/p&gt;


	&lt;p&gt;As we&amp;#8217;ve grown, they&amp;#8217;ve used dramatically more resources. We needed a way to simmer them down. Most of these jobs load the entire Rails environment &amp;#8211; that&amp;#8217;s a hefty overhead.&lt;/p&gt;


	&lt;p&gt;We&amp;#8217;ve modified how we run background jobs and we&amp;#8217;re seeing great results. If you&amp;#8217;re interested in what we did, &lt;a href="http://napkin.highgroove.com/articles/2008/05/21/running-background-jobs-in-ruby-on-rails-revisited"&gt;checkout Charles&amp;#8217; post on our Highgroove blog&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;And finally, here&amp;#8217;s the obligatory semi-promotional graph, generated by Scout, of how the load dramatically decreased after implementation:&lt;/p&gt;


	&lt;p&gt;&lt;img src="http://img.skitch.com/20080522-rdi4iiruxadunkf3cqjpqxa6ex.jpg" alt="Scout ~ Edit Graph"/&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/scoutapp/~4/295902352" height="1" width="1"/&gt;</description>
      <pubDate>Thu, 22 May 2008 10:24:00 CDT</pubDate>
      <guid isPermaLink="false">http://blog.scoutapp.com/articles/2008/05/22/how-we-handle-background-jobs</guid>
      <link>http://feeds.feedburner.com/~r/scoutapp/~3/295902352/how-we-handle-background-jobs</link>
      <category>HowTo</category>
      <trackback:ping>http://blog.scoutapp.com/articles/trackback/30</trackback:ping>
    <feedburner:awareness>http://api.feedburner.com/awareness/1.0/GetItemData?uri=scoutapp&amp;itemurl=http%3A%2F%2Fblog.scoutapp.com%2Farticles%2F2008%2F05%2F22%2Fhow-we-handle-background-jobs</feedburner:awareness><feedburner:origLink>http://blog.scoutapp.com/articles/2008/05/22/how-we-handle-background-jobs</feedburner:origLink></item>
    <item>
      <title>Scout Client 2.0 is on the Horizon</title>
      <description>&lt;p&gt;We&amp;#8217;ve been working on two major features that we&amp;#8217;re sure will be a hit, and that we can&amp;#8217;t wait to talk about:&lt;/p&gt;


	&lt;p&gt;1) Easier Plugin Creation&amp;#8212;there&amp;#8217;s a reason we love Ruby, and not just because it&amp;#8217;s such a powerful language for talking to external system processes and manipulating strings (as pointed out by &lt;span class="caps"&gt;JEG2&lt;/span&gt; in our &lt;a href="http://www.rubyinside.com/scout-a-ruby-powered-web-monitoring-and-reporting-service-825.html"&gt;RubyInside debut&lt;/a&gt;).  Ruby makes writing powerful code down-right simple through a very natural language.  And with our new plugin code helpers and syntax, you can write a plugin like this:&lt;/p&gt;


&lt;pre&gt;
&lt;code&gt;
my_output = `run some wild script here`
remember(:last_time_output =&amp;gt; my_output)
report(:data =&amp;gt; my_output)
if my_output ~= /Error/
  alert("An Error Occurred", "Details: #{my_output}")
end
&lt;/code&gt;
&lt;/pre&gt;

	&lt;p&gt;And that&amp;#8217;s not all.  We&amp;#8217;ve built a clearer syntax for how you invoke Scout, and how you interact with options and how you can store your own settings and report your own data.&lt;/p&gt;


	&lt;p&gt;2) Automatic Client Provisioning&amp;#8212;if you have any servers in the cloud, or just more than one server, you already know how easy it is to install Scout (one liner to install and another to setup), but it just got easier than that.  You can now automatically provision clients using the scout client itself.  I know, crazy-talk, but watch.  On bootup, of our Amazon &lt;span class="caps"&gt;EC2&lt;/span&gt; instance, we&amp;#8217;ll just run:&lt;/p&gt;


&lt;pre&gt;
&lt;code&gt;
scout clone [client-key] `hostname` &amp;gt;&amp;gt; /etc/crontab
&lt;/code&gt;
&lt;/pre&gt;

	&lt;p&gt;And we&amp;#8217;ve just setup a new client on scout, with all our pre-configured plugins, cloned from another client, and the name of our hostname, setup to run on our interval.&lt;/p&gt;


	&lt;p&gt;If you&amp;#8217;re interested in helping us beta test the new 2.0 version of our client, you can install it from our beta-gems server:&lt;/p&gt;


&lt;pre&gt;
&lt;code&gt;
sudo gem install scout --source http://beta-gems.scoutapp.com/
&lt;/code&gt;
&lt;/pre&gt;

	&lt;p&gt;Let us know what you think.  Be sure to check the &lt;a href="http://beta-gems.scoutapp.com/docs/"&gt;README&lt;/a&gt; to find out more details on what&amp;#8217;s new.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/scoutapp/~4/287124549" height="1" width="1"/&gt;</description>
      <pubDate>Fri,  9 May 2008 15:20:00 CDT</pubDate>
      <guid isPermaLink="false">http://blog.scoutapp.com/articles/2008/05/09/scout-2-0-is-on-the-horizon</guid>
      <link>http://feeds.feedburner.com/~r/scoutapp/~3/287124549/scout-2-0-is-on-the-horizon</link>
      <category>Features</category>
      <trackback:ping>http://blog.scoutapp.com/articles/trackback/28</trackback:ping>
    <feedburner:awareness>http://api.feedburner.com/awareness/1.0/GetItemData?uri=scoutapp&amp;itemurl=http%3A%2F%2Fblog.scoutapp.com%2Farticles%2F2008%2F05%2F09%2Fscout-2-0-is-on-the-horizon</feedburner:awareness><feedburner:origLink>http://blog.scoutapp.com/articles/2008/05/09/scout-2-0-is-on-the-horizon</feedburner:origLink></item>
    <item>
      <title>How To Customize a Scout Plugin</title>
      <description>&lt;p&gt;Since &lt;a href="http://scoutapp.com/plugin_urls"&gt;Scout Plugins&lt;/a&gt; are open source, it&amp;#8217;s easy to modify them to fit your needs.&lt;/p&gt;


	&lt;p&gt;Here&amp;#8217;s a quick way to create a custom version of a Scout plugin.&lt;/p&gt;


	&lt;h2&gt;1. Grab the current plugin and options&lt;/h2&gt;


The code:
&lt;pre&gt;
&lt;code&gt;
curl http://plugins.scoutapp.com/mongrel_cluster_monitor/trunk/mongrel_cluster_monitor.rb \ 
&amp;gt; mongrel_cluster_monitor.rb
&lt;/code&gt;
&lt;/pre&gt;

The options:
&lt;pre&gt;
&lt;code&gt;
curl http://plugins.scoutapp.com/mongrel_cluster_monitor/trunk/mongrel_cluster_monitor.yml \ 
&amp;gt; mongrel_cluster_monitor.yml
&lt;/code&gt;
&lt;/pre&gt;

	&lt;h2&gt;2. Edit the plugin code and test&lt;/h2&gt;


&lt;pre&gt; 
scout -p /path/to/customized/mongrel_cluster_monitor.rb \
-o '{"mongrel_cluster_configuration_dir"=&amp;gt;"/etc/mongrel_cluster"}' \
-v -l debug
&lt;/pre&gt;

	&lt;p&gt;That says, use the &lt;code&gt;-p option (or --plugin)&lt;/code&gt; and the &lt;code&gt;-o (or --option)&lt;/code&gt; to
test locally, passing these options, be verbose &lt;code&gt;(--verbose)&lt;/code&gt; and
set the log level to debug &lt;code&gt;(--log-level debug)&lt;/code&gt;.&lt;/p&gt;


	&lt;p&gt;Note that you could also add your own &amp;#8220;option&amp;#8221; there, as the path to
one of the configuration files&amp;#8230;.  however you want to do it.&lt;/p&gt;


	&lt;h2&gt;3. Host the Plugin&lt;/h2&gt;


	&lt;p&gt;&lt;img src="http://img.skitch.com/20080509-deu93s7qbgknqkuc8f8d1p9nkk.jpg" alt="Scout ~ Bristol"/&gt;&lt;/p&gt;


	&lt;p&gt;Then, all you have to do is make that plugin and its options file (of
the same name) &lt;span class="caps"&gt;URL&lt;/span&gt; accessible (put it in your rails public dir,
perhaps, or on another server) for the scout server to be able to grab
it when you install.  When you install, choose, Manual&amp;#8212;and type in
the &lt;span class="caps"&gt;URL&lt;/span&gt; to your new customized version
(http://highgroove.com/new_customized_single_mongrel.rb for
example).&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://scoutapp.com/plugin_urls/static/creating_a_plugin"&gt;More on creating plugins&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/scoutapp/~4/286459577" height="1" width="1"/&gt;</description>
      <pubDate>Thu,  8 May 2008 17:20:00 CDT</pubDate>
      <guid isPermaLink="false">http://blog.scoutapp.com/articles/2008/05/08/how-to-customize-a-scout-plugin</guid>
      <link>http://feeds.feedburner.com/~r/scoutapp/~3/286459577/how-to-customize-a-scout-plugin</link>
      <category>HowTo</category>
      <trackback:ping>http://blog.scoutapp.com/articles/trackback/29</trackback:ping>
    <feedburner:awareness>http://api.feedburner.com/awareness/1.0/GetItemData?uri=scoutapp&amp;itemurl=http%3A%2F%2Fblog.scoutapp.com%2Farticles%2F2008%2F05%2F08%2Fhow-to-customize-a-scout-plugin</feedburner:awareness><feedburner:origLink>http://blog.scoutapp.com/articles/2008/05/08/how-to-customize-a-scout-plugin</feedburner:origLink></item>
    <item>
      <title>Plugin Code is now cached</title>
      <description>&lt;p&gt;One of the things people like most about &lt;a href="http://scoutapp.com"&gt;Scout&lt;/a&gt;: the plugin code your clients execute is downloaded via a plain-vanilla &lt;span class="caps"&gt;HTTP&lt;/span&gt; or &lt;span class="caps"&gt;HTTPS&lt;/span&gt; connection &lt;a href="http://plugins.scoutapp.com/memory_profiler/trunk/memory_profiler.rb"&gt;like this one&lt;/a&gt;. This means you can simply update the plugin code once, and any clients that run the plugin grabs the new code. You don&amp;#8217;t have to manually install scripts on each monitored server.&lt;/p&gt;


	&lt;p&gt;But what happens if the web server hosting the plugin code isn&amp;#8217;t available? What if you are running a plugin someone else developed and they change the plugin code?&lt;/p&gt;


	&lt;p&gt;We&amp;#8217;ve got you covered. Scout now caches the plugin code when you add a plugin to a Scout Client. By default, Scout locks to the version of the code available when the plugin was installed. However, you can override this and have Scout automatically grab the latest version. You can also perform a one-time update.&lt;/p&gt;


	&lt;p&gt;We check for code updates every 5 minutes, so &lt;b&gt;if you are debugging a new plugin you developed, click the &amp;#8220;Update Code&amp;#8221; button when you push out a change to instantly refresh the code&lt;/b&gt;.&lt;/p&gt;


	&lt;p&gt;Read on for screenshots.&lt;/p&gt;
&lt;p&gt;The new setting is on the &lt;strong&gt;Edit Plugin&lt;/strong&gt; page:&lt;/p&gt;


	&lt;p&gt;&lt;img src="http://img.skitch.com/20080427-tts3ikd1hpxdhy2y41e93pm8wm.jpg" alt="Scout &lt;sub&gt; Bristol"/&gt;&lt;/p&gt;


	&lt;p&gt;You can manually update the code on the &lt;strong&gt;Plugin Code&lt;/strong&gt; page:&lt;/p&gt;


	&lt;p&gt;&lt;img src="http://img.skitch.com/20080427-r1usiea1sy89r3ckscnfq8k6x.jpg" alt="Scout &lt;/sub&gt; Bristol"/&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/scoutapp/~4/279839851" height="1" width="1"/&gt;</description>
      <pubDate>Tue, 29 Apr 2008 00:00:00 CDT</pubDate>
      <guid isPermaLink="false">http://blog.scoutapp.com/articles/2008/04/29/plugin-code-is-now-cached</guid>
      <link>http://feeds.feedburner.com/~r/scoutapp/~3/279839851/plugin-code-is-now-cached</link>
      <category>Features</category>
      <trackback:ping>http://blog.scoutapp.com/articles/trackback/27</trackback:ping>
    <feedburner:awareness>http://api.feedburner.com/awareness/1.0/GetItemData?uri=scoutapp&amp;itemurl=http%3A%2F%2Fblog.scoutapp.com%2Farticles%2F2008%2F04%2F29%2Fplugin-code-is-now-cached</feedburner:awareness><feedburner:origLink>http://blog.scoutapp.com/articles/2008/04/29/plugin-code-is-now-cached</feedburner:origLink></item>
    <item>
      <title>Recording Historical Data in Scout </title>
      <description>&lt;p&gt;By default, when you create a report in &lt;a href="http://scoutapp.com"&gt;Scout&lt;/a&gt;, we assume that the data corresponds to the time the report was submitted.&lt;/p&gt;


	&lt;p&gt;Sometimes this isn&amp;#8217;t the case &amp;#8211; for example, &lt;a href="http://scoutapp.com/plugin_urls/7-feedburner-stats"&gt;you can retrieve the number of subscribers to your &lt;span class="caps"&gt;RSS&lt;/span&gt; feeds in Feedburner&lt;/a&gt;, but not from the current day.&lt;/p&gt;


	&lt;p&gt;You can override the time Scout records the data in a Plugin with the special :scout_time report key.&lt;/p&gt;


	&lt;p&gt;Here&amp;#8217;s an example:&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;
# typical report data 
{:circulation =&amp;gt; 1000}

# correspond the data w/ February 24, 2008
{:circulation =&amp;gt; 1000, :scout_time =&amp;gt; Time.parse("2/24/08")}
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;When displaying the data on a graph, the data will be shown on 2/24 and not the current date:&lt;/p&gt;


	&lt;p&gt;&lt;img src="http://img.skitch.com/20080226-nfmser3xf5np2akm7hpas6ucsf.jpg" alt="Scout ~ Derek Laptop"/&gt;&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://scoutapp.com/plugin_urls/static/creating_a_plugin"&gt;Learn more about creating Scout Plugins&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/scoutapp/~4/279479146" height="1" width="1"/&gt;</description>
      <pubDate>Mon, 28 Apr 2008 08:35:00 CDT</pubDate>
      <guid isPermaLink="false">http://blog.scoutapp.com/articles/2008/04/28/recording-historical-data-in-scout</guid>
      <link>http://feeds.feedburner.com/~r/scoutapp/~3/279479146/recording-historical-data-in-scout</link>
      <category>HowTo</category>
      <trackback:ping>http://blog.scoutapp.com/articles/trackback/6</trackback:ping>
    <feedburner:awareness>http://api.feedburner.com/awareness/1.0/GetItemData?uri=scoutapp&amp;itemurl=http%3A%2F%2Fblog.scoutapp.com%2Farticles%2F2008%2F04%2F28%2Frecording-historical-data-in-scout</feedburner:awareness><feedburner:origLink>http://blog.scoutapp.com/articles/2008/04/28/recording-historical-data-in-scout</feedburner:origLink></item>
  <feedburner:awareness>http://api.feedburner.com/awareness/1.0/GetFeedData?uri=scoutapp</feedburner:awareness></channel>
</rss>
