Reference variables
Elastic Cloud Serverless projects are autoscaled environments, fully managed by Elastic and available on Elastic Cloud. Availability This functionality is generally available and ready for production usage. Serverless interfaces and procedures might differ from classic Elastic Stack deployments. 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.
Serverless
Generally available
Stack
Generally available
Beats settings can reference other settings splicing multiple optionally custom named settings into new values. References use the same syntax as Environment variables do. Only fully collapsed setting names can be referenced to.
For example the filebeat registry file defaults to:
filebeat.registry: ${path.data}/registry
With path.data being an implicit config setting, that is overridable from command line, as well as in the configuration file.
Example referencing es.host in output.elasticsearch.hosts:
es.host: '${ES_HOST:localhost}'
output.elasticsearch:
hosts: ['http://${es.host}:9200']
Introducing es.host, the host can be overwritten from command line using -E es.host=another-host.
Plain references, having no default value and are not spliced with other references or strings can reference complete namespaces.
These setting with duplicate content:
namespace1:
subnamespace:
host: localhost
sleep: 1s
namespace2:
subnamespace:
host: localhost
sleep: 1s
can be rewritten to
namespace1: ${shared}
namespace2: ${shared}
shared:
subnamespace:
host: localhost
sleep: 1s
when using plain references.