Skip to content

Commit 6b92d60

Browse files
committed
Add Sharding Estimate basic algorithm
1 parent d7d5664 commit 6b92d60

2 files changed

Lines changed: 44 additions & 2 deletions

File tree

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
2+
from fastapi import APIRouter
3+
from repository.schemas import Search
4+
from injector import (logger, doc)
5+
# from injector import (logger, doc, SearchOmniHandlerInject, QueryBuilderInject)
6+
import json
7+
import datetime
8+
9+
app = APIRouter(
10+
prefix="/cluster",
11+
)
12+
13+
@app.post("/sharding_predict", description="Cluster sharding predict", summary="Cluster sharding predict")
14+
async def Cluster_sharding_estimate(request: Search):
15+
''' Search to Elasticsearch '''
16+
StartTime, EndTime, Delay_Time = 0, 0, 0
17+
18+
try:
19+
StartTime = datetime.datetime.now()
20+
21+
# logger.info("api_controller doc: {}".format(json.dumps(doc, indent=2)))
22+
# request_json = {k : v for k, v in request}
23+
request_json = request.to_json()
24+
print(request, type(request), request.size, request_json)
25+
logger.info("es_search_controller : {}".format(json.dumps(request_json, indent=2)))
26+
27+
EndTime = datetime.datetime.now()
28+
29+
# return await SearchOmniHandlerInject.search(QueryBuilderInject, oas_query=request_json)
30+
return {'results' :
31+
{
32+
"the number of primary shards" : 1,
33+
"the number of replica shards" : 1
34+
}
35+
}
36+
37+
finally:
38+
Delay_Time = str((EndTime - StartTime).seconds) + '.' + str((EndTime - StartTime).microseconds).zfill(6)[:2]
39+
logger.info('Metrics : {}'.format(Delay_Time))

main.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
from fastapi import FastAPI
22
from starlette.middleware.cors import CORSMiddleware
33
from config.log_config import create_log
4-
from controller import (es_search_controller)
4+
from controller import (es_search_controller,
5+
cluster_estimate_controller
6+
)
57

68
logger = create_log()
79
app = FastAPI()
@@ -43,4 +45,5 @@ async def root_with_param(id):
4345

4446

4547
# router
46-
app.include_router(es_search_controller.app, tags=["Search"], )
48+
app.include_router(es_search_controller.app, tags=["Search"], )
49+
app.include_router(cluster_estimate_controller.app, tags=["Cluster"], )

0 commit comments

Comments
 (0)