使用 label 简化 request_counter

This commit is contained in:
2024-12-12 13:08:27 +08:00
parent 073bd314fc
commit 80f924123d
2 changed files with 19 additions and 9 deletions
+14 -5
View File
@@ -6,7 +6,7 @@ from nonebot_plugin_apscheduler import scheduler
from nonebot_plugin_saa.utils.exceptions import NoBotFound
from nonebot_bison.utils import ClientManager
from nonebot_bison.metrics import sent_counter, request_counter, success_counter
from nonebot_bison.metrics import sent_counter, request_counter
from ..config import config
from ..send import send_msgs
@@ -94,10 +94,10 @@ class Scheduler:
logger.trace(f"scheduler {self.name} fetching next target: [{schedulable.platform_name}]{schedulable.target}")
context = ProcessContext(self.client_mgr)
request_counter.inc()
success_flag = False
platform_obj = platform_manager[schedulable.platform_name](context)
try:
platform_obj = platform_manager[schedulable.platform_name](context)
if schedulable.use_batch:
batch_targets = self.batch_api_target_cache[schedulable.platform_name][schedulable.target]
sub_units = []
@@ -110,6 +110,7 @@ class Scheduler:
schedulable.platform_name, schedulable.target
)
to_send = await platform_obj.do_fetch_new_post(SubUnit(schedulable.target, send_userinfo_list))
success_flag = True
except SkipRequestException as err:
logger.debug(f"skip request: {err}")
except Exception as err:
@@ -118,10 +119,18 @@ class Scheduler:
logger.warning("API request record: " + record)
err.args += (records,)
raise
success_counter.inc()
request_counter.labels(
platform_name=schedulable.platform_name,
site_name=platform_obj.site.name,
target=schedulable.target,
success=success_flag,
).inc()
if not to_send:
return
sent_counter.inc()
sent_counter.labels(
platform_name=schedulable.platform_name, site_name=platform_obj.site.name, target=schedulable.target
).inc()
for user, send_list in to_send:
for send_post in send_list:
logger.info(f"send to {user}: {send_post}")