Blame view

scripts/debug/trace_indexer_calls.sh 2.95 KB
ed948666   tangwang   tidy
1
2
3
  #!/bin/bash
  #
  # 排查「谁在调用索引服务」的脚本
3abbc95a   tangwang   重构(scripts): 整理sc...
4
  # 用法: ./scripts/debug/trace_indexer_calls.sh
ed948666   tangwang   tidy
5
6
7
8
9
10
11
12
13
14
15
16
  #
  
  set -euo pipefail
  
  cd "$(dirname "$0")/.."
  source ./activate.sh 2>/dev/null || true
  
  echo "=========================================="
  echo "索引服务调用方排查"
  echo "=========================================="
  
  INDEXER_PORT="${INDEXER_PORT:-6004}"
af03fdef   tangwang   embedding模块代码整理
17
  EMBEDDING_TEXT_PORT="${EMBEDDING_TEXT_PORT:-6005}"
5bac9649   tangwang   文本 embedding 与图片 ...
18
  EMBEDDING_IMAGE_PORT="${EMBEDDING_IMAGE_PORT:-6008}"
ed948666   tangwang   tidy
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
  
  echo ""
  echo "1. 监听端口 6004 的进程(Indexer 服务)"
  echo "------------------------------------------"
  if command -v lsof >/dev/null 2>&1; then
    lsof -i :"${INDEXER_PORT}" 2>/dev/null || echo "  (无进程监听或 lsof 无权限)"
  else
    ss -tlnp 2>/dev/null | grep ":${INDEXER_PORT}" || echo "  (无进程监听)"
  fi
  
  echo ""
  echo "2. 连接到 6004 的客户端(谁在请求 Indexer)"
  echo "------------------------------------------"
  if command -v ss >/dev/null 2>&1; then
    ss -tnp 2>/dev/null | grep ":${INDEXER_PORT}" || echo "  (当前无活跃连接)"
  elif command -v netstat >/dev/null 2>&1; then
    netstat -tnp 2>/dev/null | grep ":${INDEXER_PORT}" || echo "  (当前无活跃连接)"
  else
    echo "  请安装 ss 或 netstat"
  fi
  
  echo ""
5bac9649   tangwang   文本 embedding 与图片 ...
41
  echo "3. 连接到 Embedding 服务的客户端"
ed948666   tangwang   tidy
42
43
  echo "------------------------------------------"
  if command -v ss >/dev/null 2>&1; then
5bac9649   tangwang   文本 embedding 与图片 ...
44
    ss -tnp 2>/dev/null | grep -E ":${EMBEDDING_TEXT_PORT}|:${EMBEDDING_IMAGE_PORT}" || echo "  (当前无活跃连接)"
ed948666   tangwang   tidy
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
  fi
  
  echo ""
  echo "4. 检查定时任务(cron)"
  echo "------------------------------------------"
  (crontab -l 2>/dev/null | grep -i indexer) || echo "  当前用户无相关 cron"
  if [ -d /etc/cron.d ]; then
    grep -l -i indexer /etc/cron.d/* 2>/dev/null || true
  fi
  
  echo ""
  echo "5. 端口与逻辑说明"
  echo "------------------------------------------"
  echo "  - Indexer 服务: 端口 ${INDEXER_PORT}"
  echo "    启动: ./scripts/start_indexer.sh 或 python main.py serve-indexer"
  echo "    接口: POST /indexer/reindex, POST /indexer/index, POST /indexer/build-docs 等"
  echo ""
  echo "  - 调用方(文档说明): 外部 Java 程序或 curl 等 HTTP 客户端"
  echo "    全量: curl -X POST http://localhost:${INDEXER_PORT}/indexer/reindex -d '{\"tenant_id\":\"170\",\"batch_size\":500}'"
  echo "    增量: curl -X POST http://localhost:${INDEXER_PORT}/indexer/index -d '{\"tenant_id\":\"170\",\"spu_ids\":[\"123\"]}'"
  echo ""
  echo "  - Indexer 内部会调用:"
5bac9649   tangwang   文本 embedding 与图片 ...
67
68
  echo "    - Text Embedding 服务 (${EMBEDDING_TEXT_PORT}): POST /embed/text"
  echo "    - Image Embedding 服务 (${EMBEDDING_IMAGE_PORT}): POST /embed/image"
ed948666   tangwang   tidy
69
70
71
72
73
74
  echo "    - Qwen API: dashscope.aliyuncs.com (翻译、LLM 分析)"
  echo "    - MySQL: 商品数据"
  echo "    - Elasticsearch: 写入索引"
  echo ""
  echo "6. 实时监控连接(按 Ctrl+C 停止)"
  echo "------------------------------------------"
5bac9649   tangwang   文本 embedding 与图片 ...
75
  echo "  运行: watch -n 2 'ss -tnp | grep -E \":${INDEXER_PORT}|:${EMBEDDING_TEXT_PORT}|:${EMBEDDING_IMAGE_PORT}\"'"
ed948666   tangwang   tidy
76
  echo ""