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" ]
}
]
}
resp = client.rollup.put_job(
id="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"
]
}
],
)
const response = await client.rollup.putJob({
id: "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"],
},
],
});
response = client.rollup.put_job(
id: "sensor",
body: {
"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"
]
}
]
}
)
$resp = $client->rollup()->putJob([
"id" => "sensor",
"body" => [
"index_pattern" => "sensor-*",
"rollup_index" => "sensor_rollup",
"cron" => "*/30 * * * * ?",
"page_size" => 1000,
"groups" => [
"date_histogram" => [
"field" => "timestamp",
"fixed_interval" => "1h",
"delay" => "7d",
],
"terms" => [
"fields" => array(
"node",
),
],
],
"metrics" => array(
[
"field" => "temperature",
"metrics" => array(
"min",
"max",
"sum",
),
],
[
"field" => "voltage",
"metrics" => array(
"avg",
),
],
),
],
]);
curl -X PUT -H "Authorization: ApiKey $ELASTIC_API_KEY" -H "Content-Type: application/json" -d '{"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"]}]}' "$ELASTICSEARCH_URL/_rollup/job/sensor"
client.rollup().putJob(p -> p
.cron("*/30 * * * * ?")
.groups(g -> g
.dateHistogram(d -> d
.delay(de -> de
.time("7d")
)
.field("timestamp")
.fixedInterval(f -> f
.time("1h")
)
)
.terms(t -> t
.fields("node")
)
)
.id("sensor")
.indexPattern("sensor-*")
.metrics(List.of(FieldMetric.of(f -> f
.field("temperature")
.metrics(List.of(Metric.Min,Metric.Max,Metric.Sum))),FieldMetric.of(f -> f
.field("voltage")
.metrics(Metric.Avg))))
.pageSize(1000)
.rollupIndex("sensor_rollup")
);