Makes logs less noisy

- Show telemetry enabled/disabled state on init, not every 2 minutes
- Convert no docs synced logs to debug level instead of warning
  Having synced docs isn't as important to use Khoj now, unlike before
This commit is contained in:
Debanjum Singh Solanky
2024-04-13 11:22:58 +05:30
parent b8bc6bee83
commit b820daf38f
3 changed files with 11 additions and 8 deletions

View File

@@ -39,7 +39,7 @@ from khoj.routers.twilio import is_twilio_enabled
from khoj.utils import constants, state from khoj.utils import constants, state
from khoj.utils.config import SearchType from khoj.utils.config import SearchType
from khoj.utils.fs_syncer import collect_files from khoj.utils.fs_syncer import collect_files
from khoj.utils.helpers import is_none_or_empty from khoj.utils.helpers import is_none_or_empty, telemetry_disabled
from khoj.utils.rawconfig import FullConfig from khoj.utils.rawconfig import FullConfig
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
@@ -232,6 +232,9 @@ def configure_server(
state.search_models = configure_search(state.search_models, state.config.search_type) state.search_models = configure_search(state.search_models, state.config.search_type)
setup_default_agent() setup_default_agent()
message = "📡 Telemetry disabled" if telemetry_disabled(state.config.app) else "📡 Telemetry enabled"
logger.info(message)
if not init: if not init:
initialize_content(regenerate, search_type, user) initialize_content(regenerate, search_type, user)
@@ -329,9 +332,7 @@ def configure_search_types():
@schedule.repeat(schedule.every(2).minutes) @schedule.repeat(schedule.every(2).minutes)
def upload_telemetry(): def upload_telemetry():
if not state.config or not state.config.app or not state.config.app.should_log_telemetry or not state.telemetry: if telemetry_disabled(state.config.app) or not state.telemetry:
message = "📡 No telemetry to upload" if not state.telemetry else "📡 Telemetry logging disabled"
logger.debug(message)
return return
try: try:

View File

@@ -289,9 +289,7 @@ async def extract_references_and_questions(
return compiled_references, inferred_queries, q return compiled_references, inferred_queries, q
if not await sync_to_async(EntryAdapters.user_has_entries)(user=user): if not await sync_to_async(EntryAdapters.user_has_entries)(user=user):
logger.warning( logger.debug("No documents in knowledge base. Use a Khoj client to sync and chat with your docs.")
"No content index loaded, so cannot extract references from knowledge base. Please configure your data sources and update the index to chat with your notes."
)
return compiled_references, inferred_queries, q return compiled_references, inferred_queries, q
# Extract filter terms from user message # Extract filter terms from user message

View File

@@ -233,6 +233,10 @@ def get_server_id():
return server_id return server_id
def telemetry_disabled(app_config: AppConfig):
return not app_config or not app_config.should_log_telemetry
def log_telemetry( def log_telemetry(
telemetry_type: str, telemetry_type: str,
api: str = None, api: str = None,
@@ -242,7 +246,7 @@ def log_telemetry(
): ):
"""Log basic app usage telemetry like client, os, api called""" """Log basic app usage telemetry like client, os, api called"""
# Do not log usage telemetry, if telemetry is disabled via app config # Do not log usage telemetry, if telemetry is disabled via app config
if not app_config or not app_config.should_log_telemetry: if telemetry_disabled(app_config):
return [] return []
if properties.get("server_id") is None: if properties.get("server_id") is None: