I would like to track historical data regarding various storage chassis.
Each chassis has multiple volumes, each volume has multiple shares.
Other data received with each poll are current connected clients and their current bandwidth usage. This list changes depending on who's connected at the time.
Ideally, I'd like to be able to visualize in kibana:
- stacked bar graph, or pie chart of volumes usage.
- stacked bar graph, or pie chart of share usage.
- line graph of client bandwidth over time
- line graph of total aggregated bandwidth
Below is an example of what the polling data looks like when logstash receives it. Should I break this out into separate documents? This is historical data, so I don't anticipate updating any documents. I tried mapping fields like volumes
into a nested
type, but kibana shows the same combined data (average, sum, etc) for each volume. Coming from the SQL world, I'm having difficulty figuring out how to model the data in elasticsearch so that kibana can easily display it.
Thanks in advance for your advice!
{
"name": "chassis1",
"location": "New York",
"total_files": 2000000,
"total_capacity": 300,
"volumes": [
{
"name": "vol1",
"available": 50,
"capacity": 150,
"free": 65,
"reserved":100,
"used":85
},
{
"name": "vol2",
"available": 100,
"capacity": 150,
"free": 110,
"reserved":50,
"used":40
}
],
"shares": [
{
"name": "share1",
"volume": "vol1",
"capacity": 75,
"free": 10,
"used": 65,
"files": 100000
},
{
"name": "share2",
"volume": "vol1",
"capacity": 25,
"free": 5,
"used": 20,
"files": 25000
},
{
"name": "share3",
"volume": "vol2",
"capacity": 50,
"free": 10,
"used": 40,
"files": 75000
}
],
"clients": [
{
"user": "bob",
"read": 100,
"write": 5
},
{
"user": "alice",
"read": 4,
"write": 100
},
{
"user": "eve",
"read": 0,
"write": 0
}
]
}