anchor.diff:  
   This guide walks you through the steps for creating a new Elastic Beat.  The
   Beats are a collection of lightweight daemons that collect operational data from
  -your servers and ship it to Elasticsearch or Logstash.  The common parts for 
  +your servers and ship it to Elasticsearch or Logstash.  The common parts for
   all Beats are placed in the libbeat library, which contains packages for sending
   data to Elasticsearch and Logstash, for configuration file handling, for signal
   handling, for logging, and more. By using this common framework, you can ensure
  
positive.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.
  
negative.code: ==== The main Function
  
  If you follow the Topbeat model and put your Beat-specific code in its own type
  that implements the `Beater` interface, the code from your main package is
  very simple:
  
  [source,go]
  ----------------------------------------------------------------------
  var Version = "1.0.0"
  var Name = "topbeat"
  
  func main() {
  	beat.Run(Name, Version, topbeat.New())
  }
  ----------------------------------------------------------------------
  
  We recommend to implement a New function that creates your beats object.
  
  === Sharing Your Beat with the Community
  
  When you're done with your new Beat, how about letting everyone know? Open
  a pull request to add your link <<community-beats, here>>.
  