123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156 |
- [role="xpack"]
- [testenv="basic"]
- [[rollup-get-rollup-index-caps]]
- === Get rollup index capabilities API
- ++++
- <titleabbrev>Get rollup index caps</titleabbrev>
- ++++
- experimental[]
- This API returns the rollup capabilities of all jobs inside of a rollup index (e.g. the index where rollup data is stored).
- A single rollup index may store the data for multiple rollup jobs, and may have a variety of capabilities depending on those jobs.
- This API will allow you to determine:
- 1. What jobs are stored in an index (or indices specified via a pattern)?
- 2. What target indices were rolled up, what fields were used in those rollups and what aggregations can be performed on each job?
- ==== Request
- `GET {index}/_rollup/data`
- //===== Description
- ==== Path Parameters
- `index`::
- (string) Index or index-pattern of concrete rollup indices to check for capabilities.
- ==== Request Body
- There is no request body for the Get Jobs API.
- ==== Authorization
- You must have the `read` index privilege on the index that stores the rollup results.
- For more information, see
- {xpack-ref}/security-privileges.html[Security Privileges].
- ==== Examples
- Imagine we have an index named `sensor-1` full of raw data. We know that the data will grow over time, so there
- will be a `sensor-2`, `sensor-3`, etc. Let's create a Rollup job, which stores it's data in `sensor_rollup`:
- [source,console]
- --------------------------------------------------
- PUT _rollup/job/sensor
- {
- "index_pattern": "sensor-*",
- "rollup_index": "sensor_rollup",
- "cron": "*/30 * * * * ?",
- "page_size" :1000,
- "groups" : {
- "date_histogram": {
- "field": "timestamp",
- "fixed_interval": "1h",
- "delay": "7d"
- },
- "terms": {
- "fields": ["node"]
- }
- },
- "metrics": [
- {
- "field": "temperature",
- "metrics": ["min", "max", "sum"]
- },
- {
- "field": "voltage",
- "metrics": ["avg"]
- }
- ]
- }
- --------------------------------------------------
- // TEST[setup:sensor_index]
- If at a later date, we'd like to determine what jobs and capabilities were stored in the `sensor_rollup` index, we can use the Get Rollup
- Index API:
- [source,console]
- --------------------------------------------------
- GET /sensor_rollup/_rollup/data
- --------------------------------------------------
- // TEST[continued]
- Note how we are requesting the concrete rollup index name (`sensor_rollup`) as the first part of the URL.
- This will yield the following response:
- [source,console-result]
- ----
- {
- "sensor_rollup" : {
- "rollup_jobs" : [
- {
- "job_id" : "sensor",
- "rollup_index" : "sensor_rollup",
- "index_pattern" : "sensor-*",
- "fields" : {
- "node" : [
- {
- "agg" : "terms"
- }
- ],
- "temperature" : [
- {
- "agg" : "min"
- },
- {
- "agg" : "max"
- },
- {
- "agg" : "sum"
- }
- ],
- "timestamp" : [
- {
- "agg" : "date_histogram",
- "time_zone" : "UTC",
- "fixed_interval" : "1h",
- "delay": "7d"
- }
- ],
- "voltage" : [
- {
- "agg" : "avg"
- }
- ]
- }
- }
- ]
- }
- }
- ----
- The response that is returned contains information that is similar to the original Rollup configuration, but formatted
- differently. First, there are some house-keeping details: the Rollup job's ID, the index that holds the rolled data,
- the index pattern that the job was targeting.
- Next it shows a list of fields that contain data eligible for rollup searches. Here we see four fields: `node`, `temperature`,
- `timestamp` and `voltage`. Each of these fields list the aggregations that are possible. For example, you can use a min, max
- or sum aggregation on the `temperature` field, but only a `date_histogram` on `timestamp`.
- Note that the `rollup_jobs` element is an array; there can be multiple, independent jobs configured for a single index
- or index pattern. Each of these jobs may have different configurations, so the API returns a list of all the various
- configurations available.
- Like other APIs that interact with indices, you can specify index patterns instead of explicit indices:
- [source,console]
- --------------------------------------------------
- GET /*_rollup/_rollup/data
- --------------------------------------------------
- // TEST[continued]
|