[[creating-beat-from-metricbeat]] === Creating a Beat based on Metricbeat The metricset Beat generator enables you to create a Beat that uses Metricbeat as a library and has your own metricsets. [float] ==== Requirements To create your own Beat, you must have Go {go-version} or later installed, and the `$GOPATH` must be set up correctly. In addition, the following tools are required: * https://www.python.org/downloads/[python] * https://virtualenv.pypa.io/en/stable/[virtualenv] Virtualenv is easiest installed with your package manager or https://pip.pypa.io/en/stable/[pip]. [float] ==== Step 1 - Get the metricbeat source code The first step is to get the metricbeat source code: [source,bash] ---- go get github.com/elastic/beats/metricbeat ---- This will clone the beats repository into `GOPATH`. By default `go get` fetches the master branch. To build your beat on a specific version of libbeat, check out the specific branch ({doc-branch} in the example below): ["source","sh",subs="attributes"] ---- cd ${GOPATH}/src/github.com/elastic/beats git checkout {doc-branch} ---- Note: If you have multiple go paths use `${GOPATH%%:*}`instead of `${GOPATH}`. Now change to the directory where you want to create the beat. This directory is normally located under `$GOPATH/src/github.com/{your-github-name}`. Inside this directory, run the command to create the beat. [float] ==== Step 2 - Create the Beat Run the command: [source,bash] ---- python ${GOPATH}/src/github.com/elastic/beats/script/generate.py --type=metricbeat ---- When prompted, enter the Beat name and path. [float] ==== Step 3 - Init and create the metricset After creating the Beat, change the directory to `$GOPATH/src/github.com/{your-github-name}/{beat}` and run: [source,bash] ---- make setup ---- This will do the initial setup for your Beat and also run `make create-metricset`, which will ask you for the module name and metricset name of your Beat. For more details about creating a metricset, see the docs <>. [float] ==== Step 4 - Build & Run To create a binary run the `make` command. This will create the binary in your beats directory. To run it, execute the binary. This will automatically load the default configuration which was generated by `make update`. [source,bash] ---- ./beatname -e -d "*" ---- This will run the beat with debug output enabled to the console to directly see what is happening. Stop the beat with `CTRL-C`. [float] ==== Step 5 - Package To create packages and binaries for different platforms, https://www.docker.com/[docker] is required. The first step is to get the most recent packaging tools into your beat: [source,bash] ---- make release ---- This will fetch the most recent packaging tools and start the packaging of your beat. This can take a little bit longer. For more details about creating a metricset, see the docs about <>.