Files
AstrBot/astrbot/core/utils/metrics.py
T
2025-03-03 13:30:55 +08:00

35 lines
1.2 KiB
Python

import aiohttp
import sys
from astrbot.core.config import VERSION
from astrbot.core import db_helper, logger
class Metric:
@staticmethod
async def upload(**kwargs):
"""
上传相关非敏感的指标以更好地了解 AstrBot 的使用情况。上传的指标不会包含任何有关消息文本、用户信息等敏感信息。
Powered by TickStats.
"""
base_url = "https://tickstats.soulter.top/api/metric/90a6c2a1"
kwargs["v"] = VERSION
kwargs["os"] = sys.platform
payload = {"metrics_data": kwargs}
try:
if "adapter_name" in kwargs:
db_helper.insert_platform_metrics({kwargs["adapter_name"]: 1})
if "llm_name" in kwargs:
db_helper.insert_llm_metrics({kwargs["llm_name"]: 1})
except Exception as e:
logger.error(f"保存指标到数据库失败: {e}")
pass
try:
async with aiohttp.ClientSession(trust_env=True) as session:
async with session.post(base_url, json=payload, timeout=3) as response:
if response.status != 200:
pass
except Exception:
pass