@@ -394,6 +394,7 @@ if [[ "${STATUS_PROM_ENABLED,,}" == "true" ]]; then
394394 STATUS_PROM_DIR=" $( dirname " $STATUS_PROM_FILE " ) "
395395 mkdir -p " $STATUS_PROM_DIR "
396396 AI_STATE_FILE=" ${AI_COPILOT_STATE_FILE:- $ROOT_DIR / ai_copilot_state.json} "
397+ AI_BENCHMARK_STATE_FILE=" ${AI_COPILOT_BENCHMARK_STATE_FILE:- $ROOT_DIR / ai_copilot_benchmark_state.json} "
397398 PORTFOLIO_STATE_FILE=" ${PORTFOLIO_STATE_FILE:- $ROOT_DIR / .portfolio_state.json} "
398399 BOT_LOG_FILE=" ${BOT_LOG_FILE:- $ROOT_DIR / logs/ bot.log} "
399400
@@ -445,6 +446,7 @@ if [[ "${STATUS_PROM_ENABLED,,}" == "true" ]]; then
445446 STATUS_TS_UNIX=" $TS_UNIX " \
446447 SCORECARD_STARTING_CAPITAL=" $STARTING_CAPITAL " \
447448 AI_STATE_FILE=" $AI_STATE_FILE " \
449+ AI_BENCHMARK_STATE_FILE=" $AI_BENCHMARK_STATE_FILE " \
448450 PORTFOLIO_STATE_FILE=" $PORTFOLIO_STATE_FILE " \
449451 BOT_LOG_FILE=" $BOT_LOG_FILE " \
450452 " $PYTHON_CMD " - << 'PY '
@@ -542,6 +544,7 @@ def _read_portfolio_values_from_log(log_path: str):
542544
543545
544546ai_state = _read_json(os.environ["AI_STATE_FILE"])
547+ ai_benchmark_state = _read_json(os.environ["AI_BENCHMARK_STATE_FILE"])
545548portfolio_state = _read_json(os.environ["PORTFOLIO_STATE_FILE"])
546549session_start_value, latest_portfolio_value = _read_portfolio_values_from_log(os.environ["BOT_LOG_FILE"])
547550portfolio_value = latest_portfolio_value
@@ -561,6 +564,14 @@ budget_used_pct = 0.0
561564if monthly_budget > 0:
562565 budget_used_pct = (monthly_spend / monthly_budget) * 100.0
563566
567+ benchmark_monthly_calls = int(_as_float(ai_benchmark_state.get("monthly_calls"), 0.0))
568+ benchmark_daily_calls = int(_as_float(ai_benchmark_state.get("daily_calls"), 0.0))
569+ benchmark_monthly_spend = _as_float(ai_benchmark_state.get("monthly_spend_usd"), 0.0)
570+ benchmark_monthly_budget = _as_float(ai_benchmark_state.get("budget_cap_usd"), 0.0)
571+ benchmark_budget_used_pct = 0.0
572+ if benchmark_monthly_budget > 0:
573+ benchmark_budget_used_pct = (benchmark_monthly_spend / benchmark_monthly_budget) * 100.0
574+
564575lines = [
565576 "# HELP trading_ai_copilot_daily_calls AI copilot calls used in the current day",
566577 "# TYPE trading_ai_copilot_daily_calls gauge",
@@ -574,6 +585,18 @@ lines = [
574585 "# HELP trading_ai_copilot_budget_used_pct Estimated percentage of AI copilot monthly budget already used",
575586 "# TYPE trading_ai_copilot_budget_used_pct gauge",
576587 f"trading_ai_copilot_budget_used_pct {budget_used_pct:.4f}",
588+ "# HELP trading_ai_copilot_benchmark_daily_calls Benchmark AI copilot calls used in the current day",
589+ "# TYPE trading_ai_copilot_benchmark_daily_calls gauge",
590+ f"trading_ai_copilot_benchmark_daily_calls {benchmark_daily_calls}",
591+ "# HELP trading_ai_copilot_benchmark_monthly_calls Benchmark AI copilot calls used in the current month",
592+ "# TYPE trading_ai_copilot_benchmark_monthly_calls gauge",
593+ f"trading_ai_copilot_benchmark_monthly_calls {benchmark_monthly_calls}",
594+ "# HELP trading_ai_copilot_benchmark_monthly_spend_usd Estimated benchmark AI copilot spend in USD for the current month",
595+ "# TYPE trading_ai_copilot_benchmark_monthly_spend_usd gauge",
596+ f"trading_ai_copilot_benchmark_monthly_spend_usd {benchmark_monthly_spend:.6f}",
597+ "# HELP trading_ai_copilot_benchmark_budget_used_pct Estimated percentage of benchmark AI copilot monthly budget already used",
598+ "# TYPE trading_ai_copilot_benchmark_budget_used_pct gauge",
599+ f"trading_ai_copilot_benchmark_budget_used_pct {benchmark_budget_used_pct:.4f}",
577600 "# HELP trading_runtime_portfolio_value Latest portfolio value seen by the trading bot",
578601 "# TYPE trading_runtime_portfolio_value gauge",
579602 f"trading_runtime_portfolio_value {portfolio_value:.6f}",
0 commit comments