{"id":13582061,"url":"https://github.com/elastic/apm-server","last_synced_at":"2026-02-03T17:10:06.848Z","repository":{"id":37319174,"uuid":"99251094","full_name":"elastic/apm-server","owner":"elastic","description":null,"archived":false,"fork":false,"pushed_at":"2025-04-24T05:17:57.000Z","size":119884,"stargazers_count":1243,"open_issues_count":258,"forks_count":530,"subscribers_count":277,"default_branch":"main","last_synced_at":"2025-04-24T08:49:47.079Z","etag":null,"topics":["apm","devops","distributed-tracing","elasticsearch","error-monitoring","opentelemetry","performance-metrics","performance-monitoring","tracing-server"],"latest_commit_sha":null,"homepage":"https://www.elastic.co/guide/en/apm/guide/current/index.html","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/elastic.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.txt","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2017-08-03T16:03:34.000Z","updated_at":"2025-04-24T05:16:37.000Z","dependencies_parsed_at":"2023-10-14T14:05:05.815Z","dependency_job_id":"62578c09-f3ab-41e0-bd19-010dd82ff3d2","html_url":"https://github.com/elastic/apm-server","commit_stats":{"total_commits":4901,"total_committers":147,"mean_commits":33.34013605442177,"dds":0.8179963272801469,"last_synced_commit":"854db3d975f29b26431967e52f9d37aefc4ad286"},"previous_names":[],"tags_count":223,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elastic%2Fapm-server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elastic%2Fapm-server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elastic%2Fapm-server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elastic%2Fapm-server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/elastic","download_url":"https://codeload.github.com/elastic/apm-server/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250837710,"owners_count":21495589,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["apm","devops","distributed-tracing","elasticsearch","error-monitoring","opentelemetry","performance-metrics","performance-monitoring","tracing-server"],"created_at":"2024-08-01T15:02:24.616Z","updated_at":"2026-01-16T07:18:39.377Z","avatar_url":"https://github.com/elastic.png","language":"Go","readme":"[![ci](https://github.com/elastic/apm-server/actions/workflows/ci.yml/badge.svg)](https://github.com/elastic/apm-server/actions/workflows/ci.yml)\n[![Smoke Tests](https://github.com/elastic/apm-server/actions/workflows/smoke-tests-os-sched.yml/badge.svg)](https://github.com/elastic/apm-server/actions/workflows/smoke-tests-os-sched.yml)\n[![Package status](https://badge.buildkite.com/fc4aa824ffecf245db871971507275aa3c35904e380fef449c.svg?branch=main)](https://buildkite.com/elastic/apm-server-package)\n\n# APM Server\n\nThe APM Server receives data from Elastic APM agents and transforms it into Elasticsearch documents.\nRead more about Elastic APM at [elastic.co/apm](https://www.elastic.co/apm).\n\nFor questions and feature requests, visit the [discussion forum](https://discuss.elastic.co/c/apm).\n\n## Getting Started\n\nTo get started with APM, see our [Quick start guide](https://www.elastic.co/guide/en/apm/guide/current/apm-quick-start.html).\n\n## APM Server Development\n\n### Requirements\n\n* [Go][golang-download]\n\n[golang-download]: https://golang.org/dl/\n\n### Install\n\n* Fork the repo with the GitHub interface and clone it:\n\n```\ngit clone git@github.com:[USER]/apm-server.git\n```\n\nNote that it should be cloned from the fork (replace [USER] with your GitHub user), not from origin.\n\n* Add the upstream remote:\n\n```\ngit remote add elastic git@github.com:elastic/apm-server.git\n```\n\n### Build\n\nTo build the binary for APM Server run the command below. This will generate a binary\nin the same directory with the name apm-server.\n\n```\nmake\n```\n\nIf you make code changes, you may also need to update the project by running the additional command below:\n\n```\nmake update\n```\n\n### Run\n\nTo run APM Server with debugging output enabled, run:\n\n```\n./apm-server -c apm-server.yml -e -d \"*\"\n```\n\nAPM Server expects index templates, ILM policies, and ingest pipelines to be set up externally.\nThis should be done by [installing the APM integration](https://www.elastic.co/guide/en/observability/current/traces-get-started.html#add-apm-integration).\nWhen running APM Server directly, it is only necessary to install the integration and not to run an Elastic Agent.\n\n#### Tilt\n\nYou can also run APM Server in a containerized environment using\n[Tilt](https://tilt.dev/).\n\n```\ntilt up\n```\n\nSee [dev docs\ntesting](https://github.com/elastic/apm-server/blob/5f247b3f66b0fab04381eee5a53e676dba030937/dev_docs/TESTING.md#tilt--kubernetes)\nfor additional information.\n\n### Testing\n\nFor Testing check out the [testing guide](dev_docs/TESTING.md)\n\n### Cleanup\n\nTo clean up the build directory and generated artifacts, run:\n\n```\nmake clean\n```\n\n### Contributing\n\nSee [contributing](CONTRIBUTING.md) for details about reporting bugs, requesting features,\nor contributing to APM Server.\n\n### Releases\n\nSee [releases](dev_docs/RELEASES.md) for an APM Server release checklist.\n\n## Updating dependencies\n\nAPM Server uses Go Modules for dependency management, without any vendoring.\n\nIn general, you should use standard `go get` commands to add and update modules. The one exception to this\nis the dependency on `libbeat`, for which there exists a special Make target: `make update-beats`, described\nbelow.\n\n### Updating libbeat\n\nBy running `make update-beats` the `github.com/elastic/beats/vN` module will be updated to the most recent\ncommit from the main branch, and a minimal set of files will be copied into the apm-server tree.\n\nYou can specify an alternative branch or commit by specifying the `BEATS_VERSION` variable, such as:\n\n```\nmake update-beats BEATS_VERSION=7.x\nmake update-beats BEATS_VERSION=f240148065af94d55c5149e444482b9635801f27\n```\n\n## Packaging\n\nTo build all apm-server packages from source, run:\n\n```\nmake package\n```\n\nThis will fetch and create all images required for the build process. The whole process can take several minutes.\nWhen complete, packages can be found in `build/distributions/`.\n\n### Building docker packages\n\nTo customize image configuration, see [the docs](https://www.elastic.co/guide/en/apm/guide/current/running-on-docker.html).\n\nTo build docker images from source, run:\n\n```\nmake package-docker\n```\n\nWhen complete, Docker images can be found at `build/distributions/*.docker.tar.gz`,\nand the local Docker image IDs are written at `build/docker/*.txt`.\n\nBuilding pre-release images can be done by running `make package-docker-snapshot` instead.\n\n## Documentation\n\nDocumentation for the APM Server can be found in the [Observability guide's APM section](https://www.elastic.co/guide/en/observability/master/apm.html). Most documentation files live in the [elastic/observability-docs](https://github.com/elastic/observability-docs) repo's [`docs/en/observability/apm/` directory](https://github.com/elastic/observability-docs/tree/main/docs/en/observability/apm).\n\nHowever, the following content lives in this repo:\n\n* The **changelog** page listing all release notes is in [`CHANGELOG.asciidoc`](/CHANGELOG.asciidoc).\n* Each minor version's **release notes** are documented in individual files in the [`changelogs/`](/changelogs/) directory.\n* A list of all **breaking changes** are documented in [`changelogs/all-breaking-changes.asciidoc`](/changelogs/all-breaking-changes.asciidoc).\n* **Sample data sets** that are injected into the docs are in the [`docs/data/`](/docs/data/) directory.\n* **Specifications** that are injected into the docs are in the [`docs/spec/`](/docs/spec/) directory.\n\n","funding_links":[],"categories":["Go","Monitoring"],"sub_categories":["Application Monitoring"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felastic%2Fapm-server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Felastic%2Fapm-server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felastic%2Fapm-server/lists"}