anchor.diff:  }
   ----------------------------------------------------------------------
   
  -==== Run
  +[[run-method]]
  +==== Run Method
   
   The `Run` method should contain your main application loop. For Topbeat it looks
   like this:
  
positive.code: <2> Set default values for options that are not present in the configuration
      file.
  
  ==== Setup
  
  The `Setup` method gives you the opportunity to execute things before the main
  loop, usually for initialization. In the case of Topbeat, it only assigns the
  Beat object to the Topbeat object, so it doesn't have to be passed to all sub
  functions.
  
  [source,go]
  ----------------------------------------------------------------------
  
negative.code: go get github.com/elastic/topbeat
  ----------------------------------------------------------------------
  
  In this guide, we use working examples from the https://github.com/elastic/topbeat[Topbeat] 
  source code to demonstrate how to implement a Beat. Topbeat is similar to
  the `top` command line tool, but instead of printing the statistics to the screen, 
  Topbeat periodically ships them to Elasticsearch for storage.
  
  You can use Topbeat as an example implementation for creating a new Beat. Just copy  
  the source files and modify them as necessary for your Beat.
  
  === Overview
  
  At the high level, a simple Beat like Topbeat has two main components: 
  
  * a component that collects the actual data, and 
  * a publisher that sends the data to the specified output, such as Elasticsearch or 
  Logstash. 
  
  The publisher is already implemented in libbeat, so you typically only have to worry about the logic 
  specific to your Beat (the code that creates the event and sends it to the publisher). 
  Libbeat also offers common services like configuration management, logging, 
  daemonizing, and Windows service handling, and in the future, will offer data processing modules, 
  such as filtering or sampling.
  
  image:./images/beat_overview.png[Beat overview architecture]
  
  The event that you create is a JSON-like object (Golang type `map[string]interface{}`) that
  contains the collected data to send to the publisher. At a minimum, the event object 
  must contain a `@timestamp` field and a `type` field. Beyond
  that, events can contain any additional fields, and they can be created as often
  as necessary.
  
  The following example shows an event object in Topbeat:
  
  [source,json]
  ----------------------------------------------------------------------
  