feat(chalice): sourcemaps reader refactoring

This commit is contained in:
Taha Yassine Kraiem 2022-09-14 15:23:40 +01:00
parent d989bd3e83
commit 4b0da35c6d
4 changed files with 13 additions and 9 deletions

View file

@ -17,6 +17,7 @@ from routers.subs import dashboard, insights, metrics, v1_api
app = FastAPI(root_path="/api", docs_url=config("docs_url", default=""), redoc_url=config("redoc_url", default=""))
app.add_middleware(GZipMiddleware, minimum_size=1000)
@app.middleware('http')
async def or_middleware(request: Request, call_next):
global OR_SESSION_TOKEN
@ -28,7 +29,9 @@ async def or_middleware(request: Request, call_next):
now = int(time.time() * 1000)
response: StreamingResponse = await call_next(request)
if helper.TRACK_TIME:
print(f"Execution time: {int(time.time() * 1000) - now} ms")
now = int(time.time() * 1000) - now
if now > 500:
print(f"Execution time: {now} ms")
except Exception as e:
pg_client.close()
raise e

View file

@ -99,6 +99,9 @@ def get_traces_group(project_id, payload):
if payloads[key] is None:
continue
key_results = sourcemaps_parser.get_original_trace(key=key, positions=[o["position"] for o in payloads[key]])
if key_results is None:
all_exists = False
continue
for i, r in enumerate(key_results):
res_index = payloads[key][i]["resultIndex"]
# function name search by frontend lib is better than sourcemaps' one in most cases

View file

@ -19,11 +19,12 @@ def get_original_trace(key, positions):
r = requests.post(config("sourcemaps_reader"), json=payload,
timeout=config("sourcemapTimeout", cast=int, default=5))
if r.status_code != 200:
return {}
print(f"Issue getting sourcemap status_code:{r.status_code}")
return None
return r.json()
except requests.exceptions.Timeout:
print("Timeout getting sourcemap")
return {}
return None
except Exception as e:
print("issue getting sourcemap")
return {}
print("Issue getting sourcemap")
return None

View file

@ -63,9 +63,6 @@ def get_presigned_url_for_upload(bucket, expires_in, key):
def get_file(source_bucket, source_key):
print("******************************")
print(f"looking for: {source_key} in {source_bucket}")
print("******************************")
try:
result = client.get_object(
Bucket=source_bucket,
@ -73,7 +70,7 @@ def get_file(source_bucket, source_key):
)
except ClientError as ex:
if ex.response['Error']['Code'] == 'NoSuchKey':
print(f'======> No object found - returning None for {source_bucket}/{source_key}')
print(f'======> No object found - returning None for \nbucket:{source_bucket}\nkey:{source_key}')
return None
else:
raise ex