Skip to content
Snippets Groups Projects
README.md 2.51 KiB
Newer Older
Florian Thöni / TWSI's avatar
Florian Thöni / TWSI committed
# gitlabbeat
Lem's avatar
Lem committed

Florian Thöni / TWSI's avatar
Florian Thöni / TWSI committed
Welcome to gitlabbeat.
Lem's avatar
Lem committed

Ensure that this folder is at the following location:
`${GOPATH}/git.teamwork.net/BeatsTeamwork`

Florian Thöni / TWSI's avatar
Florian Thöni / TWSI committed
## Getting Started with gitlabbeat
Lem's avatar
Lem committed

### Requirements

* [Golang](https://golang.org/dl/) 1.7

### Init Project
Florian Thöni / TWSI's avatar
Florian Thöni / TWSI committed
To get running with gitlabbeat and also install the
Lem's avatar
Lem committed
dependencies, run the following command:

```
make setup
```

It will create a clean git history for each major step. Note that you can always rewrite the history if you wish before pushing your changes.

Florian Thöni / TWSI's avatar
Florian Thöni / TWSI committed
To push gitlabbeat in the git repository, run the following commands:
Lem's avatar
Lem committed

```
Florian Thöni / TWSI's avatar
Florian Thöni / TWSI committed
git remote set-url origin https://git.teamwork.net/BeatsTeamwork/gitlabbeat
Lem's avatar
Lem committed
git push origin master
```

For further development, check out the [beat developer guide](https://www.elastic.co/guide/en/beats/libbeat/current/new-beat.html).

### Build

Florian Thöni / TWSI's avatar
Florian Thöni / TWSI committed
To build the binary for gitlabbeat run the command below. This will generate a binary
in the same directory with the name gitlabbeat.
Lem's avatar
Lem committed

```
make
```


### Run

Florian Thöni / TWSI's avatar
Florian Thöni / TWSI committed
To run gitlabbeat with debugging output enabled, run:
Lem's avatar
Lem committed

```
Florian Thöni / TWSI's avatar
Florian Thöni / TWSI committed
./gitlabbeat -c gitlabbeat.yml -e -d "*"
Lem's avatar
Lem committed
```


### Test

Florian Thöni / TWSI's avatar
Florian Thöni / TWSI committed
To test gitlabbeat, run the following command:
Lem's avatar
Lem committed

```
make testsuite
```

alternatively:
```
make unit-tests
make system-tests
make integration-tests
make coverage-report
```

The test coverage is reported in the folder `./build/coverage/`

### Update

Each beat has a template for the mapping in elasticsearch and a documentation for the fields
which is automatically generated based on `etc/fields.yml`.
Florian Thöni / TWSI's avatar
Florian Thöni / TWSI committed
To generate etc/gitlabbeat.template.json and etc/gitlabbeat.asciidoc
Lem's avatar
Lem committed

```
make update
```


### Cleanup

Florian Thöni / TWSI's avatar
Florian Thöni / TWSI committed
To clean  gitlabbeat source code, run the following commands:
Lem's avatar
Lem committed

```
make fmt
make simplify
```

To clean up the build directory and generated artifacts, run:

```
make clean
```


### Clone

Florian Thöni / TWSI's avatar
Florian Thöni / TWSI committed
To clone gitlabbeat from the git repository, run the following commands:
Lem's avatar
Lem committed

```
mkdir -p ${GOPATH}/git.teamwork.net/BeatsTeamwork
cd ${GOPATH}/git.teamwork.net/BeatsTeamwork
Florian Thöni / TWSI's avatar
Florian Thöni / TWSI committed
git clone https://git.teamwork.net/BeatsTeamwork/gitlabbeat
Lem's avatar
Lem committed
```


For further development, check out the [beat developer guide](https://www.elastic.co/guide/en/beats/libbeat/current/new-beat.html).


## Packaging

The beat frameworks provides tools to crosscompile and package your beat for different platforms. This requires [docker](https://www.docker.com/) and vendoring as described above. To build packages of your beat, run the following command:

```
make package
```

This will fetch and create all images required for the build process. The hole process to finish can take several minutes.