Elastic APM agent configuration API
The Elastic Stack includes Elastic's core products such as Elasticsearch, Kibana, Logstash, and Beats. Availability This functionality is generally available and ready for production usage. Unless stated otherwise on the page, this functionality is available when your Elastic Stack is deployed on Elastic Cloud Hosted, Elastic Cloud Enterprise, Elastic Cloud on Kubernetes, and self-managed environments. This documentation corresponds to the latest patch available for each minor version. If you're not using the latest patch, check the release notes for changes.
Stack
Generally available
APM Server exposes API endpoints that allow Elastic APM agents to query the APM Server for configuration changes. More information on this feature is available in APM agent configuration in Kibana.
| Name | Endpoint |
|---|---|
| Agent configuration intake | /config/v1/agents |
| RUM configuration intake | /config/v1/rum/agents |
The Agent configuration endpoints accepts both HTTP GET and HTTP POST requests. If an API keys or Secret token is configured, requests to this endpoint must be authenticated.
service.name is a required query string parameter.
http(s)://{hostname}:{port}/config/v1/agents?service.name=SERVICE_NAME
Encode parameters as a JSON object in the body. service.name is a required parameter.
http(s)://{hostname}:{port}/config/v1/agents
{
"service": {
"name": "test-service",
"environment": "all"
},
"CAPTURE_BODY": "off"
}
- Successful -
200 - APM Server is configured to fetch agent configuration from Elasticsearch but the configuration is invalid -
403 - APM Server is starting up or Elasticsearch is unreachable -
503
Example Agent configuration GET request including the service name "test-service":
curl -i http://127.0.0.1:8200/config/v1/agents?service.name=test-service
Example Agent configuration POST request including the service name "test-service":
curl -X POST http://127.0.0.1:8200/config/v1/agents \
-H "Authorization: Bearer secret_token" \
-H 'content-type: application/json' \
-d '{"service": {"name": "test-service"}}'
HTTP/1.1 200 OK
Cache-Control: max-age=30, must-revalidate
Content-Type: application/json
Etag: "7b23d63c448a863fa"
Date: Mon, 24 Feb 2020 20:53:07 GMT
Content-Length: 98
{
"capture_body": "off",
"transaction_max_spans": "500",
"transaction_sample_rate": "0.3"
}