kopia lustrzana https://github.com/bugout-dev/moonstream
Exec db query time log
rodzic
a729fb57c1
commit
e7fead352e
|
@ -3,6 +3,7 @@ import json
|
|||
import logging
|
||||
import re
|
||||
import uuid
|
||||
from datetime import datetime, timezone
|
||||
from enum import Enum
|
||||
from io import StringIO
|
||||
from typing import Any, Dict, List, Optional, Tuple
|
||||
|
@ -16,7 +17,6 @@ from sqlalchemy.orm import sessionmaker
|
|||
from sqlalchemy.sql import text
|
||||
|
||||
from ..reporter import reporter
|
||||
from ..stats_worker.queries import to_json_types
|
||||
from ..settings import (
|
||||
BUGOUT_REQUEST_TIMEOUT_SECONDS,
|
||||
MOONSTREAM_ADMIN_ACCESS_TOKEN,
|
||||
|
@ -24,6 +24,10 @@ from ..settings import (
|
|||
MOONSTREAM_QUERY_API_DB_STATEMENT_TIMEOUT_MILLIS,
|
||||
bugout_client,
|
||||
)
|
||||
from ..stats_worker.queries import to_json_types
|
||||
|
||||
logging.basicConfig(level=logging.INFO)
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
QUERY_REGEX = re.compile("[\[\]@#$%^&?;`/]")
|
||||
|
||||
|
@ -94,6 +98,8 @@ def fetch_data_from_db(
|
|||
process_session = sessionmaker(bind=engine)
|
||||
db_session = process_session()
|
||||
|
||||
time_now = datetime.now(timezone.utc)
|
||||
|
||||
try:
|
||||
result = db_session.execute(text(query), params)
|
||||
data_keys = result.keys()
|
||||
|
@ -112,6 +118,11 @@ def fetch_data_from_db(
|
|||
finally:
|
||||
db_session.close()
|
||||
|
||||
exec_timedelta = datetime.now(timezone.utc) - time_now
|
||||
logger.info(
|
||||
f"Database query finished in {int(exec_timedelta.total_seconds())} seconds"
|
||||
)
|
||||
|
||||
return data_keys, data_rows
|
||||
|
||||
|
||||
|
@ -121,7 +132,10 @@ def prepare_output(
|
|||
"""
|
||||
Parse incoming data from database to proper format OutputType.
|
||||
"""
|
||||
def prepare_dict(data_temp_keys: Tuple[Any], data_temp_rows: Tuple[List[Any]]) -> List[Dict[str, Any]]:
|
||||
|
||||
def prepare_dict(
|
||||
data_temp_keys: Tuple[Any], data_temp_rows: Tuple[List[Any]]
|
||||
) -> List[Dict[str, Any]]:
|
||||
output_raw = []
|
||||
for row in data_temp_rows:
|
||||
data_r = {}
|
||||
|
|
|
@ -1,14 +1,10 @@
|
|||
import argparse
|
||||
import logging
|
||||
from datetime import datetime, timezone
|
||||
|
||||
from moonstreamdb.blockchain import AvailableBlockchainType
|
||||
|
||||
from ..actions import push_data_to_bucket
|
||||
from ..settings import (
|
||||
MOONSTREAM_S3_DATA_BUCKET,
|
||||
MOONSTREAM_S3_DATA_BUCKET_PREFIX,
|
||||
)
|
||||
from ..settings import MOONSTREAM_S3_DATA_BUCKET, MOONSTREAM_S3_DATA_BUCKET_PREFIX
|
||||
from .actions import (
|
||||
OutputType,
|
||||
fetch_data_from_db,
|
||||
|
@ -59,8 +55,6 @@ def main() -> None:
|
|||
parser.set_defaults(func=lambda _: parser.print_help())
|
||||
subcommands = parser.add_subparsers(description="Query crawlers commands")
|
||||
|
||||
time_now = datetime.now(timezone.utc)
|
||||
|
||||
parser_queries_execute = subcommands.add_parser(
|
||||
"execute", description="Execute query"
|
||||
)
|
||||
|
|
Ładowanie…
Reference in New Issue