Я пытаюсь проанализировать вывод json одного из наших кластеров es, чтобы собрать статистику кеша фильтров, и надеялся использовать для этого Jq. Вот вывод команды curl
:
{
"_shards": {
"total": 5662,
"successful": 5662,
"failed": 0
},
"_all": {
"primaries": {
"filter_cache": {
"memory_size": "32.8gb",
"memory_size_in_bytes": 35245081088,
"evictions": 31347095
}
},
"total": {
"filter_cache": {
"memory_size": "94.3gb",
"memory_size_in_bytes": 101307321504,
"evictions": 79329152
}
}
},
"indices": {
"oreserverdk04180047": {
"primaries": {
"filter_cache": {
"memory_size": "0b",
"memory_size_in_bytes": 0,
"evictions": 11
}
},
"total": {
"filter_cache": {
"memory_size": "0b",
"memory_size_in_bytes": 0,
"evictions": 132
}
}
},
"janbe10200002": {
"primaries": {
"filter_cache": {
"memory_size": "0b",
"memory_size_in_bytes": 0,
"evictions": 88
}
},
"total": {
"filter_cache": {
"memory_size": "0b",
"memory_size_in_bytes": 0,
"evictions": 119
}
}
}
}
}
В основном я хотел бы, чтобы вывод выглядел примерно так:
oreserverdk04180047 0b
janbe10200002 0b
Мне просто нужно имя индекса и столбец memory_size из «всего». Я могу получить это, если запущу это через жесткое кодирование имен индексов как таковых:
jq '. | {memory_size: .indices.janbe10200002.total.filter_cache.memory_size}'
Но я надеялся использовать какой-то подстановочный знак для имени индекса.