APM Server

APM Server

Github星跟踪图

Build Status
codecov.io

APM Server

The APM Server receives data from the Elastic APM agents and stores the data into Elasticsearch.

Read more about Elastic APM.

Please take questions or feedback to the Discuss forum for APM.

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 git@github.com:[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 git@github.com: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. Make sure that virtualenv creates Python2
environment, otherwise specify PYTHON_EXE variable pointed at Python2 executable.

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 fields.yml.
To generate required configuration files and templates run:

make index-template 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.

Contributing

See contributing for details about reporting bugs or requesting features in APM server.

Releases

See releases for an APM Server release checklist.

Update Dependencies

The apm-server has two types of dependencies,
the Golang packages managed with Govendor and a dependency to the Beats Framework.

Govendor

Checkout the govendor tool.

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.

Beats 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.

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

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

BEATS_VERSION=f240148065af94d55c5149e444482b9635801f27 make update-beats

Go-elasticsearch client Update

It is important to keep the used go-elasticsearch client in sync with the according major version.
We also recommend to use the latest available client for minor versions.
Since APM Server does not yet support go modules, you can update the dependency using govendor, e.g. by running:

git clone --branch v7.4.1 https://github.com/elastic/go-elasticsearch.git $GOPATH/src/github.com/elastic/go-elasticsearch/v7
govendor add github.com/elastic/go-elasticsearch/v7/^
mv ./vendor/github.com/elastic/go-elasticsearch/v7/LICENSE ./vendor/github.com/elastic/go-elasticsearch/

Packaging

The beats framework provides tools to cross-compile and package apm-server for different platforms.
This requires docker, mage, and vendoring as described above.
To build all apm-server packages from source, run:

mage package

This will fetch and create all images required for the build process.
The whole process can take several minutes.
When complete, packages can be found in build/distributions/.

Building docker packages

To customize image configuration, see the docs.

To build docker images from source, run:

PLATFORMS=linux/amd64 mage -v package

When complete, docker images can be found through the local docker daemon and at build/distributions/apm-server-*-linux-amd64.docker.tar.gz.

When building images for testing pre-release versions, we recommend setting SNAPSHOT=true in the build environment, to
clearly indicate the packages are not for a specific release.

Documentation

The Documentation for the APM Server can be found in the docs folder.

Help

make help

概览

名称与所有者elastic/apm-server
主编程语言Go
编程语言Makefile (语言数: 8)
平台
许可证Other
发布数189
最新版本名称v8.14.0 (发布于 2024-06-05 13:41:27)
第一版名称v6.0.0-rc1 (发布于 )
创建于2017-08-03 16:03:34
推送于2024-06-11 04:52:35
最后一次提交
星数1.2k
关注者数294
派生数515
提交数4.7k
已启用问题?
问题数1909
打开的问题数208
拉请求数10364
打开的拉请求数9
关闭的拉请求数1059
已启用Wiki?
已存档?
是复刻?
已锁定?
是镜像?
是私有?
去到顶部