keep icon indicating copy to clipboard operation
keep copied to clipboard

[🐛 Bug]: The keep-api container does not start API

Open dargow opened this issue 2 months ago • 3 comments

Describe the bug The keep api container does not start correctly.

Cyclically repeated messages:

{"worker_type": null, "asctime": "2025-09-30 12:23:52,503", "message": "Checking if server is up at http://localhost:8081...", "levelname": "INFO", "name": "__main__", "filename": "server_jobs_bg.py", "otelTraceID": null, "otelSpanID": null, "otelTraceSampled": null, "otelServiceName": null, "threadName": "MainThread", "process": 8, "module": "server_jobs_bg", "taskName": null}
{"worker_type": null, "asctime": "2025-09-30 12:23:52,504", "message": "API is not up yet. Waiting...", "levelname": "INFO", "name": "__main__", "filename": "server_jobs_bg.py", "otelTraceID": null, "otelSpanID": null, "otelTraceSampled": null, "otelServiceName": null, "threadName": "MainThread", "process": 8, "module": "server_jobs_bg", "taskName": null}

To Reproduce Deploy with docker-compose manifest:

services:
...
  keep-backend:
    image: us-central1-docker.pkg.dev/keephq/keep/keep-api
    ports:
      - "8086:8081"
    environment:
      - PORT=8081
      - SECRET_MANAGER_TYPE=DB
      - DATABASE_CONNECTION_STRING=postgresql+psycopg2://keep:[email protected]:5432/keep
      - AUTH_TYPE=NOAUTH
      - PUSHER_DISABLED=true
      - POSTHOG_DISABLED=true
      - SENTRY_DISABLED=true
      - KEEP_METRICS=true
    volumes:
      - /mnt/ssd-m2-app/app-data/keephq:/state

Expected behavior A clear and concise description of what you expected to happen.

Screenshots If applicable, add screenshots to help explain your problem.

Additional context Full log of container:

