Annotations are a powerful tool for correlating your metrics to aperiodic events such as when you deploy software, run an integration test, or turn on a water sprinkler.

Every annotation event is associated with a single named annotation stream, analogous to how multiple measurements are associated with the named metric they belong to. For example, you might have an annotation stream named ux-app-deploys to track deployments to your UX application and another annotation stream api-app-deploys to track deploys to your API application.


An annotation event can also include an end time to represent an event that spanned a duration of time. For example, a batch job that ran for five minutes would set the annotation event’s start time when the job started and update the annotation event with an end time when the job completed. Annotation events that include an end time will be displayed with their start and end times as connected vertical lines on graphs.

This simple curl POST to the Librato API creates an annotation event titled Annotation 2 on the annotation stream annotations-demo:

curl \
  -d "start_time=${TIME_NOW}" \
  -d "title=Annotation 2" \
  -d "description=Second Annotation" \
  -d "links[0][rel]=cnn" \
  -d "links[0][label]=CNN News Site" \
  -d "links[0][href]=" \

Multiple annotation events can be added to a graph by selecting the name of the annotation stream, similar to selecting a metric name. Edit the chart, click on “Add More Metrics”, then on the triangle in the “Metrics” button. The pull-down menu that opens allows you to select “Events”.


After adding the annotation to the chart, it will show up as an additional row together with the metrics streams. Make sure the annotation is set to All (it should default to that).