ElasticSearch
ElasticSearch is an integral component of Altis, enabling enhanced search and relevancy as well as powering the analytics data query layer.
Kibana
Local Server provides Kibana out of the box, a powerful tool for viewing indexes, creating and debugging queries and more.
Kibana is available at /kibana/.
Adding Index Patterns
Before you can get started querying in Kibana you'll need to add some index patterns at .
Enter an index pattern into the field (available indexes are shown below) using wildcards if you wish to work across multiple indexes at a time. You will then be prompted to choose a date field to use for time series filters, make your selection, for example post_date
, and save your index pattern to start analysing your data.
You can add additional index patterns from the Kibana Management page in future.
Note: When adding an index pattern for the analytics
index choose "I don't want to use the Time Filter" from the dropdown on the next screen. Analytics event timestamps are stored in milliseconds and Kibana's time filter does not currently work with this by default.
Developing & Debugging Queries
Use the Dev Tools tab at to enter and run queries. This provides useful features including autocomplete based on your data and linting.
Viewing & Understanding Data
The easiest way to view your data is in the Discover tab at . Here you can create basic queries, select and sort by columns as well drill down into the indexed data to see it's structure and data types.
Accessing ElasticSearch Directly
The ElasticSearch hostname is not directly exposed however you can find the dynamic port and IP to connect to by running composer server status | grep elasticsearch
.
You should see output similar to this:
project_elasticsearch_1 /elastic-entrypoint.sh ela ... Up (healthy) 0.0.0.0:32871->9200/tcp, 9300/tcp
Copy the mapped IP and port (0.0.0.0:32871
in the example above) and use it to query ElasticSearch directly:
curl -XGET http://0.0.0.0:32871
ElasticSearch Memory Limit
ElasticSearch requires more memory on certain operating systems such as Ubuntu or when using Continuous Integration services. If ElasticSearch does not have enough memory it can cause other services to stop working. The Local Server supports an environment variable which can change the default memory limit for ElasticSearch called ES_MEM_LIMIT
.
You can set the ES_MEM_LIMIT
variable in 2 ways:
- Set it globally eg:
export ES_MEM_LIMIT=2g
- Set it for the local server process only:
ES_MEM_LIMIT=2g composer server start