algo-backend-framework 0.0.1__tar.gz → 0.0.3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. {algo_backend_framework-0.0.1 → algo_backend_framework-0.0.3}/PKG-INFO +1 -1
  2. {algo_backend_framework-0.0.1 → algo_backend_framework-0.0.3}/algo_backend/metrics/time_cost_metrics.py +27 -20
  3. {algo_backend_framework-0.0.1 → algo_backend_framework-0.0.3}/algo_backend/starter/default_app_generator.py +7 -1
  4. {algo_backend_framework-0.0.1 → algo_backend_framework-0.0.3}/algo_backend_framework.egg-info/PKG-INFO +1 -1
  5. {algo_backend_framework-0.0.1 → algo_backend_framework-0.0.3}/pyproject.toml +1 -1
  6. {algo_backend_framework-0.0.1 → algo_backend_framework-0.0.3}/README.md +0 -0
  7. {algo_backend_framework-0.0.1 → algo_backend_framework-0.0.3}/algo_backend/__init__.py +0 -0
  8. {algo_backend_framework-0.0.1 → algo_backend_framework-0.0.3}/algo_backend/config/__init__.py +0 -0
  9. {algo_backend_framework-0.0.1 → algo_backend_framework-0.0.3}/algo_backend/config/basic_config.py +0 -0
  10. {algo_backend_framework-0.0.1 → algo_backend_framework-0.0.3}/algo_backend/config/loguru_config.py +0 -0
  11. {algo_backend_framework-0.0.1 → algo_backend_framework-0.0.3}/algo_backend/exception/__init__.py +0 -0
  12. {algo_backend_framework-0.0.1 → algo_backend_framework-0.0.3}/algo_backend/exception/error_code_manage.py +0 -0
  13. {algo_backend_framework-0.0.1 → algo_backend_framework-0.0.3}/algo_backend/exception/exception.py +0 -0
  14. {algo_backend_framework-0.0.1 → algo_backend_framework-0.0.3}/algo_backend/exception/status_code.py +0 -0
  15. {algo_backend_framework-0.0.1 → algo_backend_framework-0.0.3}/algo_backend/handler/__init__.py +0 -0
  16. {algo_backend_framework-0.0.1 → algo_backend_framework-0.0.3}/algo_backend/handler/exception_to_vo.py +0 -0
  17. {algo_backend_framework-0.0.1 → algo_backend_framework-0.0.3}/algo_backend/handler/operation_handler.py +0 -0
  18. {algo_backend_framework-0.0.1 → algo_backend_framework-0.0.3}/algo_backend/intercept/__init__.py +0 -0
  19. {algo_backend_framework-0.0.1 → algo_backend_framework-0.0.3}/algo_backend/intercept/common.py +0 -0
  20. {algo_backend_framework-0.0.1 → algo_backend_framework-0.0.3}/algo_backend/intercept/http.py +0 -0
  21. {algo_backend_framework-0.0.1 → algo_backend_framework-0.0.3}/algo_backend/intercept/validate.py +0 -0
  22. {algo_backend_framework-0.0.1 → algo_backend_framework-0.0.3}/algo_backend/log/__init__.py +0 -0
  23. {algo_backend_framework-0.0.1 → algo_backend_framework-0.0.3}/algo_backend/log/common.py +0 -0
  24. {algo_backend_framework-0.0.1 → algo_backend_framework-0.0.3}/algo_backend/log/loguru/__init__.py +0 -0
  25. {algo_backend_framework-0.0.1 → algo_backend_framework-0.0.3}/algo_backend/log/loguru/log_clean.py +0 -0
  26. {algo_backend_framework-0.0.1 → algo_backend_framework-0.0.3}/algo_backend/log/loguru/log_setup.py +0 -0
  27. {algo_backend_framework-0.0.1 → algo_backend_framework-0.0.3}/algo_backend/log/loguru/log_starter.py +0 -0
  28. {algo_backend_framework-0.0.1 → algo_backend_framework-0.0.3}/algo_backend/log/loguru/patch_logging.py +0 -0
  29. {algo_backend_framework-0.0.1 → algo_backend_framework-0.0.3}/algo_backend/log/nblog/__init__.py +0 -0
  30. {algo_backend_framework-0.0.1 → algo_backend_framework-0.0.3}/algo_backend/metrics/__init__.py +0 -0
  31. {algo_backend_framework-0.0.1 → algo_backend_framework-0.0.3}/algo_backend/metrics/collector/__init__.py +0 -0
  32. {algo_backend_framework-0.0.1 → algo_backend_framework-0.0.3}/algo_backend/metrics/collector/common.py +0 -0
  33. {algo_backend_framework-0.0.1 → algo_backend_framework-0.0.3}/algo_backend/metrics/collector/gc_metrics.py +0 -0
  34. {algo_backend_framework-0.0.1 → algo_backend_framework-0.0.3}/algo_backend/metrics/collector/schedule_monitor.py +0 -0
  35. {algo_backend_framework-0.0.1 → algo_backend_framework-0.0.3}/algo_backend/metrics/collector/system_metrics.py +0 -0
  36. {algo_backend_framework-0.0.1 → algo_backend_framework-0.0.3}/algo_backend/metrics/http_metrics.py +0 -0
  37. {algo_backend_framework-0.0.1 → algo_backend_framework-0.0.3}/algo_backend/metrics/prometheus_context.py +0 -0
  38. {algo_backend_framework-0.0.1 → algo_backend_framework-0.0.3}/algo_backend/middleware/__init__.py +0 -0
  39. {algo_backend_framework-0.0.1 → algo_backend_framework-0.0.3}/algo_backend/middleware/cors.py +0 -0
  40. {algo_backend_framework-0.0.1 → algo_backend_framework-0.0.3}/algo_backend/middleware/metrics.py +0 -0
  41. {algo_backend_framework-0.0.1 → algo_backend_framework-0.0.3}/algo_backend/schema/__init__.py +0 -0
  42. {algo_backend_framework-0.0.1 → algo_backend_framework-0.0.3}/algo_backend/schema/vo.py +0 -0
  43. {algo_backend_framework-0.0.1 → algo_backend_framework-0.0.3}/algo_backend/starter/__init__.py +0 -0
  44. {algo_backend_framework-0.0.1 → algo_backend_framework-0.0.3}/algo_backend/starter/default_service_starter.py +0 -0
  45. {algo_backend_framework-0.0.1 → algo_backend_framework-0.0.3}/algo_backend/starter/event_list.py +0 -0
  46. {algo_backend_framework-0.0.1 → algo_backend_framework-0.0.3}/algo_backend/utils/__init__.py +0 -0
  47. {algo_backend_framework-0.0.1 → algo_backend_framework-0.0.3}/algo_backend/utils/meta_class.py +0 -0
  48. {algo_backend_framework-0.0.1 → algo_backend_framework-0.0.3}/algo_backend/utils/utils.py +0 -0
  49. {algo_backend_framework-0.0.1 → algo_backend_framework-0.0.3}/algo_backend_framework.egg-info/SOURCES.txt +0 -0
  50. {algo_backend_framework-0.0.1 → algo_backend_framework-0.0.3}/algo_backend_framework.egg-info/dependency_links.txt +0 -0
  51. {algo_backend_framework-0.0.1 → algo_backend_framework-0.0.3}/algo_backend_framework.egg-info/requires.txt +0 -0
  52. {algo_backend_framework-0.0.1 → algo_backend_framework-0.0.3}/algo_backend_framework.egg-info/top_level.txt +0 -0
  53. {algo_backend_framework-0.0.1 → algo_backend_framework-0.0.3}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: algo-backend-framework
