#!/bin/bash
BASE=http://10.168.3.36:19088
C=friend-deploy-20cc100e-c6e

echo "=== 1. 实例日志里的最近 HTTP 请求（path + status）==="
docker exec $C sh -c 'tail -40 /var/lib/friend/logs/friend.log' 2>/dev/null | grep -iE "GET|POST|PUT|http|status" | tail -12

echo ""
echo "=== 2. 实例 APIAddress ==="
curl -sS -H "Authorization: Bearer dev-admin-token" "$BASE/api/v1/instances/friend-3f527e57" | python3 -c "
import sys,json
d=json.load(sys.stdin).get('instance',{})
print('api_address:', d.get('api_address'))
print('node_id:', d.get('node_id'))"

echo ""
echo "=== 3. 从宿主机直连实例 API（真实 token）==="
ITOK=$(docker exec $C sh -c "grep api_auth_token /app/config/config.yaml" | awk '{print $2}')
echo "ITOK_len=${#ITOK}"
APIADDR=$(curl -sS -H "Authorization: Bearer dev-admin-token" "$BASE/api/v1/instances/friend-3f527e57" | python3 -c "import sys,json; print(json.load(sys.stdin).get('instance',{}).get('api_address',''))")
echo "APIADDR=$APIADDR"
case "$APIADDR" in *"://"*) TGT="$APIADDR";; *) TGT="http://$APIADDR";; esac
echo "--- 直连 $TGT/api/chains ---"
curl -sS --max-time 10 -w "\nHTTP=%{http_code}\n" -H "Authorization: Bearer $ITOK" "$TGT/api/chains" | head -c 400

echo ""
echo "=== 4. manager 转发实现后半段（怎么发请求的）==="
sed -n '/friendTarget := instance.APIAddress/,/^}/p' /opt/friend-cluster-src/internal/api/server.go 2>/dev/null | head -30 || echo "(源码不在服务器上，跳过)"
echo DONE
