feat(core): Support opentelemetry exporter (#1690)

This commit is contained in:
Fangyin Cheng
2024-07-05 15:20:21 +08:00
committed by GitHub
parent 84fc1fc7fe
commit bf978d2bf9
39 changed files with 1176 additions and 218 deletions

View File

@@ -9,7 +9,7 @@ from typing import Optional
from dbgpt._private.config import Config
from dbgpt.component import SystemApp
from dbgpt.storage import DBType
from dbgpt.util.parameter_utils import BaseParameters
from dbgpt.util.parameter_utils import BaseServerParameters
ROOT_PATH = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
sys.path.append(ROOT_PATH)
@@ -199,7 +199,7 @@ def _create_mysql_database(db_name: str, db_url: str, try_to_create_db: bool = F
@dataclass
class WebServerParameters(BaseParameters):
class WebServerParameters(BaseServerParameters):
host: Optional[str] = field(
default="0.0.0.0", metadata={"help": "Webserver deploy host"}
)
@@ -247,21 +247,7 @@ class WebServerParameters(BaseParameters):
"text2vec --rerank --model_name xxx --model_path xxx`"
},
)
log_level: Optional[str] = field(
default=None,
metadata={
"help": "Logging level",
"valid_values": [
"FATAL",
"ERROR",
"WARNING",
"WARNING",
"INFO",
"DEBUG",
"NOTSET",
],
},
)
light: Optional[bool] = field(default=False, metadata={"help": "enable light mode"})
log_file: Optional[str] = field(
default="dbgpt_webserver.log",

View File

@@ -111,10 +111,15 @@ add_exception_handler(app)
def _get_webserver_params(args: List[str] = None):
from dbgpt.util.parameter_utils import EnvArgumentParser
parser: argparse.ArgumentParser = EnvArgumentParser.create_argparse_option(
WebServerParameters
parser = EnvArgumentParser()
env_prefix = "webserver_"
webserver_params: WebServerParameters = parser.parse_args_into_dataclass(
WebServerParameters,
env_prefixes=[env_prefix],
command_args=args,
)
return WebServerParameters(**vars(parser.parse_args(args=args)))
return webserver_params
def initialize_app(param: WebServerParameters = None, args: List[str] = None):
@@ -245,6 +250,10 @@ def run_webserver(param: WebServerParameters = None):
os.path.join(LOGDIR, param.tracer_file),
system_app=system_app,
tracer_storage_cls=param.tracer_storage_cls,
enable_open_telemetry=param.tracer_to_open_telemetry,
otlp_endpoint=param.otel_exporter_otlp_traces_endpoint,
otlp_insecure=param.otel_exporter_otlp_traces_insecure,
otlp_timeout=param.otel_exporter_otlp_traces_timeout,
)
with root_tracer.start_span(