3
- Version: 0.0.1
3
+ Version: 0.0.3
4
4
  Summary: Ctcdn algorithm backend framework
5
5
  Requires-Python: >=3.10
6
6
  Description-Content-Type: text/markdown
@@ -84,8 +84,8 @@ class ClientTimeCostMetrics(BasicTimeCostMetrics):
84
84
 
85
85
  class PrometheusTimeCostMetricSetting:
86
86
  __default_metrics = BasicTimeCostMetrics()
87
- __api_metrics = None
88
- __client_metrics = None
87
+
88
+ __metrics_dict = {"default": BasicTimeCostMetrics(), "api": None, "client": None}
89
89
 
90
90
  @classmethod
91
91
  def initialize(
@@ -94,35 +94,42 @@ class PrometheusTimeCostMetricSetting:
94
94
  api_metrics_buckets: Optional[List[int]] = None,
95
95
  client_metrics_buckets: Optional[List[int]] = None,
96
96
  ):
97
- if api_metrics_buckets is None:
98
- cls.__api_metrics = ApiTimeCostMetrics()
99
- elif len(api_metrics_buckets) == 0:
100
- cls.__api_metrics = BasicTimeCostMetrics()
101
- else:
102
- cls.__api_metrics = ApiTimeCostMetrics(buckets=list(api_metrics_buckets))
97
+ cls.init_metrics("api", ApiTimeCostMetrics, api_metrics_buckets)
98
+ cls.init_metrics("client", ClientTimeCostMetrics, client_metrics_buckets)
103
99
 
