Skip to content

Commit

Permalink
feat(log): refer #313
Browse files Browse the repository at this point in the history
* Centralized logging
* Added stream handler
* Reduced clutter in log messages
  • Loading branch information
kartikay-bagla committed Oct 13, 2021
1 parent eba8827 commit 5f347fc
Show file tree
Hide file tree
Showing 6 changed files with 21 additions and 29 deletions.
4 changes: 2 additions & 2 deletions chaos_genius/alerts/base_alerts.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import logging
import os
import io
import json
Expand All @@ -15,9 +16,8 @@
from chaos_genius.alerts.email import send_static_alert_email
from chaos_genius.alerts.slack import anomaly_alert_slack, anomaly_alert_slack_formatted
from jinja2 import Environment, FileSystemLoader, select_autoescape
from chaos_genius.logger import configure_logger

logger = configure_logger(__name__)
logger = logging.getLogger()

FREQUENCY_DICT = {
"weekly": datetime.timedelta(days = 7, hours = 0, minutes = 0),
Expand Down
8 changes: 1 addition & 7 deletions chaos_genius/app.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
from flask_cors import CORS

from chaos_genius import commands
from chaos_genius.logger import configure_logger
from chaos_genius.views import (
data_source_view,
kpi_view,
Expand Down Expand Up @@ -112,10 +113,3 @@ def register_commands(app):
app.cli.add_command(commands.reinstall_db)
app.cli.add_command(commands.insert_demo_data)
app.cli.add_command(commands.run_anomaly_rca_scheduler)


def configure_logger(app):
"""Configure loggers."""
handler = logging.StreamHandler(sys.stdout)
if not app.logger.handlers:
app.logger.addHandler(handler)
4 changes: 2 additions & 2 deletions chaos_genius/core/anomaly/controller.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
"""Provides AnomalyDetectionController to compute Anomaly Detection."""

from datetime import datetime
import logging

import pandas as pd

Expand All @@ -12,9 +13,8 @@
from chaos_genius.databases.models.anomaly_data_model import (
AnomalyDataOutput, db)
from chaos_genius.databases.models.data_source_model import DataSource
from chaos_genius.logger import configure_logger

logger = configure_logger(__name__)
logger = logging.getLogger()

FILTER_MAX_SUBGROUPS = 100

Expand Down
4 changes: 2 additions & 2 deletions chaos_genius/core/anomaly/processor.py
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
"""Provides processor class which computes anomaly detection."""
import datetime
import logging

import pandas as pd

from chaos_genius.core.anomaly.constants import FREQUENCY_DELTA
from chaos_genius.core.anomaly.models import MODEL_MAPPER, AnomalyModel
from chaos_genius.core.anomaly.utils import bound_between, get_timedelta
from chaos_genius.logger import configure_logger

logger = configure_logger(__name__)
logger = logging.getLogger()

ZSCORE_UPPER_BOUND = 2.5

Expand Down
6 changes: 2 additions & 4 deletions chaos_genius/core/rca/rca_controller.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,23 +2,21 @@

import json
from datetime import datetime
import logging
from typing import Tuple

import numpy as np
import pandas as pd

# from chaos_genius.connectors.base_connector import get_df_from_db_uri
from chaos_genius.connectors import get_sqla_db_conn
from chaos_genius.core.rca.constants import (LINE_DATA_TIMESTAMP_FORMAT,
STATIC_END_DATA_FORMAT, TIMELINES)
from chaos_genius.core.rca.rca_utils.data_loader import rca_load_data
from chaos_genius.core.rca.root_cause_analysis import RootCauseAnalysis
from chaos_genius.core.utils.round import round_series
from chaos_genius.databases.models.data_source_model import DataSource
from chaos_genius.databases.models.rca_data_model import RcaData, db
from chaos_genius.logger import configure_logger

logger = configure_logger(__name__)
logger = logging.getLogger()


class RootCauseAnalysisController:
Expand Down
24 changes: 12 additions & 12 deletions chaos_genius/logger.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,24 +5,24 @@
from pythonjsonlogger import jsonlogger


def configure_logger(name: str = None) -> logging.Logger:
"""Configure and return a logger.
:param name: Name of logger, defaults to None
:type name: str, optional
:return: logger object
:rtype: logging.Logger
"""
logger = logging.getLogger(name)
def configure_logger(app):
"""Configure loggers."""
logger = logging.getLogger()
# TODO: Update debug based on env
logger.setLevel(logging.DEBUG)
json_handler = RotatingFileHandler(
"chaosgenius.log", maxBytes=4194304, backupCount=5)
json_formatter = jsonlogger.JsonFormatter(
"%(asctime)s %(lineno)s %(funcName)s %(module)s %(filename)s %(name)s "
"%(levelname)s %(message)s"
"%(levelname)s %(message)s %(lineno)s %(funcName)s %(filename)s "
)
json_handler.setFormatter(json_formatter)

streamHandler = logging.StreamHandler()
streamHandler.setFormatter(json_formatter)

logger.addHandler(json_handler)
return logger
logger.addHandler(streamHandler)

if not app.logger.handlers:
app.logger.addHandler(json_handler)
app.logger.addHandler(streamHandler)

0 comments on commit 5f347fc

Please sign in to comment.