Giter Site home page Giter Site logo

tomarron / apm-server Goto Github PK

View Code? Open in Web Editor NEW

This project forked from elastic/apm-server

0.0 1.0 0.0 3.99 MB

APM Server (Alpha)

License: Apache License 2.0

Makefile 7.80% Python 26.87% Go 45.65% Shell 18.01% PowerShell 1.05% Roff 0.43% JavaScript 0.19%

apm-server's Introduction

APM Server (Alpha)

The APM Server receives data from the Elastic APM agents and stores the data into Elasticsearch. The APM Server and the APM agents are currently in alpha and under heavy development which might result in breaking changes. If you are trying out APM and have feedback or problems, please post them on the Discuss forum.

Read the alpha blog post.

Getting Started

To get started with APM please see our Getting Started Guide.

APM Server Development

Requirements

Install

  • Fork the repo with the Github interface and clone it:
cd ${GOPATH}/src/github.com/elastic/
git clone [email protected]:[USER]/apm-server.git

Note that it should be cloned from the fork (replace [USER] with your Github user), not from origin.

  • Add the upstream remote: git remote add elastic [email protected]:elastic/apm-server.git

Build

To build the binary for APM Server run the command below. This will generate a binary in the same directory with the name apm-server.

make

You also need to create all files needed by the APM Server by running the additional command below.

make update

Note that this requires to have virtualenv installed.

Run

To run APM Server with debugging output enabled, run:

./apm-server -c apm-server.yml -e -d "*"

Testing

For Testing check out the testing guide

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. To generate etc/apm-server.template.json and etc/apm-server.asciidoc

make update

Cleanup

To clean APM Server source code, run the following commands:

make fmt

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

make clean

For further development, check out the beat developer guide.

Packaging

The beat frameworks provides tools to crosscompile and package your beat for different platforms. This requires docker 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.

Update Dependencies

The apm-server has two types of dependencies:

  • Golang packages managed with govendor
  • Beats framework managed with cd _beats && sh update.sh

It is recommended to keep the version of the beats framework and libbeat in sync. To make an update of both, run make update-beats.

Govendor

For details on govendor check the docs here.

To update beats to the most recent version from your go path for example use: govendor fetch github.com/elastic/beats/.... Govendor will automatically pick the files needed.

Framework Update

To update the beats framework run make update-beats. This will fetch the most recent version of beats from master and copy the files which are needed for the framework part to the _beats directory. These are files like libbeat config files and scripts which are used for testing or packaging.

To update the dependency to a specific commit or branch run command as following:

BEATS_VERSION=f240148065af94d55c5149e444482b9635801f27 make update-beats

Documentation

The Documentation for the Intake-API and Elasticsearch can be found in docs/data.

Help

make help

apm-server's People

Contributors

alrs avatar beniwohli avatar dedemorton avatar jalvz avatar nexthack avatar omgimalexis avatar roncohen avatar ruflin avatar simianhacker avatar simitt avatar sorenlouv avatar watson avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.