104
- if client_metrics_buckets is None:
105
- cls.__client_metrics = ClientTimeCostMetrics()
106
- elif len(client_metrics_buckets) == 0:
107
- cls.__client_metrics = BasicTimeCostMetrics()
100
+ @classmethod
101
+ def init_metrics(
102
+ cls, name: str, metrics_class, buckets: Optional[List[int]] = None
103
+ ):
104
+ if cls.__metrics_dict[name] is None:
105
+ cls.__metrics_dict[name] = metrics_class()
106
+ elif len(buckets) == 0:
107
+ cls.__metrics_dict[name] = cls.__default_metrics
108
108
  else:
109
- cls.__client_metrics = ClientTimeCostMetrics(
110
- buckets=list(client_metrics_buckets)
111
- )
109
+ cls.__metrics_dict[name] = metrics_class(buckets=list(buckets))
110
+
111
+ @classmethod
112
+ def get_metrics(cls, name: str) -> BasicTimeCostMetrics:
113
+ return cls.__metrics_dict.get(name, cls.__default_metrics)
112
114
 
113
115
  @classmethod
114
116
  def api_metrics_instance(cls) -> BasicTimeCostMetrics:
115
- return cls.__api_metrics or cls.__default_metrics
117
+ return cls.get_metrics("api")
116
118
 
117
119
  @classmethod
118
120
  def client_metrics_instance(cls) -> BasicTimeCostMetrics:
119
- return cls.__client_metrics or cls.__default_metrics
121
+ return cls.get_metrics("client")
120
122
 
121
123
  @classmethod
122
- def metrics_handler(cls, key: str, metrics: BasicTimeCostMetrics):
124
+ def metrics_handler(cls, key: str, metrics_cls_name: str):
125
+ """
126
+ 装饰器只会初始化一次,因此要使用动态方式获取指标类,否则初始化装饰器时,指标类还没有被初始化
127
+ """
128
+
123
129
  def decorator(func: Callable[..., Awaitable]) -> Callable[..., Awaitable]:
124
130
  @wraps(func)
125
131
  async def wrapper(*args, **kwargs):
132
+ metrics = cls.get_metrics(metrics_cls_name)
126
133
  try:
127
134
  start = time.perf_counter()
128
135
  result = await func(*args, **kwargs)
@@ -139,8 +146,8 @@ class PrometheusTimeCostMetricSetting:
139
146
 
140
147
  @classmethod
141
148
  def client_metrics_handler(cls, client_name: str):
142
- return cls.metrics_handler(client_name, cls.client_metrics_instance())
149
+ return cls.metrics_handler(client_name, "client")
143
150
 
144
151
  @classmethod
145
152
  def api_metrics_handler(cls, api_name: str):
146
- return cls.metrics_handler(api_name, cls.api_metrics_instance())
153
+ return cls.metrics_handler(api_name, "api")
@@ -87,7 +87,7 @@ class DefaultAlgoAppGenerator:
87
87
  """
88
88
  初始化开始事件
89
89
  """
90
- self.start_event_list.add(self.log_starter.setup_log())
90
+ self.start_event_list.add(self.__set_up_logger)
91
91
  # 启动系统指标、gc指标的定时采集写入以供多进程时的汇总
92
92
  self.start_event_list.add(MetricsScheduleMonitor().run_monitor)
93
93
  # 接口计时器和客户端解释器的初始化
@@ -96,6 +96,12 @@ class DefaultAlgoAppGenerator:
96
96
  for event in custom_event or []:
97
97
  self.start_event_list.add(event)
98
98
 
99
+ def __set_up_logger(self):
100
+ """
101
+ 初始化日志
102
+ """
103
+ self.log_starter.setup_log()
104
+
99
105
  def init_end_event(self, custom_event):
100
106
  """
101
107
  初始化结束事件
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: algo-backend-framework
3
- Version: 0.0.1
3
+ Version: 0.0.3
4
4
  Summary: Ctcdn algorithm backend framework
5
5
  Requires-Python: >=3.10
6
6
  Description-Content-Type: text/markdown
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "algo-backend-framework"
3
- version = "0.0.1"
3
+ version = "0.0.3"
4
4
  description = "Ctcdn algorithm backend framework"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.10"