1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106
|
// This file is autogenerated, DO NOT EDIT
// transform/examples.asciidoc:215
[source, python]
----
resp = client.transform.put_transform(
transform_id="suspicious_client_ips",
source={
"index": "kibana_sample_data_logs"
},
dest={
"index": "sample_weblogs_by_clientip"
},
sync={
"time": {
"field": "timestamp",
"delay": "60s"
}
},
pivot={
"group_by": {
"clientip": {
"terms": {
"field": "clientip"
}
}
},
"aggregations": {
"url_dc": {
"cardinality": {
"field": "url.keyword"
}
},
"bytes_sum": {
"sum": {
"field": "bytes"
}
},
"geo.src_dc": {
"cardinality": {
"field": "geo.src"
}
},
"agent_dc": {
"cardinality": {
"field": "agent.keyword"
}
},
"geo.dest_dc": {
"cardinality": {
"field": "geo.dest"
}
},
"responses.total": {
"value_count": {
"field": "timestamp"
}
},
"success": {
"filter": {
"term": {
"response": "200"
}
}
},
"error404": {
"filter": {
"term": {
"response": "404"
}
}
},
"error5xx": {
"filter": {
"range": {
"response": {
"gte": 500,
"lt": 600
}
}
}
},
"timestamp.min": {
"min": {
"field": "timestamp"
}
},
"timestamp.max": {
"max": {
"field": "timestamp"
}
},
"timestamp.duration_ms": {
"bucket_script": {
"buckets_path": {
"min_time": "timestamp.min.value",
"max_time": "timestamp.max.value"
},
"script": "(params.max_time - params.min_time)"
}
}
}
},
)
print(resp)
----
|