Application Name:keephq Container ID:7ee5a0ec3284f4dd8f0b08f1743a10a2f49acd57e3a5446ba78b02916e33059c
2025-09-30 12:20:44.191025+00:00 ++ dirname /venv/lib/python3.13/site-packages/keep/entrypoint.sh
2025-09-30 12:20:44.191458+00:00 + SCRIPT_DIR=/venv/lib/python3.13/site-packages/keep
2025-09-30 12:20:44.191581+00:00 + keep provider build_cache
2025-09-30 12:20:44.191650+00:00 + python /venv/lib/python3.13/site-packages/keep/server_jobs_bg.py
2025-09-30 12:20:45.990477+00:00 /venv/lib/python3.13/site-packages/starlette/config.py:60: UserWarning: Config file '/venv/lib/python3.13/site-packages/keep/.env' not found.
2025-09-30 12:20:45.990505+00:00 warnings.warn(f"Config file '{env_file}' not found.")
2025-09-30 12:20:45.990676+00:00 /venv/lib/python3.13/site-packages/starlette/config.py:60: UserWarning: Config file '/venv/lib/python3.13/site-packages/keep/.env' not found.
2025-09-30 12:20:45.990697+00:00 warnings.warn(f"Config file '{env_file}' not found.")
2025-09-30 12:20:47.464698+00:00 {"worker_type": null, "asctime": "2025-09-30 12:20:47,464", "message": "Starting background server jobs.", "levelname": "INFO", "name": "__main__", "filename": "server_jobs_bg.py", "otelTraceID": null, "otelSpanID": null, "otelTraceSampled": null, "otelServiceName": null, "threadName": "MainThread", "process": 8, "module": "server_jobs_bg", "taskName": null}
2025-09-30 12:20:47.464733+00:00 {"worker_type": null, "asctime": "2025-09-30 12:20:47,464", "message": "Checking if server is up at http://localhost:8081...", "levelname": "INFO", "name": "__main__", "filename": "server_jobs_bg.py", "otelTraceID": null, "otelSpanID": null, "otelTraceSampled": null, "otelServiceName": null, "threadName": "MainThread", "process": 8, "module": "server_jobs_bg", "taskName": null}
2025-09-30 12:20:47.466840+00:00 {"worker_type": null, "asctime": "2025-09-30 12:20:47,466", "message": "API is not up yet. Waiting...", "levelname": "INFO", "name": "__main__", "filename": "server_jobs_bg.py", "otelTraceID": null, "otelSpanID": null, "otelTraceSampled": null, "otelServiceName": null, "threadName": "MainThread", "process": 8, "module": "server_jobs_bg", "taskName": null}
2025-09-30 12:20:47.466864+00:00 2025-09-30 12:20:47,466 [INFO] keep.cli.cli: Building providers cache
2025-09-30 12:20:47.466938+00:00 2025-09-30 12:20:47,466 [INFO] keep.providers.providers_factory: Loading providers
2025-09-30 12:20:49.125509+00:00 /venv/lib/python3.13/site-packages/splunklib/client.py:782: SyntaxWarning: invalid escape sequence '\/'
2025-09-30 12:20:49.125547+00:00 versionSearch = re.search('(?:servicesNS\/[^/]+\/[^/]+|services)\/[^/]+\/v(\d+)\/', path)
2025-09-30 12:20:50.940171+00:00 /venv/lib/python3.13/site-packages/uptime_kuma_api/api.py:2765: SyntaxWarning: invalid escape sequence '\*'
2025-09-30 12:20:50.940196+00:00 :param bool, optional trustProxy: Trust Proxy. Trust 'X-Forwarded-\*' headers. If you want to get the correct client IP and your Uptime Kuma is behind such as Nginx or Apache, you should enable this., defaults to False
2025-09-30 12:20:52.467094+00:00 {"worker_type": null, "asctime": "2025-09-30 12:20:52,466", "message": "Checking if server is up at http://localhost:8081...", "levelname": "INFO", "name": "__main__", "filename": "server_jobs_bg.py", "otelTraceID": null, "otelSpanID": null, "otelTraceSampled": null, "otelServiceName": null, "threadName": "MainThread", "process": 8, "module": "server_jobs_bg", "taskName": null}
2025-09-30 12:20:52.468004+00:00 {"worker_type": null, "asctime": "2025-09-30 12:20:52,467", "message": "API is not up yet. Waiting...", "levelname": "INFO", "name": "__main__", "filename": "server_jobs_bg.py", "otelTraceID": null, "otelSpanID": null, "otelTraceSampled": null, "otelServiceName": null, "threadName": "MainThread", "process": 8, "module": "server_jobs_bg", "taskName": null}
2025-09-30 12:20:53.931176+00:00 2025-09-30 12:20:53,931 [INFO] keep.cli.cli: Providers cache built successfully
2025-09-30 12:20:54.635406+00:00 + '[' '' '!=' true ']'
2025-09-30 12:20:54.635443+00:00 + exec gunicorn keep.api.api:get_app --bind 0.0.0.0:8080 --workers 4 -k uvicorn.workers.UvicornWorker -c /venv/lib/python3.13/site-packages/keep/api/config.py --preload
2025-09-30 12:20:55.391094+00:00 /venv/lib/python3.13/site-packages/starlette/config.py:60: UserWarning: Config file '/venv/lib/python3.13/site-packages/keep/.env' not found.
2025-09-30 12:20:55.391124+00:00 warnings.warn(f"Config file '{env_file}' not found.")
2025-09-30 12:20:56.475536+00:00 Rate limiter is disabled
2025-09-30 12:20:57.251025+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,250", "message": "Creating a connection pool with size 5", "levelname": "INFO", "name": "keep.api.core.db_utils", "filename": "db_utils.py", "otelTraceID": null, "otelSpanID": null, "otelTraceSampled": null, "otelServiceName": null, "threadName": "MainThread", "process": 1, "module": "db_utils", "taskName": null}
2025-09-30 12:20:57.251538+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,251", "message": "Initializing WorkflowDBHandler", "levelname": "INFO", "name": "keep.api.logging", "filename": "logging.py", "otelTraceID": null, "otelSpanID": null, "otelTraceSampled": null, "otelServiceName": null, "threadName": "MainThread", "process": 1, "module": "logging", "taskName": null}
2025-09-30 12:20:57.251577+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,251", "message": "Starting WorkflowDBHandler timer thread", "levelname": "INFO", "name": "keep.api.logging", "filename": "logging.py", "otelTraceID": null, "otelSpanID": null, "otelTraceSampled": null, "otelServiceName": null, "threadName": "MainThread", "process": 1, "module": "logging", "taskName": null}
2025-09-30 12:20:57.251706+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,251", "message": "Started WorkflowDBHandler timer thread", "levelname": "INFO", "name": "keep.api.logging", "filename": "logging.py", "otelTraceID": null, "otelSpanID": null, "otelTraceSampled": null, "otelServiceName": null, "threadName": "MainThread", "process": 1, "module": "logging", "taskName": null}
2025-09-30 12:20:57.270602+00:00 [2025-09-30 12:20:57 +0000] [1] [INFO] Starting gunicorn 23.0.0
2025-09-30 12:20:57.270652+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,270", "message": "Keep server starting", "levelname": "INFO", "name": "__config__", "filename": "config.py", "otelTraceID": null, "otelSpanID": null, "otelTraceSampled": null, "otelServiceName": null, "threadName": "MainThread", "process": 1, "module": "config", "taskName": null}
2025-09-30 12:20:57.270684+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,270", "message": "Running migrations...", "levelname": "INFO", "name": "keep.api.core.db_on_start", "filename": "db_on_start.py", "otelTraceID": null, "otelSpanID": null, "otelTraceSampled": null, "otelServiceName": null, "threadName": "MainThread", "process": 1, "module": "db_on_start", "taskName": null}
2025-09-30 12:20:57.289008+00:00 INFO  [PID 1] [alembic.runtime.migration] Context impl PostgresqlImpl.
2025-09-30 12:20:57.289030+00:00 INFO  [PID 1] [alembic.runtime.migration] Will assume transactional DDL.
2025-09-30 12:20:57.365042+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,364", "message": "Finished migrations", "levelname": "INFO", "name": "keep.api.core.db_on_start", "filename": "db_on_start.py", "otelTraceID": null, "otelSpanID": null, "otelTraceSampled": null, "otelServiceName": null, "threadName": "MainThread", "process": 1, "module": "db_on_start", "taskName": null}
2025-09-30 12:20:57.365081+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,365", "message": "Loading providers from cache file", "levelname": "INFO", "name": "keep.providers.providers_factory", "filename": "providers_factory.py", "otelTraceID": null, "otelSpanID": null, "otelTraceSampled": null, "otelServiceName": null, "threadName": "MainThread", "process": 1, "module": "providers_factory", "taskName": null, "file": "providers_cache.json"}
2025-09-30 12:20:57.374663+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,374", "message": "Providers loaded from cache file", "levelname": "INFO", "name": "keep.providers.providers_factory", "filename": "providers_factory.py", "otelTraceID": null, "otelSpanID": null, "otelTraceSampled": null, "otelServiceName": null, "threadName": "MainThread", "process": 1, "module": "providers_factory", "taskName": null, "file": "providers_cache.json"}
2025-09-30 12:20:57.391305+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,391", "message": "Single tenant already exists", "levelname": "INFO", "name": "keep.api.core.db_on_start", "filename": "db_on_start.py", "otelTraceID": null, "otelSpanID": null, "otelTraceSampled": null, "otelServiceName": null, "threadName": "MainThread", "process": 1, "module": "db_on_start", "taskName": null}
2025-09-30 12:20:57.392488+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,392", "message": "Single tenant created", "levelname": "INFO", "name": "keep.api.core.db_on_start", "filename": "db_on_start.py", "otelTraceID": null, "otelSpanID": null, "otelTraceSampled": null, "otelServiceName": null, "threadName": "MainThread", "process": 1, "module": "db_on_start", "taskName": null}
2025-09-30 12:20:57.392547+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,392", "message": "Loading providers into cache", "levelname": "INFO", "name": "__config__", "filename": "config.py", "otelTraceID": null, "otelSpanID": null, "otelTraceSampled": null, "otelServiceName": null, "threadName": "MainThread", "process": 1, "module": "config", "taskName": null}
2025-09-30 12:20:57.392586+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,392", "message": "Provisioning providers and workflows", "levelname": "INFO", "name": "__config__", "filename": "config.py", "otelTraceID": null, "otelSpanID": null, "otelTraceSampled": null, "otelServiceName": null, "threadName": "MainThread", "process": 1, "module": "config", "taskName": null}
2025-09-30 12:20:57.394241+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,394", "message": "No providers for provisioning found", "levelname": "INFO", "name": "keep.providers.providers_service", "filename": "providers_service.py", "otelTraceID": null, "otelSpanID": null, "otelTraceSampled": null, "otelServiceName": null, "threadName": "MainThread", "process": 1, "module": "providers_service", "taskName": null}
2025-09-30 12:20:57.394272+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,394", "message": "Providers loaded successfully", "levelname": "INFO", "name": "__config__", "filename": "config.py", "otelTraceID": null, "otelSpanID": null, "otelTraceSampled": null, "otelServiceName": null, "threadName": "MainThread", "process": 1, "module": "config", "taskName": null}
2025-09-30 12:20:57.394322+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,394", "message": "Getting all already provisioned workflows", "levelname": "INFO", "name": "keep.workflowmanager.workflowstore", "filename": "workflowstore.py", "otelTraceID": null, "otelSpanID": null, "otelTraceSampled": null, "otelServiceName": null, "threadName": "MainThread", "process": 1, "module": "workflowstore", "taskName": null}
2025-09-30 12:20:57.396130+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,396", "message": "Found 0 provisioned workflows", "levelname": "INFO", "name": "keep.workflowmanager.workflowstore", "filename": "workflowstore.py", "otelTraceID": null, "otelSpanID": null, "otelTraceSampled": null, "otelServiceName": null, "threadName": "MainThread", "process": 1, "module": "workflowstore", "taskName": null}
2025-09-30 12:20:57.396167+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,396", "message": "No workflows for provisioning found", "levelname": "INFO", "name": "keep.workflowmanager.workflowstore", "filename": "workflowstore.py", "otelTraceID": null, "otelSpanID": null, "otelTraceSampled": null, "otelServiceName": null, "threadName": "MainThread", "process": 1, "module": "workflowstore", "taskName": null}
2025-09-30 12:20:57.396192+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,396", "message": "Workflows provisioned successfully", "levelname": "INFO", "name": "__config__", "filename": "config.py", "otelTraceID": null, "otelSpanID": null, "otelTraceSampled": null, "otelServiceName": null, "threadName": "MainThread", "process": 1, "module": "config", "taskName": null}
2025-09-30 12:20:57.396246+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,396", "message": "Dashboards provisioned successfully", "levelname": "INFO", "name": "__config__", "filename": "config.py", "otelTraceID": null, "otelSpanID": null, "otelTraceSampled": null, "otelServiceName": null, "threadName": "MainThread", "process": 1, "module": "config", "taskName": null}
2025-09-30 12:20:57.396282+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,396", "message": "Provisioning deduplication rules", "levelname": "INFO", "name": "__config__", "filename": "config.py", "otelTraceID": null, "otelSpanID": null, "otelTraceSampled": null, "otelServiceName": null, "threadName": "MainThread", "process": 1, "module": "config", "taskName": null}
2025-09-30 12:20:57.396315+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,396", "message": "No deduplication rules found in env. Nothing to provision.", "levelname": "INFO", "name": "keep.api.alert_deduplicator.deduplication_rules_provisioning", "filename": "deduplication_rules_provisioning.py", "otelTraceID": null, "otelSpanID": null, "otelTraceSampled": null, "otelServiceName": null, "threadName": "MainThread", "process": 1, "module": "deduplication_rules_provisioning", "taskName": null}
2025-09-30 12:20:57.396343+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,396", "message": "Deduplication rules provisioned successfully", "levelname": "INFO", "name": "__config__", "filename": "config.py", "otelTraceID": null, "otelSpanID": null, "otelTraceSampled": null, "otelServiceName": null, "threadName": "MainThread", "process": 1, "module": "config", "taskName": null}
2025-09-30 12:20:57.396374+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,396", "message": "Keep server started", "levelname": "INFO", "name": "__config__", "filename": "config.py", "otelTraceID": null, "otelSpanID": null, "otelTraceSampled": null, "otelServiceName": null, "threadName": "MainThread", "process": 1, "module": "config", "taskName": null}
2025-09-30 12:20:57.396868+00:00 [2025-09-30 12:20:57 +0000] [1] [INFO] Listening at: http://0.0.0.0:8080 (1)
2025-09-30 12:20:57.396895+00:00 [2025-09-30 12:20:57 +0000] [1] [INFO] Using worker: uvicorn.workers.UvicornWorker
2025-09-30 12:20:57.401353+00:00 [2025-09-30 12:20:57 +0000] [16] [INFO] Booting worker with pid: 16
2025-09-30 12:20:57.417658+00:00 Init logging in worker
2025-09-30 12:20:57.418845+00:00 Logging initialized in worker
2025-09-30 12:20:57.424028+00:00 [2025-09-30 12:20:57 +0000] [18] [INFO] Booting worker with pid: 18
2025-09-30 12:20:57.429506+00:00 Init logging in worker
2025-09-30 12:20:57.430668+00:00 Logging initialized in worker
2025-09-30 12:20:57.445973+00:00 [2025-09-30 12:20:57 +0000] [20] [INFO] Booting worker with pid: 20
2025-09-30 12:20:57.451941+00:00 Init logging in worker
2025-09-30 12:20:57.453380+00:00 Logging initialized in worker
2025-09-30 12:20:57.466233+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,466", "message": "KEEP_API_URL is not set, setting it to default", "levelname": "INFO", "name": "keep.api.api", "filename": "api.py", "otelTraceID": null, "otelSpanID": null, "otelTraceSampled": null, "otelServiceName": null, "threadName": "MainThread", "process": 16, "module": "api", "taskName": "Task-2", "keep_api_url": "http://0.0.0.0:8081"}
2025-09-30 12:20:57.466291+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,466", "message": "Starting Keep with http://0.0.0.0:8081 as URL and version 0.47.9", "levelname": "INFO", "name": "keep.api.api", "filename": "api.py", "otelTraceID": null, "otelSpanID": null, "otelTraceSampled": null, "otelServiceName": null, "threadName": "MainThread", "process": 16, "module": "api", "taskName": "Task-2", "keep_version": "0.47.9", "keep_api_url": null}
2025-09-30 12:20:57.466309+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,466", "message": "KEEP_API_URL is not set, setting it to default", "levelname": "INFO", "name": "keep.api.api", "filename": "api.py", "otelTraceID": null, "otelSpanID": null, "otelTraceSampled": null, "otelServiceName": null, "threadName": "MainThread", "process": 18, "module": "api", "taskName": "Task-2", "keep_api_url": "http://0.0.0.0:8081"}
2025-09-30 12:20:57.466364+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,466", "message": "Starting Keep with http://0.0.0.0:8081 as URL and version 0.47.9", "levelname": "INFO", "name": "keep.api.api", "filename": "api.py", "otelTraceID": null, "otelSpanID": null, "otelTraceSampled": null, "otelServiceName": null, "threadName": "MainThread", "process": 18, "module": "api", "taskName": "Task-2", "keep_version": "0.47.9", "keep_api_url": null}
2025-09-30 12:20:57.467350+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,467", "message": "KEEP_API_URL is not set, setting it to default", "levelname": "INFO", "name": "keep.api.api", "filename": "api.py", "otelTraceID": null, "otelSpanID": null, "otelTraceSampled": null, "otelServiceName": null, "threadName": "MainThread", "process": 20, "module": "api", "taskName": "Task-2", "keep_api_url": "http://0.0.0.0:8081"}
2025-09-30 12:20:57.467413+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,467", "message": "Starting Keep with http://0.0.0.0:8081 as URL and version 0.47.9", "levelname": "INFO", "name": "keep.api.api", "filename": "api.py", "otelTraceID": null, "otelSpanID": null, "otelTraceSampled": null, "otelServiceName": null, "threadName": "MainThread", "process": 20, "module": "api", "taskName": "Task-2", "keep_version": "0.47.9", "keep_api_url": null}
2025-09-30 12:20:57.468205+00:00 {"worker_type": null, "asctime": "2025-09-30 12:20:57,468", "message": "Checking if server is up at http://localhost:8081...", "levelname": "INFO", "name": "__main__", "filename": "server_jobs_bg.py", "otelTraceID": null, "otelSpanID": null, "otelTraceSampled": null, "otelServiceName": null, "threadName": "MainThread", "process": 8, "module": "server_jobs_bg", "taskName": null}
2025-09-30 12:20:57.469086+00:00 {"worker_type": null, "asctime": "2025-09-30 12:20:57,469", "message": "API is not up yet. Waiting...", "levelname": "INFO", "name": "__main__", "filename": "server_jobs_bg.py", "otelTraceID": null, "otelSpanID": null, "otelTraceSampled": null, "otelServiceName": null, "threadName": "MainThread", "process": 8, "module": "server_jobs_bg", "taskName": null}
2025-09-30 12:20:57.487843+00:00 [2025-09-30 12:20:57 +0000] [22] [INFO] Booting worker with pid: 22
2025-09-30 12:20:57.493691+00:00 Init logging in worker
2025-09-30 12:20:57.494900+00:00 Logging initialized in worker
2025-09-30 12:20:57.509202+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,509", "message": "KEEP_API_URL is not set, setting it to default", "levelname": "INFO", "name": "keep.api.api", "filename": "api.py", "otelTraceID": null, "otelSpanID": null, "otelTraceSampled": null, "otelServiceName": null, "threadName": "MainThread", "process": 22, "module": "api", "taskName": "Task-2", "keep_api_url": "http://0.0.0.0:8081"}
2025-09-30 12:20:57.509233+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,509", "message": "Starting Keep with http://0.0.0.0:8081 as URL and version 0.47.9", "levelname": "INFO", "name": "keep.api.api", "filename": "api.py", "otelTraceID": null, "otelSpanID": null, "otelTraceSampled": null, "otelServiceName": null, "threadName": "MainThread", "process": 22, "module": "api", "taskName": "Task-2", "keep_version": "0.47.9", "keep_api_url": null}
2025-09-30 12:20:57.534977+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,534", "message": "Starting Keep with authentication type: noauth", "levelname": "INFO", "name": "keep.api.api", "filename": "api.py", "otelTraceID": null, "otelSpanID": null, "otelTraceSampled": null, "otelServiceName": null, "threadName": "MainThread", "process": 18, "module": "api", "taskName": "Task-2"}
2025-09-30 12:20:57.535587+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,535", "message": "Starting Keep with authentication type: noauth", "levelname": "INFO", "name": "keep.api.api", "filename": "api.py", "otelTraceID": null, "otelSpanID": null, "otelTraceSampled": null, "otelServiceName": null, "threadName": "MainThread", "process": 16, "module": "api", "taskName": "Task-2"}
2025-09-30 12:20:57.535909+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,535", "message": "DB Identity Manager initialized", "levelname": "INFO", "name": "keep.identitymanager.identitymanager", "filename": "noauth_identitymanager.py", "otelTraceID": null, "otelSpanID": null, "otelTraceSampled": null, "otelServiceName": null, "threadName": "MainThread", "process": 18, "module": "noauth_identitymanager", "taskName": "Task-2"}
2025-09-30 12:20:57.535927+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,535", "message": "DB Identity Manager initialized", "levelname": "INFO", "name": "keep.identitymanager.identitymanager", "filename": "noauth_identitymanager.py", "otelTraceID": null, "otelSpanID": null, "otelTraceSampled": null, "otelServiceName": null, "threadName": "MainThread", "process": 16, "module": "noauth_identitymanager", "taskName": "Task-2"}
2025-09-30 12:20:57.536089+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,536", "message": "Starting Keep with authentication type: noauth", "levelname": "INFO", "name": "keep.api.api", "filename": "api.py", "otelTraceID": null, "otelSpanID": null, "otelTraceSampled": null, "otelServiceName": null, "threadName": "MainThread", "process": 20, "module": "api", "taskName": "Task-2"}
2025-09-30 12:20:57.536121+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,536", "message": "Added tenant endpoint", "levelname": "INFO", "name": "keep.identitymanager.identitymanager", "filename": "noauth_identitymanager.py", "otelTraceID": null, "otelSpanID": null, "otelTraceSampled": null, "otelServiceName": null, "threadName": "MainThread", "process": 18, "module": "noauth_identitymanager", "taskName": "Task-2"}
2025-09-30 12:20:57.536148+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,536", "message": "Added tenant endpoint", "levelname": "INFO", "name": "keep.identitymanager.identitymanager", "filename": "noauth_identitymanager.py", "otelTraceID": null, "otelSpanID": null, "otelTraceSampled": null, "otelServiceName": null, "threadName": "MainThread", "process": 16, "module": "noauth_identitymanager", "taskName": "Task-2"}
2025-09-30 12:20:57.536412+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,536", "message": "DB Identity Manager initialized", "levelname": "INFO", "name": "keep.identitymanager.identitymanager", "filename": "noauth_identitymanager.py", "otelTraceID": null, "otelSpanID": null, "otelTraceSampled": null, "otelServiceName": null, "threadName": "MainThread", "process": 20, "module": "noauth_identitymanager", "taskName": "Task-2"}
2025-09-30 12:20:57.536633+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,536", "message": "Added tenant endpoint", "levelname": "INFO", "name": "keep.identitymanager.identitymanager", "filename": "noauth_identitymanager.py", "otelTraceID": null, "otelSpanID": null, "otelTraceSampled": null, "otelServiceName": null, "threadName": "MainThread", "process": 20, "module": "noauth_identitymanager", "taskName": "Task-2"}
2025-09-30 12:20:57.546187+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,546", "message": "ASGI app factory detected. Using it, but please consider setting the --factory flag explicitly.", "levelname": "WARNING", "name": "uvicorn.error", "filename": "config.py", "otelTraceID": "0", "otelSpanID": "0", "otelTraceSampled": false, "otelServiceName": "keep-api", "threadName": "MainThread", "process": 18, "module": "config", "taskName": "Task-2"}
2025-09-30 12:20:57.546205+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,546", "message": "ASGI app factory detected. Using it, but please consider setting the --factory flag explicitly.", "levelname": "WARNING", "name": "uvicorn.error", "filename": "config.py", "otelTraceID": "0", "otelSpanID": "0", "otelTraceSampled": false, "otelServiceName": "keep-api", "threadName": "MainThread", "process": 16, "module": "config", "taskName": "Task-2"}
2025-09-30 12:20:57.546329+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,546", "message": "ASGI app factory detected. Using it, but please consider setting the --factory flag explicitly.", "levelname": "WARNING", "name": "uvicorn.error", "filename": "config.py", "otelTraceID": "0", "otelSpanID": "0", "otelTraceSampled": false, "otelServiceName": "keep-api", "threadName": "MainThread", "process": 20, "module": "config", "taskName": "Task-2"}
2025-09-30 12:20:57.546379+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,546", "message": "Started server process [18]", "levelname": "INFO", "name": "uvicorn.error", "filename": "server.py", "otelTraceID": "0", "otelSpanID": "0", "otelTraceSampled": false, "otelServiceName": "keep-api", "threadName": "MainThread", "process": 18, "module": "server", "taskName": "Task-2", "color_message": "Started server process [\u001b[36m%d\u001b[0m]"}
2025-09-30 12:20:57.546392+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,546", "message": "Started server process [16]", "levelname": "INFO", "name": "uvicorn.error", "filename": "server.py", "otelTraceID": "0", "otelSpanID": "0", "otelTraceSampled": false, "otelServiceName": "keep-api", "threadName": "MainThread", "process": 16, "module": "server", "taskName": "Task-2", "color_message": "Started server process [\u001b[36m%d\u001b[0m]"}
2025-09-30 12:20:57.546421+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,546", "message": "Waiting for application startup.", "levelname": "INFO", "name": "uvicorn.error", "filename": "on.py", "otelTraceID": "0", "otelSpanID": "0", "otelTraceSampled": false, "otelServiceName": "keep-api", "threadName": "MainThread", "process": 16, "module": "on", "taskName": "Task-2"}
2025-09-30 12:20:57.546431+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,546", "message": "Waiting for application startup.", "levelname": "INFO", "name": "uvicorn.error", "filename": "on.py", "otelTraceID": "0", "otelSpanID": "0", "otelTraceSampled": false, "otelServiceName": "keep-api", "threadName": "MainThread", "process": 18, "module": "on", "taskName": "Task-2"}
2025-09-30 12:20:57.546521+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,546", "message": "Started server process [20]", "levelname": "INFO", "name": "uvicorn.error", "filename": "server.py", "otelTraceID": "0", "otelSpanID": "0", "otelTraceSampled": false, "otelServiceName": "keep-api", "threadName": "MainThread", "process": 20, "module": "server", "taskName": "Task-2", "color_message": "Started server process [\u001b[36m%d\u001b[0m]"}
2025-09-30 12:20:57.546557+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,546", "message": "Waiting for application startup.", "levelname": "INFO", "name": "uvicorn.error", "filename": "on.py", "otelTraceID": "0", "otelSpanID": "0", "otelTraceSampled": false, "otelServiceName": "keep-api", "threadName": "MainThread", "process": 20, "module": "on", "taskName": "Task-2"}
2025-09-30 12:20:57.547139+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,547", "message": "Disope existing DB connections", "levelname": "INFO", "name": "keep.api.api", "filename": "api.py", "otelTraceID": "0", "otelSpanID": "0", "otelTraceSampled": false, "otelServiceName": "keep-api", "threadName": "MainThread", "process": 20, "module": "api", "taskName": "Task-3"}
2025-09-30 12:20:57.547152+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,547", "message": "Disope existing DB connections", "levelname": "INFO", "name": "keep.api.api", "filename": "api.py", "otelTraceID": "0", "otelSpanID": "0", "otelTraceSampled": false, "otelServiceName": "keep-api", "threadName": "MainThread", "process": 16, "module": "api", "taskName": "Task-3"}
2025-09-30 12:20:57.547187+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,547", "message": "Disope existing DB connections", "levelname": "INFO", "name": "keep.api.api", "filename": "api.py", "otelTraceID": "0", "otelSpanID": "0", "otelTraceSampled": false, "otelServiceName": "keep-api", "threadName": "MainThread", "process": 18, "module": "api", "taskName": "Task-3"}
2025-09-30 12:20:57.547200+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,547", "message": "Disposing engine pool", "levelname": "INFO", "name": "keep.api.core.db", "filename": "db.py", "otelTraceID": "0", "otelSpanID": "0", "otelTraceSampled": false, "otelServiceName": "keep-api", "threadName": "MainThread", "process": 20, "module": "db", "taskName": "Task-3"}
2025-09-30 12:20:57.547212+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,547", "message": "Disposing engine pool", "levelname": "INFO", "name": "keep.api.core.db", "filename": "db.py", "otelTraceID": "0", "otelSpanID": "0", "otelTraceSampled": false, "otelServiceName": "keep-api", "threadName": "MainThread", "process": 16, "module": "db", "taskName": "Task-3"}
2025-09-30 12:20:57.547246+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,547", "message": "Disposing engine pool", "levelname": "INFO", "name": "keep.api.core.db", "filename": "db.py", "otelTraceID": "0", "otelSpanID": "0", "otelTraceSampled": false, "otelServiceName": "keep-api", "threadName": "MainThread", "process": 18, "module": "db", "taskName": "Task-3"}
2025-09-30 12:20:57.547489+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,547", "message": "Engine pool disposed", "levelname": "INFO", "name": "keep.api.core.db", "filename": "db.py", "otelTraceID": "0", "otelSpanID": "0", "otelTraceSampled": false, "otelServiceName": "keep-api", "threadName": "MainThread", "process": 20, "module": "db", "taskName": "Task-3"}
2025-09-30 12:20:57.547513+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,547", "message": "Engine pool disposed", "levelname": "INFO", "name": "keep.api.core.db", "filename": "db.py", "otelTraceID": "0", "otelSpanID": "0", "otelTraceSampled": false, "otelServiceName": "keep-api", "threadName": "MainThread", "process": 16, "module": "db", "taskName": "Task-3"}
2025-09-30 12:20:57.547527+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,547", "message": "Starting the services", "levelname": "INFO", "name": "keep.api.api", "filename": "api.py", "otelTraceID": "0", "otelSpanID": "0", "otelTraceSampled": false, "otelServiceName": "keep-api", "threadName": "MainThread", "process": 20, "module": "api", "taskName": "Task-3"}
2025-09-30 12:20:57.547539+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,547", "message": "Starting the services", "levelname": "INFO", "name": "keep.api.api", "filename": "api.py", "otelTraceID": "0", "otelSpanID": "0", "otelTraceSampled": false, "otelServiceName": "keep-api", "threadName": "MainThread", "process": 16, "module": "api", "taskName": "Task-3"}
2025-09-30 12:20:57.547550+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,547", "message": "Engine pool disposed", "levelname": "INFO", "name": "keep.api.core.db", "filename": "db.py", "otelTraceID": "0", "otelSpanID": "0", "otelTraceSampled": false, "otelServiceName": "keep-api", "threadName": "MainThread", "process": 18, "module": "db", "taskName": "Task-3"}
2025-09-30 12:20:57.547567+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,547", "message": "Starting the scheduler", "levelname": "INFO", "name": "keep.api.api", "filename": "api.py", "otelTraceID": "0", "otelSpanID": "0", "otelTraceSampled": false, "otelServiceName": "keep-api", "threadName": "MainThread", "process": 20, "module": "api", "taskName": "Task-3"}
2025-09-30 12:20:57.547579+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,547", "message": "Starting the scheduler", "levelname": "INFO", "name": "keep.api.api", "filename": "api.py", "otelTraceID": "0", "otelSpanID": "0", "otelTraceSampled": false, "otelServiceName": "keep-api", "threadName": "MainThread", "process": 16, "module": "api", "taskName": "Task-3"}
2025-09-30 12:20:57.547590+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,547", "message": "Starting the services", "levelname": "INFO", "name": "keep.api.api", "filename": "api.py", "otelTraceID": "0", "otelSpanID": "0", "otelTraceSampled": false, "otelServiceName": "keep-api", "threadName": "MainThread", "process": 18, "module": "api", "taskName": "Task-3"}
2025-09-30 12:20:57.547602+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,547", "message": "Starting the scheduler", "levelname": "INFO", "name": "keep.api.api", "filename": "api.py", "otelTraceID": "0", "otelSpanID": "0", "otelTraceSampled": false, "otelServiceName": "keep-api", "threadName": "MainThread", "process": 18, "module": "api", "taskName": "Task-3"}
2025-09-30 12:20:57.580658+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,580", "message": "Starting Keep with authentication type: noauth", "levelname": "INFO", "name": "keep.api.api", "filename": "api.py", "otelTraceID": null, "otelSpanID": null, "otelTraceSampled": null, "otelServiceName": null, "threadName": "MainThread", "process": 22, "module": "api", "taskName": "Task-2"}
2025-09-30 12:20:57.581029+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,580", "message": "DB Identity Manager initialized", "levelname": "INFO", "name": "keep.identitymanager.identitymanager", "filename": "noauth_identitymanager.py", "otelTraceID": null, "otelSpanID": null, "otelTraceSampled": null, "otelServiceName": null, "threadName": "MainThread", "process": 22, "module": "noauth_identitymanager", "taskName": "Task-2"}
2025-09-30 12:20:57.581369+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,581", "message": "Added tenant endpoint", "levelname": "INFO", "name": "keep.identitymanager.identitymanager", "filename": "noauth_identitymanager.py", "otelTraceID": null, "otelSpanID": null, "otelTraceSampled": null, "otelServiceName": null, "threadName": "MainThread", "process": 22, "module": "noauth_identitymanager", "taskName": "Task-2"}
2025-09-30 12:20:57.592225+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,592", "message": "ASGI app factory detected. Using it, but please consider setting the --factory flag explicitly.", "levelname": "WARNING", "name": "uvicorn.error", "filename": "config.py", "otelTraceID": "0", "otelSpanID": "0", "otelTraceSampled": false, "otelServiceName": "keep-api", "threadName": "MainThread", "process": 22, "module": "config", "taskName": "Task-2"}
2025-09-30 12:20:57.592444+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,592", "message": "Started server process [22]", "levelname": "INFO", "name": "uvicorn.error", "filename": "server.py", "otelTraceID": "0", "otelSpanID": "0", "otelTraceSampled": false, "otelServiceName": "keep-api", "threadName": "MainThread", "process": 22, "module": "server", "taskName": "Task-2", "color_message": "Started server process [\u001b[36m%d\u001b[0m]"}
2025-09-30 12:20:57.592480+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,592", "message": "Waiting for application startup.", "levelname": "INFO", "name": "uvicorn.error", "filename": "on.py", "otelTraceID": "0", "otelSpanID": "0", "otelTraceSampled": false, "otelServiceName": "keep-api", "threadName": "MainThread", "process": 22, "module": "on", "taskName": "Task-2"}
2025-09-30 12:20:57.593159+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,593", "message": "Disope existing DB connections", "levelname": "INFO", "name": "keep.api.api", "filename": "api.py", "otelTraceID": "0", "otelSpanID": "0", "otelTraceSampled": false, "otelServiceName": "keep-api", "threadName": "MainThread", "process": 22, "module": "api", "taskName": "Task-3"}
2025-09-30 12:20:57.593207+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,593", "message": "Disposing engine pool", "levelname": "INFO", "name": "keep.api.core.db", "filename": "db.py", "otelTraceID": "0", "otelSpanID": "0", "otelTraceSampled": false, "otelServiceName": "keep-api", "threadName": "MainThread", "process": 22, "module": "db", "taskName": "Task-3"}
2025-09-30 12:20:57.593518+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,593", "message": "Engine pool disposed", "levelname": "INFO", "name": "keep.api.core.db", "filename": "db.py", "otelTraceID": "0", "otelSpanID": "0", "otelTraceSampled": false, "otelServiceName": "keep-api", "threadName": "MainThread", "process": 22, "module": "db", "taskName": "Task-3"}
2025-09-30 12:20:57.593558+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,593", "message": "Starting the services", "levelname": "INFO", "name": "keep.api.api", "filename": "api.py", "otelTraceID": "0", "otelSpanID": "0", "otelTraceSampled": false, "otelServiceName": "keep-api", "threadName": "MainThread", "process": 22, "module": "api", "taskName": "Task-3"}
2025-09-30 12:20:57.593587+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,593", "message": "Starting the scheduler", "levelname": "INFO", "name": "keep.api.api", "filename": "api.py", "otelTraceID": "0", "otelSpanID": "0", "otelTraceSampled": false, "otelServiceName": "keep-api", "threadName": "MainThread", "process": 22, "module": "api", "taskName": "Task-3"}
2025-09-30 12:20:57.615565+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,615", "message": "Starting workflows scheduler", "levelname": "INFO", "name": "keep.workflowmanager.workflowscheduler", "filename": "workflowscheduler.py", "otelTraceID": "0", "otelSpanID": "0", "otelTraceSampled": false, "otelServiceName": "keep-api", "threadName": "MainThread", "process": 20, "module": "workflowscheduler", "taskName": "Task-3"}
2025-09-30 12:20:57.615850+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,615", "message": "Starting workflows scheduler", "levelname": "INFO", "name": "keep.workflowmanager.workflowscheduler", "filename": "workflowscheduler.py", "otelTraceID": "0", "otelSpanID": "0", "otelTraceSampled": false, "otelServiceName": "keep-api", "threadName": "WorkflowScheduler_0", "process": 20, "module": "workflowscheduler", "taskName": null}
2025-09-30 12:20:57.616701+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,616", "message": "Starting workflows scheduler", "levelname": "INFO", "name": "keep.workflowmanager.workflowscheduler", "filename": "workflowscheduler.py", "otelTraceID": "0", "otelSpanID": "0", "otelTraceSampled": false, "otelServiceName": "keep-api", "threadName": "MainThread", "process": 18, "module": "workflowscheduler", "taskName": "Task-3"}
2025-09-30 12:20:57.616951+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,616", "message": "Starting workflows scheduler", "levelname": "INFO", "name": "keep.workflowmanager.workflowscheduler", "filename": "workflowscheduler.py", "otelTraceID": "0", "otelSpanID": "0", "otelTraceSampled": false, "otelServiceName": "keep-api", "threadName": "WorkflowScheduler_0", "process": 18, "module": "workflowscheduler", "taskName": null}
2025-09-30 12:20:57.617061+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,616", "message": "Workflows scheduler started", "levelname": "INFO", "name": "keep.workflowmanager.workflowscheduler", "filename": "workflowscheduler.py", "otelTraceID": "0", "otelSpanID": "0", "otelTraceSampled": false, "otelServiceName": "keep-api", "threadName": "MainThread", "process": 20, "module": "workflowscheduler", "taskName": "Task-3"}
2025-09-30 12:20:57.617120+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,617", "message": "Scheduler started successfully", "levelname": "INFO", "name": "keep.api.api", "filename": "api.py", "otelTraceID": "0", "otelSpanID": "0", "otelTraceSampled": false, "otelServiceName": "keep-api", "threadName": "MainThread", "process": 20, "module": "api", "taskName": "Task-3"}
2025-09-30 12:20:57.617169+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,617", "message": "Starting the consumer", "levelname": "INFO", "name": "keep.api.api", "filename": "api.py", "otelTraceID": "0", "otelSpanID": "0", "otelTraceSampled": false, "otelServiceName": "keep-api", "threadName": "MainThread", "process": 20, "module": "api", "taskName": "Task-3"}
2025-09-30 12:20:57.617269+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,617", "message": "Starting event subscriber", "levelname": "INFO", "name": "keep.event_subscriber.event_subscriber", "filename": "event_subscriber.py", "otelTraceID": "0", "otelSpanID": "0", "otelTraceSampled": false, "otelServiceName": "keep-api", "threadName": "MainThread", "process": 20, "module": "event_subscriber", "taskName": "Task-3"}
2025-09-30 12:20:57.618035+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,617", "message": "Workflows scheduler started", "levelname": "INFO", "name": "keep.workflowmanager.workflowscheduler", "filename": "workflowscheduler.py", "otelTraceID": "0", "otelSpanID": "0", "otelTraceSampled": false, "otelServiceName": "keep-api", "threadName": "MainThread", "process": 18, "module": "workflowscheduler", "taskName": "Task-3"}
2025-09-30 12:20:57.618085+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,618", "message": "Scheduler started successfully", "levelname": "INFO", "name": "keep.api.api", "filename": "api.py", "otelTraceID": "0", "otelSpanID": "0", "otelTraceSampled": false, "otelServiceName": "keep-api", "threadName": "MainThread", "process": 18, "module": "api", "taskName": "Task-3"}
2025-09-30 12:20:57.618118+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,618", "message": "Starting the consumer", "levelname": "INFO", "name": "keep.api.api", "filename": "api.py", "otelTraceID": "0", "otelSpanID": "0", "otelTraceSampled": false, "otelServiceName": "keep-api", "threadName": "MainThread", "process": 18, "module": "api", "taskName": "Task-3"}
2025-09-30 12:20:57.618195+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,618", "message": "Starting event subscriber", "levelname": "INFO", "name": "keep.event_subscriber.event_subscriber", "filename": "event_subscriber.py", "otelTraceID": "0", "otelSpanID": "0", "otelTraceSampled": false, "otelServiceName": "keep-api", "threadName": "MainThread", "process": 18, "module": "event_subscriber", "taskName": "Task-3"}
2025-09-30 12:20:57.618537+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,618", "message": "Starting workflows scheduler", "levelname": "INFO", "name": "keep.workflowmanager.workflowscheduler", "filename": "workflowscheduler.py", "otelTraceID": "0", "otelSpanID": "0", "otelTraceSampled": false, "otelServiceName": "keep-api", "threadName": "MainThread", "process": 16, "module": "workflowscheduler", "taskName": "Task-3"}
2025-09-30 12:20:57.618711+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,618", "message": "Starting workflows scheduler", "levelname": "INFO", "name": "keep.workflowmanager.workflowscheduler", "filename": "workflowscheduler.py", "otelTraceID": "0", "otelSpanID": "0", "otelTraceSampled": false, "otelServiceName": "keep-api", "threadName": "WorkflowScheduler_0", "process": 16, "module": "workflowscheduler", "taskName": null}
2025-09-30 12:20:57.619697+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,619", "message": "Workflows scheduler started", "levelname": "INFO", "name": "keep.workflowmanager.workflowscheduler", "filename": "workflowscheduler.py", "otelTraceID": "0", "otelSpanID": "0", "otelTraceSampled": false, "otelServiceName": "keep-api", "threadName": "MainThread", "process": 16, "module": "workflowscheduler", "taskName": "Task-3"}
2025-09-30 12:20:57.619758+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,619", "message": "Scheduler started successfully", "levelname": "INFO", "name": "keep.api.api", "filename": "api.py", "otelTraceID": "0", "otelSpanID": "0", "otelTraceSampled": false, "otelServiceName": "keep-api", "threadName": "MainThread", "process": 16, "module": "api", "taskName": "Task-3"}
2025-09-30 12:20:57.619851+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,619", "message": "Starting the consumer", "levelname": "INFO", "name": "keep.api.api", "filename": "api.py", "otelTraceID": "0", "otelSpanID": "0", "otelTraceSampled": false, "otelServiceName": "keep-api", "threadName": "MainThread", "process": 16, "module": "api", "taskName": "Task-3"}
2025-09-30 12:20:57.619958+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,619", "message": "Starting event subscriber", "levelname": "INFO", "name": "keep.event_subscriber.event_subscriber", "filename": "event_subscriber.py", "otelTraceID": "0", "otelSpanID": "0", "otelTraceSampled": false, "otelServiceName": "keep-api", "threadName": "MainThread", "process": 16, "module": "event_subscriber", "taskName": "Task-3"}
2025-09-30 12:20:57.626811+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,626", "message": "Consumer started successfully", "levelname": "INFO", "name": "keep.api.api", "filename": "api.py", "otelTraceID": "0", "otelSpanID": "0", "otelTraceSampled": false, "otelServiceName": "keep-api", "threadName": "MainThread", "process": 20, "module": "api", "taskName": "Task-3"}
2025-09-30 12:20:57.626859+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,626", "message": "Services started successfully", "levelname": "INFO", "name": "keep.api.api", "filename": "api.py", "otelTraceID": "0", "otelSpanID": "0", "otelTraceSampled": false, "otelServiceName": "keep-api", "threadName": "MainThread", "process": 20, "module": "api", "taskName": "Task-3"}
2025-09-30 12:20:57.627041+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,626", "message": "Application startup complete.", "levelname": "INFO", "name": "uvicorn.error", "filename": "on.py", "otelTraceID": "0", "otelSpanID": "0", "otelTraceSampled": false, "otelServiceName": "keep-api", "threadName": "MainThread", "process": 20, "module": "on", "taskName": "Task-2"}
2025-09-30 12:20:57.627896+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,627", "message": "Consumer started successfully", "levelname": "INFO", "name": "keep.api.api", "filename": "api.py", "otelTraceID": "0", "otelSpanID": "0", "otelTraceSampled": false, "otelServiceName": "keep-api", "threadName": "MainThread", "process": 18, "module": "api", "taskName": "Task-3"}
2025-09-30 12:20:57.627943+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,627", "message": "Services started successfully", "levelname": "INFO", "name": "keep.api.api", "filename": "api.py", "otelTraceID": "0", "otelSpanID": "0", "otelTraceSampled": false, "otelServiceName": "keep-api", "threadName": "MainThread", "process": 18, "module": "api", "taskName": "Task-3"}
2025-09-30 12:20:57.628089+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,628", "message": "Application startup complete.", "levelname": "INFO", "name": "uvicorn.error", "filename": "on.py", "otelTraceID": "0", "otelSpanID": "0", "otelTraceSampled": false, "otelServiceName": "keep-api", "threadName": "MainThread", "process": 18, "module": "on", "taskName": "Task-2"}
2025-09-30 12:20:57.629495+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,629", "message": "Consumer started successfully", "levelname": "INFO", "name": "keep.api.api", "filename": "api.py", "otelTraceID": "0", "otelSpanID": "0", "otelTraceSampled": false, "otelServiceName": "keep-api", "threadName": "MainThread", "process": 16, "module": "api", "taskName": "Task-3"}
2025-09-30 12:20:57.629529+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,629", "message": "Services started successfully", "levelname": "INFO", "name": "keep.api.api", "filename": "api.py", "otelTraceID": "0", "otelSpanID": "0", "otelTraceSampled": false, "otelServiceName": "keep-api", "threadName": "MainThread", "process": 16, "module": "api", "taskName": "Task-3"}
2025-09-30 12:20:57.629654+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,629", "message": "Application startup complete.", "levelname": "INFO", "name": "uvicorn.error", "filename": "on.py", "otelTraceID": "0", "otelSpanID": "0", "otelTraceSampled": false, "otelServiceName": "keep-api", "threadName": "MainThread", "process": 16, "module": "on", "taskName": "Task-2"}
2025-09-30 12:20:57.661924+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,661", "message": "Starting workflows scheduler", "levelname": "INFO", "name": "keep.workflowmanager.workflowscheduler", "filename": "workflowscheduler.py", "otelTraceID": "0", "otelSpanID": "0", "otelTraceSampled": false, "otelServiceName": "keep-api", "threadName": "MainThread", "process": 22, "module": "workflowscheduler", "taskName": "Task-3"}
2025-09-30 12:20:57.662203+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,662", "message": "Starting workflows scheduler", "levelname": "INFO", "name": "keep.workflowmanager.workflowscheduler", "filename": "workflowscheduler.py", "otelTraceID": "0", "otelSpanID": "0", "otelTraceSampled": false, "otelServiceName": "keep-api", "threadName": "WorkflowScheduler_0", "process": 22, "module": "workflowscheduler", "taskName": null}
2025-09-30 12:20:57.663413+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,662", "message": "Workflows scheduler started", "levelname": "INFO", "name": "keep.workflowmanager.workflowscheduler", "filename": "workflowscheduler.py", "otelTraceID": "0", "otelSpanID": "0", "otelTraceSampled": false, "otelServiceName": "keep-api", "threadName": "MainThread", "process": 22, "module": "workflowscheduler", "taskName": "Task-3"}
2025-09-30 12:20:57.663478+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,663", "message": "Scheduler started successfully", "levelname": "INFO", "name": "keep.api.api", "filename": "api.py", "otelTraceID": "0", "otelSpanID": "0", "otelTraceSampled": false, "otelServiceName": "keep-api", "threadName": "MainThread", "process": 22, "module": "api", "taskName": "Task-3"}
2025-09-30 12:20:57.663517+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,663", "message": "Starting the consumer", "levelname": "INFO", "name": "keep.api.api", "filename": "api.py", "otelTraceID": "0", "otelSpanID": "0", "otelTraceSampled": false, "otelServiceName": "keep-api", "threadName": "MainThread", "process": 22, "module": "api", "taskName": "Task-3"}
2025-09-30 12:20:57.663629+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,663", "message": "Starting event subscriber", "levelname": "INFO", "name": "keep.event_subscriber.event_subscriber", "filename": "event_subscriber.py", "otelTraceID": "0", "otelSpanID": "0", "otelTraceSampled": false, "otelServiceName": "keep-api", "threadName": "MainThread", "process": 22, "module": "event_subscriber", "taskName": "Task-3"}
2025-09-30 12:20:57.677395+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,677", "message": "Consumer started successfully", "levelname": "INFO", "name": "keep.api.api", "filename": "api.py", "otelTraceID": "0", "otelSpanID": "0", "otelTraceSampled": false, "otelServiceName": "keep-api", "threadName": "MainThread", "process": 22, "module": "api", "taskName": "Task-3"}
2025-09-30 12:20:57.677439+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,677", "message": "Services started successfully", "levelname": "INFO", "name": "keep.api.api", "filename": "api.py", "otelTraceID": "0", "otelSpanID": "0", "otelTraceSampled": false, "otelServiceName": "keep-api", "threadName": "MainThread", "process": 22, "module": "api", "taskName": "Task-3"}
2025-09-30 12:20:57.677600+00:00 {"worker_type": "uvicorn", "asctime": "2025-09-30 12:20:57,677", "message": "Application startup complete.", "levelname": "INFO", "name": "uvicorn.error", "filename": "on.py", "otelTraceID": "0", "otelSpanID": "0", "otelTraceSampled": false, "otelServiceName": "keep-api", "threadName": "MainThread", "process": 22, "module": "on", "taskName": "Task-2"}
2025-09-30 12:21:02.469349+00:00 {"worker_type": null, "asctime": "2025-09-30 12:21:02,469", "message": "Checking if server is up at http://localhost:8081...", "levelname": "INFO", "name": "__main__", "filename": "server_jobs_bg.py", "otelTraceID": null, "otelSpanID": null, "otelTraceSampled": null, "otelServiceName": null, "threadName": "MainThread", "process": 8, "module": "server_jobs_bg", "taskName": null}
2025-09-30 12:21:02.469990+00:00 {"worker_type": null, "asctime": "2025-09-30 12:21:02,469", "message": "API is not up yet. Waiting...", "levelname": "INFO", "name": "__main__", "filename": "server_jobs_bg.py", "otelTraceID": null, "otelSpanID": null, "otelTraceSampled": null, "otelServiceName": null, "threadName": "MainThread", "process": 8, "module": "server_jobs_bg", "taskName": null}
2025-09-30 12:21:07.470243+00:00 {"worker_type": null, "asctime": "2025-09-30 12:21:07,470", "message": "Checking if server is up at http://localhost:8081...", "levelname": "INFO", "name": "__main__", "filename": "server_jobs_bg.py", "otelTraceID": null, "otelSpanID": null, "otelTraceSampled": null, "otelServiceName": null, "threadName": "MainThread", "process": 8, "module": "server_jobs_bg", "taskName": null}
2025-09-30 12:21:07.471096+00:00 {"worker_type": null, "asctime": "2025-09-30 12:21:07,471", "message": "API is not up yet. Waiting...", "levelname": "INFO", "name": "__main__", "filename": "server_jobs_bg.py", "otelTraceID": null, "otelSpanID": null, "otelTraceSampled": null, "otelServiceName": null, "threadName": "MainThread", "process": 8, "module": "server_jobs_bg", "taskName": null}
2025-09-30 12:21:12.471377+00:00 {"worker_type": null, "asctime": "2025-09-30 12:21:12,471", "message": "Checking if server is up at http://localhost:8081...", "levelname": "INFO", "name": "__main__", "filename": "server_jobs_bg.py", "otelTraceID": null, "otelSpanID": null, "otelTraceSampled": null, "otelServiceName": null, "threadName": "MainThread", "process": 8, "module": "server_jobs_bg", "taskName": null}
2025-09-30 12:21:12.472051+00:00 {"worker_type": null, "asctime": "2025-09-30 12:21:12,471", "message": "API is not up yet. Waiting...", "levelname": "INFO", "name": "__main__", "filename": "server_jobs_bg.py", "otelTraceID": null, "otelSpanID": null, "otelTraceSampled": null, "otelServiceName": null, "threadName": "MainThread", "process": 8, "module": "server_jobs_bg", "taskName": null}
2025-09-30 12:21:17.472286+00:00 {"worker_type": null, "asctime": "2025-09-30 12:21:17,472", "message": "Checking if server is up at http://localhost:8081...", "levelname": "INFO", "name": "__main__", "filename": "server_jobs_bg.py", "otelTraceID": null, "otelSpanID": null, "otelTraceSampled": null, "otelServiceName": null, "threadName": "MainThread", "process": 8, "module": "server_jobs_bg", "taskName": null}
2025-09-30 12:21:17.472950+00:00 {"worker_type": null, "asctime": "2025-09-30 12:21:17,472", "message": "API is not up yet. Waiting...", "levelname": "INFO", "name": "__main__", "filename": "server_jobs_bg.py", "otelTraceID": null, "otelSpanID": null, "otelTraceSampled": null, "otelServiceName": null, "threadName": "MainThread", "process": 8, "module": "server_jobs_bg", "taskName": null}
2025-09-30 12:21:22.473202+00:00 {"worker_type": null, "asctime": "2025-09-30 12:21:22,473", "message": "Checking if server is up at http://localhost:8081...", "levelname": "INFO", "name": "__main__", "filename": "server_jobs_bg.py", "otelTraceID": null, "otelSpanID": null, "otelTraceSampled": null, "otelServiceName": null, "threadName": "MainThread", "process": 8, "module": "server_jobs_bg", "taskName": null}
2025-09-30 12:21:22.473884+00:00 {"worker_type": null, "asctime": "2025-09-30 12:21:22,473", "message": "API is not up yet. Waiting...", "levelname": "INFO", "name": "__main__", "filename": "server_jobs_bg.py", "otelTraceID": null, "otelSpanID": null, "otelTraceSampled": null, "otelServiceName": null, "threadName": "MainThread", "process": 8, "module": "server_jobs_bg", "taskName": null}
2025-09-30 12:21:27.474142+00:00 {"worker_type": null, "asctime": "2025-09-30 12:21:27,473", "message": "Checking if server is up at http://localhost:8081...", "levelname": "INFO", "name": "__main__", "filename": "server_jobs_bg.py", "otelTraceID": null, "otelSpanID": null, "otelTraceSampled": null, "otelServiceName": null, "threadName": "MainThread", "process": 8, "module": "server_jobs_bg", "taskName": null}
2025-09-30 12:21:27.474976+00:00 {"worker_type": null, "asctime": "2025-09-30 12:21:27,474", "message": "API is not up yet. Waiting...", "levelname": "INFO", "name": "__main__", "filename": "server_jobs_bg.py", "otelTraceID": null, "otelSpanID": null, "otelTraceSampled": null, "otelServiceName": null, "threadName": "MainThread", "process": 8, "module": "server_jobs_bg", "taskName": null}
2025-09-30 12:21:32.475437+00:00 {"worker_type": null, "asctime": "2025-09-30 12:21:32,475", "message": "Checking if server is up at http://localhost:8081...", "levelname": "INFO", "name": "__main__", "filename": "server_jobs_bg.py", "otelTraceID": null, "otelSpanID": null, "otelTraceSampled": null, "otelServiceName": null, "threadName": "MainThread", "process": 8, "module": "server_jobs_bg", "taskName": null}
2025-09-30 12:21:32.476134+00:00 {"worker_type": null, "asctime": "2025-09-30 12:21:32,476", "message": "API is not up yet. Waiting...", "levelname": "INFO", "name": "__main__", "filename": "server_jobs_bg.py", "otelTraceID": null, "otelSpanID": null, "otelTraceSampled": null, "otelServiceName": null, "threadName": "MainThread", "process": 8, "module": "server_jobs_bg", "taskName": null}
2025-09-30 12:21:37.476395+00:00 {"worker_type": null, "asctime": "2025-09-30 12:21:37,476", "message": "Checking if server is up at http://localhost:8081...", "levelname": "INFO", "name": "__main__", "filename": "server_jobs_bg.py", "otelTraceID": null, "otelSpanID": null, "otelTraceSampled": null, "otelServiceName": null, "threadName": "MainThread", "process": 8, "module": "server_jobs_bg", "taskName": null}
2025-09-30 12:21:37.477056+00:00 {"worker_type": null, "asctime": "2025-09-30 12:21:37,476", "message": "API is not up yet. Waiting...", "levelname": "INFO", "name": "__main__", "filename": "server_jobs_bg.py", "otelTraceID": null, "otelSpanID": null, "otelTraceSampled": null, "otelServiceName": null, "threadName": "MainThread", "process": 8, "module": "server_jobs_bg", "taskName": null}

dargow avatar Sep 30 '25 12:09 dargow

Hi @dargow! I'm Dosu and I’m helping the keep team.

The API container is listening on port 8080, but your health check and port mapping expect it on 8081. This happens because the gunicorn startup command is hardcoded to bind to 8080, ignoring the PORT environment variable from your docker-compose file. This is a known issue and has been reported by others as well (example).

To work around this, update your docker-compose manifest to map the host port to 8080 instead of 8081, like:

ports:
  - "8086:8080"

Alternatively, if you control the container startup command, modify it to bind to the desired port (8081). Until this is fixed in the image or entrypoint logic, the backend will always listen on 8080 regardless of the PORT variable (source).

To reply, just mention @dosu.


How did I do? Good | Irrelevant | Incorrect | Verbose | Hallucination | Report 🐛 | Other  Chat with Dosu Join Discord Share on X

dosubot[bot] avatar Sep 30 '25 12:09 dosubot[bot]

But I specifically specified the custom port 8081 in the variables. I changed it to 8080, it started normally. Manifest:

services:
  keep-backend:
    image: us-central1-docker.pkg.dev/keephq/keep/keep-api
    ports:
      - '8086:8080'
    environment:
      - PORT=8080
      - SECRET_MANAGER_TYPE=FILE
      - DATABASE_CONNECTION_STRING=postgresql+psycopg2://keep:[email protected]:5432/keep
      - AUTH_TYPE=NOAUTH
      - PUSHER_DISABLED=true
      - POSTHOG_DISABLED=true
      - SENTRY_DISABLED=true
      - KEEP_METRICS=true
    volumes:
      - /mnt/ssd-m2-app/app-data/keephq:/state

Is it strange, does it look like a hardcode port, or do I not understand how to specify the custom port correctly?

dargow avatar Sep 30 '25 12:09 dargow

Yes, the port is effectively hardcoded in the container startup command. Even though the documentation says you can set the PORT environment variable to change the backend server port, the actual gunicorn command inside the container is set to always bind to 8080, so the PORT variable has no effect unless the startup command is changed to use it (source).

If you need to use a different port, you’d have to modify the container’s startup command to bind to your desired port (for example, by using --bind 0.0.0.0:$PORT instead of --bind 0.0.0.0:8080). For now, mapping the host port to 8080 in your manifest is the only reliable way to expose the API.

To reply, just mention @dosu.


How did I do? Good | Irrelevant | Incorrect | Verbose | Hallucination | Report 🐛 | Other  Chat with Dosu Join Discord Share on X

dosubot[bot] avatar Sep 30 '25 12:09 dosubot[bot]