
Security News
PEP 810 Proposes Explicit Lazy Imports for Python 3.15
An opt-in lazy import keyword aims to speed up Python startups, especially CLIs, without the ecosystem-wide risks that sank PEP 690.
github.com/elastic/apm-server
The APM Server receives data from the Elastic APM agents and stores the data into Elasticsearch.
Please take questions or feedback to the Discuss forum for APM.
To get started with APM please see our Getting Started Guide.
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.
git remote add elastic git@github.com:elastic/apm-server.git
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.
To run APM Server with debugging output enabled, run:
./apm-server -c apm-server.yml -e -d "*"
For Testing check out the testing guide
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
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.
See contributing for details about reporting bugs or requesting features in APM server.
The apm-server
has two types of dependencies,
the Golang packages managed with Govendor and a dependency to the Beats Framework.
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.
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
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/
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/
.
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.
The Documentation for the APM Server can be found in the docs
folder.
make help
FAQs
Unknown package
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
An opt-in lazy import keyword aims to speed up Python startups, especially CLIs, without the ecosystem-wide risks that sank PEP 690.
Security News
Socket CEO Feross Aboukhadijeh discusses the recent npm supply chain attacks on PodRocket, covering novel attack vectors and how developers can protect themselves.
Security News
Maintainers back GitHub’s npm security overhaul but raise concerns about CI/CD workflows, enterprise support, and token management.