Exec db query time log

pull/686/head
kompotkot 2022-10-25 10:36:50 +00:00
rodzic a729fb57c1
commit e7fead352e
2 zmienionych plików z 17 dodań i 9 usunięć

Wyświetl plik

@ -3,6 +3,7 @@ import json
import logging import logging
import re import re
import uuid import uuid
from datetime import datetime, timezone
from enum import Enum from enum import Enum
from io import StringIO from io import StringIO
from typing import Any, Dict, List, Optional, Tuple from typing import Any, Dict, List, Optional, Tuple
@ -16,7 +17,6 @@ from sqlalchemy.orm import sessionmaker
from sqlalchemy.sql import text from sqlalchemy.sql import text
from ..reporter import reporter from ..reporter import reporter
from ..stats_worker.queries import to_json_types
from ..settings import ( from ..settings import (
BUGOUT_REQUEST_TIMEOUT_SECONDS, BUGOUT_REQUEST_TIMEOUT_SECONDS,
MOONSTREAM_ADMIN_ACCESS_TOKEN, MOONSTREAM_ADMIN_ACCESS_TOKEN,
@ -24,6 +24,10 @@ from ..settings import (
MOONSTREAM_QUERY_API_DB_STATEMENT_TIMEOUT_MILLIS, MOONSTREAM_QUERY_API_DB_STATEMENT_TIMEOUT_MILLIS,
bugout_client, bugout_client,
) )
from ..stats_worker.queries import to_json_types
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
QUERY_REGEX = re.compile("[\[\]@#$%^&?;`/]") QUERY_REGEX = re.compile("[\[\]@#$%^&?;`/]")
@ -94,6 +98,8 @@ def fetch_data_from_db(
process_session = sessionmaker(bind=engine) process_session = sessionmaker(bind=engine)
db_session = process_session() db_session = process_session()
time_now = datetime.now(timezone.utc)
try: try:
result = db_session.execute(text(query), params) result = db_session.execute(text(query), params)
data_keys = result.keys() data_keys = result.keys()
@ -112,6 +118,11 @@ def fetch_data_from_db(
finally: finally:
db_session.close() 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 return data_keys, data_rows
@ -121,7 +132,10 @@ def prepare_output(
""" """
Parse incoming data from database to proper format OutputType. 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 = [] output_raw = []
for row in data_temp_rows: for row in data_temp_rows:
data_r = {} data_r = {}

Wyświetl plik

@ -1,14 +1,10 @@
import argparse import argparse
import logging import logging
from datetime import datetime, timezone
from moonstreamdb.blockchain import AvailableBlockchainType from moonstreamdb.blockchain import AvailableBlockchainType
from ..actions import push_data_to_bucket from ..actions import push_data_to_bucket
from ..settings import ( from ..settings import MOONSTREAM_S3_DATA_BUCKET, MOONSTREAM_S3_DATA_BUCKET_PREFIX
MOONSTREAM_S3_DATA_BUCKET,
MOONSTREAM_S3_DATA_BUCKET_PREFIX,
)
from .actions import ( from .actions import (
OutputType, OutputType,
fetch_data_from_db, fetch_data_from_db,
@ -59,8 +55,6 @@ def main() -> None:
parser.set_defaults(func=lambda _: parser.print_help()) parser.set_defaults(func=lambda _: parser.print_help())
subcommands = parser.add_subparsers(description="Query crawlers commands") subcommands = parser.add_subparsers(description="Query crawlers commands")
time_now = datetime.now(timezone.utc)
parser_queries_execute = subcommands.add_parser( parser_queries_execute = subcommands.add_parser(
"execute", description="Execute query" "execute", description="Execute query"
) )