README.md in instrumental_agent-0.6.0 vs README.md in instrumental_agent-0.6.1
- old
+ new
@@ -8,54 +8,78 @@
```sh
gem 'instrumental_agent'
```
-Visit instrumentalapp.com[instrumentalapp.com] and create an account,
+Visit [instrumentalapp.com](instrumentalapp.com) and create an account,
then initialize the agent with your API key, found in the Docs section.
-You'll probably want something like this, only enabling the agent in
-production mode so you don't pollute your data.
```sh
-I = Instrumental::Agent.new('YOUR_API_KEY', :test_mode => !Rails.env.production?)
+I = Instrumental::Agent.new('YOUR_API_KEY', :enabled => Rails.env.production?)
```
-You may want to setup two projects, so that you can verify stats in one,
-and release them to production in another.
+You'll probably want something like the above, only enabling the agent
+in production mode so you don't have development and produciton data
+writing to the same value. Or you can setup two projects, so that you
+can verify stats in one, and release them to production in another.
Now you can begin to use Instrumental to track your application.
```sh
-I.gauge('load', 1.23)
-I.increment('signups')
+I.gauge('load', 1.23) # value at a point in time
+I.increment('signups') # increasing value, think "events"
```
+**Note**: For your app's safety, the agent is meant to isolate your app
+from any problems our service might suffer. If it is unable to connect
+to the service, it will discard data after reaching a low memory
+threshold.
+
+## Backfilling
+
Streaming data is better with a little historical context. Instrumental
lets you backfill data, allowing you to see deep into your project's
past.
+When backfilling, you may send tens of thousands of metrics per
+second, and the command buffer may start discarding data it isn't able
+to send fast enough. We provide a synchronous mode that will ensure
+every stat makes it to Instrumental before continuing on to the next.
+
+**Warning**: You should only enable synchronous mode for backfilling
+data as any issues with the Instrumental service issues will cause this
+code to halt until it can reconnect.
+
```sh
-I.synchronous = true # disables command buffering
+I.synchronous = true # every command sends immediately
User.find_each do |user|
I.increment('signups', 1, user.created_at)
end
```
-Want some general server stats (load, memory, etc.)? Check out the instrumental_tools gem.
+## Server stats
+Want some general server stats (load, memory, etc.)? Check out the
+[instrumental_tools](https://github.com/fastestforward/instrumental_tools)
+gem.
+
```sh
gem install instrumental_tools
instrument_server
```
+## Rack middleware
+
Running under Rails? You can also give our experimental Rack middleware
a shot by initializing it with:
```sh
Instrumental::Middleware.boot
```
-Need to quickly disable the agent? set :enabled to false on initialization and you don't need to change any application code.
+Need to quickly disable the agent? set :enabled to false on
+initialization and you don't need to change any application code.
## Troubleshooting & Help
-We are here to help, please email us at [support@instrumentalapp.com](mailto:support@instrumentalapp.com).
+We are here to help, please email us at
+[support@instrumentalapp.com](mailto:support@instrumentalapp.com).