| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 | 
							- import json
 
- import os
 
- import threading
 
- from flask import Response
 
- from configs import dify_config
 
- from dify_app import DifyApp
 
- def init_app(app: DifyApp):
 
-     @app.after_request
 
-     def after_request(response):
 
-         """Add Version headers to the response."""
 
-         response.headers.add("X-Version", dify_config.CURRENT_VERSION)
 
-         response.headers.add("X-Env", dify_config.DEPLOY_ENV)
 
-         return response
 
-     @app.route("/health")
 
-     def health():
 
-         return Response(
 
-             json.dumps({"pid": os.getpid(), "status": "ok", "version": dify_config.CURRENT_VERSION}),
 
-             status=200,
 
-             content_type="application/json",
 
-         )
 
-     @app.route("/threads")
 
-     def threads():
 
-         num_threads = threading.active_count()
 
-         threads = threading.enumerate()
 
-         thread_list = []
 
-         for thread in threads:
 
-             thread_name = thread.name
 
-             thread_id = thread.ident
 
-             is_alive = thread.is_alive()
 
-             thread_list.append(
 
-                 {
 
-                     "name": thread_name,
 
-                     "id": thread_id,
 
-                     "is_alive": is_alive,
 
-                 }
 
-             )
 
-         return {
 
-             "pid": os.getpid(),
 
-             "thread_num": num_threads,
 
-             "threads": thread_list,
 
-         }
 
-     @app.route("/db-pool-stat")
 
-     def pool_stat():
 
-         from extensions.ext_database import db
 
-         engine = db.engine
 
-         # TODO: Fix the type error
 
-         # FIXME maybe its sqlalchemy issue
 
-         return {
 
-             "pid": os.getpid(),
 
-             "pool_size": engine.pool.size(),  # type: ignore
 
-             "checked_in_connections": engine.pool.checkedin(),  # type: ignore
 
-             "checked_out_connections": engine.pool.checkedout(),  # type: ignore
 
-             "overflow_connections": engine.pool.overflow(),  # type: ignore
 
-             "connection_timeout": engine.pool.timeout(),  # type: ignore
 
-             "recycle_time": db.engine.pool._recycle,  # type: ignore
 
-         }
 
 
  |