milvus/internal/http/webui/collections.html
jaime 4746f47282
feat: management WebUI homepage (#36822)
issue: #36784
1. Implement an embedded web server for WebUI access.  
2. Complete the homepage development.

Home page demo:
<img width="2177" alt="iShot_2024-10-10_17 57 34"
src="https://github.com/user-attachments/assets/38539917-ce09-4e54-a5b5-7f4f7eaac353">

Signed-off-by: jaime <yun.zhang@zilliz.com>
2024-10-23 11:29:28 +08:00

153 lines
4.9 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Milvus WebUI - Collections</title>
<meta name="description" content="Milvus Management WebUI">
<link href="./static/css/bootstrap.min.css" rel="stylesheet">
<link href="./static/css/style.css" rel="stylesheet">
<script src="./static/js/jquery.min.js"></script>
<script src="./static/js/bootstrap.min.js"></script>
<script src="./static/js/bootstrap.bundle.min.js"></script>
<script src="./static/js/scripts.js"></script>
<script>
$(document).ready(function(){
$('#header').load("header.html");
$('#footer').load("footer.html");
});
// load cluster information data
document.addEventListener("DOMContentLoaded", function() {
fetch(MILVUS_URI + "/")
.then(response => response.json())
.then(text => {
data = JSON.parse(text)
// renderSysInfo(data)
// renderComponentInfo(data)
})
.catch(error => {
handleError(error);
});
});
</script>
</head>
<body>
<div class="container-fluid">
<div id="header"></div>
<div class="row">
<div class="col-md-2">
</div>
<div class="col-md-8">
<h2>
Database List
</h2>
<table id="database" class="table table-hover">
<thead class="thead-light">
<tr>
<th scope="col">Database ID</th>
<th scope="col">Name</th>
<th scope="col">Create Time</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>db1</td>
<td>2022-11-11 12:00:00</td>
</tr>
<tr>
<td>2</td>
<td>db2</td>
<td>2022-11-11 12:00:00</td>
</tr>
</tbody>
</table>
<h2>
Collection List
</h2>
<table id="collectionMeta" class="table table-hover">
<thead class="thead-light">
<tr>
<th scope="col">Collection ID</th>
<th scope="col">Collection Name</th>
<th scope="col">Partition Key Count</th>
<th scope="col">Partition Count</th>
<th scope="col">Channel Count</th>
<th scope="col">Segment Count</th>
<th scope="col">Binlog Count</th>
<th scope="col">Size</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>db1.coll1-fake</td>
<td>1</td>
<td>1</td>
<td>1</td>
<td>1</td>
<td>1</td>
<td>1</td>
</tr>
<tr>
<td>2</td>
<td>db1.coll2-fake</td>
<td>2</td>
<td>2</td>
<td>2</td>
<td>2</td>
<td>2</td>
<td>2</td>
</tr>
</tbody>
</table>
<h2>
Collection Metrics
</h2>
<table id="collectionMetrics" class="table table-hover">
<thead class="thead-light">
<tr>
<th scope="col">Collection Name</th>
<th scope="col">isQueryable</th>
<th scope="col">isWritable</th>
<th scope="col">Query Ops/s</th>
<th scope="col">Search Ops/s</th>
<th scope="col">Insert Throughput(MB/s)</th>
<th scope="col">Delete Throughput(MB/s)</th>
</tr>
</thead>
<tbody>
<tr>
<td>db1.coll-fake</td>
<td>true</td>
<td>true</td>
<td>20</td>
<td>20</td>
<td>1</td>
<td>0.5</td>
</tr>
<tr>
<td>db1.col2-fake</td>
<td>true</td>
<td>true</td>
<td>20</td>
<td>20</td>
<td>1</td>
<td>0.5</td>
</tr>
</tbody>
</table>
</div>
<div class="col-md-2">
</div>
</div>
<div id="footer"></div>
</div>
</body>
</html>