Tác giả: HolySheep AI Team | Cập nhật: 2026-05-06 | Độ khó: Chuyên sâu
Kịch bản lỗi thực tế
Đêm khuya, hệ thống LLM proxy của bạn đang chạy ổn định với 200+ developer sử dụng. Bỗng dưng:
ERROR - ConnectionError: timeout after 30s
Tenant: enterprise-corp-42
Endpoint: /v1/chat/completions
Remote: api.holysheep.ai
Source IP: 45.76.xxx.xxx (shared pool)
CRITICAL - Rate limit exceeded
IP: 45.76.xxx.xxx
Response: 429 Too Many Requests
Retry-After: 60s
Log tiếp theo cho thấy vấn đề nghiêm trọng hơn:
WARN - Multiple tenants sharing same egress IP
IP 45.76.xxx.xxx used by: [corp-42, startup-alpha, dev-team-7]
One tenant's abuse affecting others
Vấn đề gốc: Tất cả các tenant đang dùng chung một IP egress pool. Khi một tenant bị rate limit hoặc bị block, toàn bộ tenant khác đều bị ảnh hưởng. Đây là lý do bạn cần TPROXY + connmark để phân tách hoàn toàn lưu lượng theo tenant.
Tổng quan kiến trúc
Giải pháp này sử dụng Linux kernel netfilter và iptables TPROXY để:
- Đánh dấu (mark) gói tin dựa trên tenant identifier
- Định tuyến gói tin đã đánh dấu qua các bảng routing riêng
- Áp dụng NAT source IP riêng cho từng tenant
Cấu trúc hệ thống
+-------------------+ +------------------+ +--------------------+
| Client Request |---->| TPROXY Proxy |---->| HolySheep API |
| (Tenant Header) | | (Mark & Route) | | (api.holysheep.ai)|
+-------------------+ +------------------+ +--------------------+
| | |
v v v
X-Proxy-Tenant: fwmark based Dedicated Egress
enterprise-corp-42 routing table IP Pool per Tenant
Cài đặt môi trường
# Kiểm tra kernel hỗ trợ
uname -r
Output: 5.15.0-holysheep-generic hoặc cao hơn
Kiểm tra các module cần thiết
modprobe nf_conntrack
modprobe nf_nat
modprobe xt_mark
modprobe ip_tables
Bật IP forwarding
cat >> /etc/sysctl.conf << 'EOF'
net.ipv4.ip_forward = 1
net.ipv4.conf.all.rp_filter = 0
net.ipv4.conf.default.rp_filter = 0
EOF
sysctl -p
Script triển khai chính
#!/bin/bash
holy-sheep-tproxy.sh - TPROXY + connmark cho multi-tenant LLM proxy
Phiên bản: v2_2002_0506
set -euo pipefail
==================== CẤU HÌNH ====================
HOLYSHEEP_API="https://api.holysheep.ai/v1"
INBOUND_IF="eth0"
OUTBOUND_IF="eth1"
LOCAL_PROXY_PORT="8080"
Tenant pool - mỗi tenant có IP egress riêng
declare -A TENANT_EGRESS_IPS=(
["enterprise-corp-42"]="10.200.0.10"
["startup-alpha"]="10.200.0.11"
["dev-team-7"]="10.200.0.12"
["default"]="10.200.0.20"
)
Bảng routing riêng cho mỗi tenant
declare -A TENANT_RT_TABLE=(
["enterprise-corp-42"]="100"
["startup-alpha"]="101"
["dev-team-7"]="102"
["default"]="200"
)
Gateway cho mỗi pool
declare -A TENANT_GATEWAY=(
["enterprise-corp-42"]="10.200.0.1"
["startup-alpha"]="10.200.0.1"
["dev-team-7"]="10.200.0.1"
["default"]="10.200.0.1"
)
==================== KHỞI TẠO ====================
init_iptables() {
echo "[INFO] Khởi tạo iptables chains..."
# Tạo chains riêng
iptables -t mangle -N TPROXY_MARK
iptables -t nat -N HOLYSHEEP_DNAT
# Flush rules cũ (chạy lại script)
iptables -t mangle -F TPROXY_MARK
iptables -t nat -F HOLYSHEEP_DNAT
echo "[OK] Chains đã khởi tạo"
}
==================== CẤU HÌNH ROUTING ====================
setup_routing_tables() {
echo "[INFO] Thiết lập bảng routing riêng cho từng tenant..."
for tenant in "${!TENANT_RT_TABLE[@]}"; do
local rt_table="${TENANT_RT_TABLE[$tenant]}"
local egress_ip="${TENANT_EGRESS_IPS[$tenant]}"
local gateway="${TENANT_GATEWAY[$tenant]}"
# Thêm vào /etc/iproute2/rt_tables nếu chưa có
if ! grep -q "^${rt_table} ${tenant}" /etc/iproute2/rt_tables 2>/dev/null; then
echo "${rt_table} ${tenant}" >> /etc/iproute2/rt_tables
fi
# Xóa rule cũ
ip route flush table ${tenant} 2>/dev/null || true
ip rule del from ${egress_ip} table ${tenant} 2>/dev/null || true
# Tạo route riêng
ip route add default via ${gateway} dev ${OUTBOUND_IF} table ${tenant}
# Rule định tuyến dựa trên source IP
ip rule add from ${egress_ip} table ${tenant} priority ${rt_table}
echo "[OK] Tenant ${tenant}: IP=${egress_ip}, Table=${rt_table}"
done
}
==================== THIẾT LẬP NAT ====================
setup_nat() {
echo "[INFO] Thiết lập NAT cho từng tenant..."
for tenant in "${!TENANT_EGRESS_IPS[@]}"; do
local egress_ip="${TENANT_EGRESS_IPS[$tenant]}"
local rt_table="${TENANT_RT_TABLE[$tenant]}"
# Source NAT (SNAT) cho outbound traffic
iptables -t nat -A HOLYSHEEP_DNAT \
-m mark --mark ${rt_table} \
-j SNAT --to-source ${egress_ip}
# Log để debug
iptables -t nat -A HOLYSHEEP_DNAT \
-m mark --mark ${rt_table} \
-j LOG --log-prefix "HOLYSHEEP-${tenant}: "
echo "[OK] NAT cho ${tenant} -> ${egress_ip}"
done
}
==================== CẤU HÌNH TPROXY ====================
setup_tproxy() {
echo "[INFO] Thiết lập TPROXY cho transparent proxy..."
# TPROXY rule - redirect traffic đến local proxy
iptables -t mangle -A PREROUTING -i ${INBOUND_IF} -p tcp \
--dport 443 \
-m socket -j TPROXY --tproxy-mark 0x1/0x1 --on-port ${LOCAL_PROXY_PORT}
# Áp dụng marks dựa trên tenant header
iptables -t mangle -A TPROXY_MARK \
-m mark --mark 0x0 \
-j ACCEPT
echo "[OK] TPROXY đã cấu hình trên port ${LOCAL_PROXY_PORT}"
}
==================== MANGLE RULES ====================
apply_marking_rules() {
echo "[INFO] Áp dụng marking rules cho từng tenant..."
for tenant in "${!TENANT_RT_TABLE[@]}"; do
local rt_table="${TENANT_RT_TABLE[$tenant]}"
local tenant_id=$(echo -n "${tenant}" | md5sum | cut -d' ' -f1 | head -c 8)
local mark_value=$((0x${tenant_id:0:8}))
# Đánh dấu traffic dựa trên tenant identifier
# Cách 1: Theo X-Proxy-Tenant header (cần layer7 inspection)
iptables -t mangle -A TPROXY_MARK \
-p tcp --dport 443 \
-m string --string "X-Proxy-Tenant: ${tenant}" --algo bm \
-j MARK --set-mark ${mark_value}
# Cách 2: Theo source IP của client
# iptables -t mangle -A TPROXY_MARK \
# -s ${CLIENT_IP} -j MARK --set-mark ${mark_value}
echo "[OK] Mark ${mark_value} cho tenant ${tenant}"
done
}
==================== PROXY CODE ====================
create_proxy_script() {
cat > /usr/local/bin/holy-sheep-proxy.py << 'PROXY_EOF'
#!/usr/bin/env python3
"""
HolySheep TPROXY Proxy - Transparent proxy với tenant isolation
Kết nối đến HolySheep AI API: https://api.holysheep.ai/v1
"""
import asyncio
import hashlib
import os
import socket
from typing import Dict, Optional
from dataclasses import dataclass
import httpx
Cấu hình tenant pools
TENANT_CONFIG = {
"enterprise-corp-42": {
"egress_ip": "10.200.0.10",
"mark": 0x10000001,
"rt_table": 100,
"rate_limit": 1000, # requests/minute
},
"startup-alpha": {
"egress_ip": "10.200.0.11",
"mark": 0x10000002,
"rt_table": 101,
"rate_limit": 500,
},
"dev-team-7": {
"egress_ip": "10.200.0.12",
"mark": 0x10000003,
"rt_table": 102,
"rate_limit": 200,
},
}
@dataclass
class TenantContext:
tenant_id: str
config: dict
request_count: int = 0
last_reset: float = 0
class HolySheepProxy:
def __init__(self, api_key: str):
self.api_key = api_key or os.environ.get("HOLYSHEEP_API_KEY")
if not self.api_key:
raise ValueError("HOLYSHEEP_API_KEY not set")
self.api_base = "https://api.holysheep.ai/v1" # LUÔN LUÔN dùng HolySheep
self.tenant_contexts: Dict[str, TenantContext] = {}
self.client = httpx.AsyncClient(timeout=120.0)
def _get_tenant_from_headers(self, headers: dict) -> str:
"""Trích xuất tenant ID từ request headers"""
return headers.get("X-Proxy-Tenant", "default")
def _get_tenant_mark(self, tenant_id: str) -> int:
"""Lấy fwmark cho tenant"""
config = TENANT_CONFIG.get(tenant_id, TENANT_CONFIG["default"])
return config["mark"]
def _apply_fwmark(self, tenant_id: str) -> bool:
"""Áp dụng fwmark cho connection"""
mark = self._get_tenant_mark(tenant_id)
# Sử dụng SO_MARK socket option (cần CAP_NET_ADMIN)
return True # Proxy đã được đánh dấu bởi iptables
async def forward_to_holysheep(self, tenant_id: str, method: str,
path: str, headers: dict, body: bytes) -> httpx.Response:
"""Chuyển tiếp request đến HolySheep API với tenant isolation"""
# Xác định endpoint
url = f"{self.api_base}{path}"
# Thêm API key vào header
request_headers = {
"Authorization": f"Bearer {self.api_key}",
"Content-Type": "application/json",
}
# Ghi log tenant context
print(f"[HOLYSHEEP] Tenant={tenant_id}, URL={url}, Mark=0x{self._get_tenant_mark(tenant_id):x}")
# Forward request
try:
response = await self.client.request(
method=method,
url=url,
headers=request_headers,
content=body,
)
return response
except httpx.HTTPError as e:
print(f"[ERROR] HolySheep API error: {e}")
raise
async def handle_request(self, client_reader, client_writer):
"""Xử lý incoming connection"""
try:
# Đọc request
request_line = await client_reader.readline()
if not request_line:
return
method, path, version = request_line.decode().split()
headers = {}
while True:
line = await client_reader.readline()
if line in (b'\r\n', b'\n', b''):
break
key, value = line.decode().strip().split(':', 1)
headers[key.strip()] = value.strip()
# Xác định tenant
tenant_id = self._get_tenant_from_headers(headers)
print(f"[REQUEST] {method} {path} from tenant={tenant_id}")
# Đọc body nếu có
content_length = int(headers.get('Content-Length', 0))
body = b''
if content_length > 0:
body = await client_reader.readexactly(content_length)
# Chuyển tiếp đến HolySheep
response = await self.forward_to_holysheep(
tenant_id, method, path, headers, body
)
# Gửi response về client
client_writer.write(f"HTTP/1.1 {response.status_code} OK\r\n".encode())
client_writer.write(f"Content-Length: {len(response.content)}\r\n".encode())
client_writer.write(b"\r\n")
client_writer.write(response.content)
await client_writer.drain()
except Exception as e:
print(f"[ERROR] Request handling error: {e}")
finally:
client_writer.close()
await client_writer.wait_closed()
async def start(self, host: str = "0.0.0.0", port: int = 8080):
"""Khởi động proxy server"""
server = await asyncio.start_server(
self.handle_request, host, port
)
print(f"[INFO] HolySheep TPROXY Proxy started on {host}:{port}")
async with server:
await server.serve_forever()
if __name__ == "__main__":
import os
api_key = os.environ.get("HOLYSHEEP_API_KEY")
proxy = HolySheepProxy(api_key)
asyncio.run(proxy.start())
PROXY_EOF
chmod +x /usr/local/bin/holy-sheep-proxy.py
echo "[OK] Proxy script đã tạo"
}
==================== MAIN ====================
main() {
echo "============================================"
echo "HolySheep TPROXY + Connmark Setup"
echo "Version: v2_2002_0506"
echo "============================================"
init_iptables
setup_routing_tables
setup_nat
setup_tproxy
apply_marking_rules
create_proxy_script
echo ""
echo "============================================"
echo "Hoàn tất! Khởi động proxy:"
echo "HOLYSHEEP_API_KEY=your_key python3 /usr/local/bin/holy-sheep-proxy.py"
echo "============================================"
}
main "$@"
Kiểm tra và giám sát
#!/bin/bash
holy-sheep-monitor.sh - Giám sát hệ thống TPROXY
echo "=== Kiểm tra MARK tables ==="
iptables -t mangle -L TPROXY_MARK -n -v --line-numbers
echo ""
echo "=== Kiểm tra NAT rules ==="
iptables -t nat -L HOLYSHEEP_DNAT -n -v --line-numbers
echo ""
echo "=== Kiểm tra routing tables ==="
for table in 100 101 102 200; do
echo "--- Bảng $table ---"
ip route show table $table
done
echo ""
echo "=== Kiểm tra active connections theo mark ==="
cat /proc/net/ip_tables_names 2>/dev/null || echo "No active tables"
echo ""
echo "=== Theo dõi logs real-time ==="
tail -f /var/log/syslog | grep -i "HOLYSHEEP\|tproxy\|connmark" || \
journalctl -f | grep -i "HOLYSHEEP\|tproxy"
Script failover tự động
#!/bin/bash
holy-sheep-failover.sh - Tự động chuyển IP khi bị block
ALERT_EMAIL="[email protected]"
SLACK_WEBHOOK="https://hooks.slack.com/services/YOUR/WEBHOOK"
check_ip_reputation() {
local ip="$1"
# Check nếu IP bị block trên HolySheep
local response=$(curl -s -o /dev/null -w "%{http_code}" \
-H "Authorization: Bearer ${HOLYSHEEP_API_KEY}" \
"https://api.holysheep.ai/v1/check_ip?ip=${ip}")
if [ "$response" == "429" ] || [ "$response" == "403" ]; then
return 1 # IP bị block
fi
return 0
}
rotate_tenant_ip() {
local tenant="$1"
local current_ip="${TENANT_EGRESS_IPS[$tenant]}"
# Tìm IP dự phòng
local backup_ips=("10.200.1.10" "10.200.1.11" "10.200.1.12")
for backup_ip in "${backup_ips[@]}"; do
if check_ip_reputation "$backup_ip"; then
echo "[WARN] Chuyển ${tenant} từ ${current_ip} -> ${backup_ip}"
# Cập nhật NAT
iptables -t nat -R HOLYSHEEP_DNAT 1 \
-m mark --mark ${TENANT_RT_TABLE[$tenant]} \
-j SNAT --to-source ${backup_ip}
# Cập nhật routing
ip route replace default via 10.200.1.1 dev eth1 table ${TENANT_RT_TABLE[$tenant]}
ip rule del from ${current_ip} table ${tenant}
ip rule add from ${backup_ip} table ${tenant}
# Cập nhật config
TENANT_EGRESS_IPS[$tenant]="$backup_ip"
# Alert
send_alert "$tenant" "$current_ip" "$backup_ip"
return 0
fi
done
echo "[ERROR] Không tìm được IP sạch cho ${tenant}"
return 1
}
send_alert() {
local tenant="$1"
local old_ip="$2"
local new_ip="$3"
# Gửi Slack notification
curl -X POST "$SLACK_WEBHOOK" -H 'Content-type: application/json' \
--data "{\"text\":\"🚨 HolySheep IP Failover: ${tenant} chuyển IP ${old_ip} -> ${new_ip}\"}"
}
Tích hợp với Python HTTPX Client
# holy_sheep_client.py - Python client với fwmark support
import asyncio
import httpx
import socket
import struct
import os
def set_fwmark(fd: int, mark: int) -> None:
"""Set fwmark cho socket - cần CAP_NET_ADMIN"""
SOL_SOCKET = 1
SO_MARK = 36
setsockopt(fd, SOL_SOCKET, SO_MARK, struct.pack('I', mark))
class HolySheepClient:
"""Client cho HolySheep API với multi-tenant support"""
def __init__(self, api_key: str, tenant_id: str = "default"):
self.api_key = api_key
self.tenant_id = tenant_id
self.base_url = "https://api.holysheep.ai/v1"
# Tenant mark mapping
self.marks = {
"enterprise-corp-42": 0x10000001,
"startup-alpha": 0x10000002,
"dev-team-7": 0x10000003,
}
def _get_mark(self) -> int:
return self.marks.get(self.tenant_id, 0x1)
async def chat_completions(self, messages: list, model: str = "gpt-4o"):
"""Gửi chat completion request"""
headers = {
"Authorization": f"Bearer {self.api_key}",
"X-Proxy-Tenant": self.tenant_id,
}
async with httpx.AsyncClient(timeout=120.0) as client:
response = await client.post(
f"{self.base_url}/chat/completions",
headers=headers,
json={
"model": model,
"messages": messages,
}
)
return response.json()
async def embeddings(self, texts: list, model: str = "text-embedding-3-small"):
"""Tạo embeddings"""
async with httpx.AsyncClient(timeout=60.0) as client:
response = await client.post(
f"{self.base_url}/embeddings",
headers={"Authorization": f"Bearer {self.api_key}"},
json={
"model": model,
"input": texts,
}
)
return response.json()
Ví dụ sử dụng
async def main():
client = HolySheepClient(
api_key=os.environ["HOLYSHEEP_API_KEY"],
tenant_id="enterprise-corp-42"
)
# Chat completion
result = await client.chat_completions(
messages=[
{"role": "system", "content": "Bạn là trợ lý AI tiếng Việt"},
{"role": "user", "content": "Xin chào, giới thiệu về HolySheep"}
],
model="gpt-4o"
)
print(f"Response: {result['choices'][0]['message']['content']}")
asyncio.run(main())
Kiến trúc production hoàn chỉnh
+------------------+ +-------------------+ +------------------+
| Kubernetes | | TPROXY Node | | HolySheep API |
| Pods | | (iptables) | | |
| | | | | |
| +--------------+ | | +--------------+ | | +------------+ |
| | holy-sheep- | | | | PREROUTING | | | | api.holy- | |
| | proxy-sidecar| | | | TPROXY | | | | sheep.ai | |
| +--------------+ | | +--------------+ | | +------------+ |
| | | | | | | | |
| v | | v | | v |
| +--------------+ | | +--------------+ | | +------------+ |
| | Get tenant | | | | MARK & route | | | | Dedicated | |
| | from SA | | | | by fwmark | | | | egress IPs| |
| +--------------+ | | +--------------+ | | +------------+ |
+------------------+ +-------------------+ +------------------+
Kubernetes ServiceAccount → Annotations → Tenant ID → fwmark → Dedicated IP
Terraform cho AWS egress
# main.tf - Infrastructure cho multi-tenant egress
variable "tenants" {
description = "Danh sách tenants"
default = {
"enterprise-corp-42" = { egress_cidr = "10.200.0.0/28" }
"startup-alpha" = { egress_cidr = "10.200.1.0/28" }
"dev-team-7" = { egress_cidr = "10.200.2.0/28" }
}
}
resource "aws_vpc" "egress" {
cidr_block = "10.200.0.0/16"
enable_dns_hostnames = true
enable_dns_support = true
}
resource "aws_eip" "tenant_ips" {
for_each = var.tenants
domain = "vpc"
}
resource "aws_nat_gateway" "tenant_nat" {
for_each = var.tenants
connectivity_type = "public"
allocation_id = aws_eip.tenant_ips[each.key].id
subnet_id = aws_subnet.public.id
tags = {
Tenant = each.key
}
}
resource "aws_route_table" "tenant_routes" {
for_each = var.tenants
vpc_id = aws_vpc.egress.id
route {
cidr_block = "0.0.0.0/0"
nat_gateway_id = aws_nat_gateway.tenant_nat[each.key].id
}
tags = {
Tenant = each.key
}
}
Lỗi thường gặp và cách khắc phục
1. Lỗi "No route to host" hoặc connection timeout
# Triệu chứng: Kết nối đến api.holysheep.ai bị timeout
Nguyên nhân: Routing table không đúng cho tenant
Kiểm tra:
ip route show table 100
Nếu bảng trống hoặc sai gateway
Khắc phục:
ip route add default via 10.200.0.1 dev eth1 table 100
ip route add default via 10.200.0.1 dev eth1 table 101
ip route add default via 10.200.0.1 dev eth1 table 102
Verify:
ip route get from 10.200.0.10 to 8.8.8.8
2. Lỗi "401 Unauthorized" từ HolySheep API
# Triệu chứng: API trả về 401 mặc dù API key đúng
Nguyên nhân: API key không được truyền đúng cách
Kiểm tra:
echo $HOLYSHEEP_API_KEY
Phải là key hợp lệ từ https://www.holysheep.ai/register
Khắc phục - kiểm tra proxy logs:
tail -f /var/log/holy-sheep-proxy.log | grep "401"
Đảm bảo header được thêm đúng:
curl -X POST https://api.holysheep.ai/v1/chat/completions \
-H "Authorization: Bearer $HOLYSHEEP_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"gpt-4o","messages":[{"role":"user","content":"test"}]}'
3. Lỗi "iptables: No chain/target/match" với TPROXY
# Triệu chứng: TPROXY target not found
Nguyên nhân: Kernel không hỗ trợ TPROXY hoặc module chưa load
Kiểm tra:
cat /proc/net/ip_tables_names
lsmod | grep -E "nf_tproxy|xt_TPROXY"
Khắc phục:
modprobe nf_tproxy_core
modprobe xt_TPROXY
Kiểm tra kernel support:
grep -i tproxy /boot/config-$(uname -r)
Nếu không hỗ trợ, cần nâng cấp kernel:
apt-get install linux-image-5.15.0-generic
Hoặc sử dụng Docker với --privileged
4. Lỗi "fwmark value too large"
# Triệu chứng: Mark không được áp dụng
Nguyên nhân: Giá trị mark vượt quá giới hạn
Giới hạn: marks phải nằm trong khoảng 0-31 bits
Khắc phục - sử dụng mark nhỏ hơn:
Sai:
iptables -t mangle -A TPROXY_MARK -j MARK --set-mark 0x10000001
Đúng:
iptables -t mangle -A TPROXY_MARK -j MARK --set-mark 0x1
iptables -t mangle -A TPROXY_MARK -j MARK --set-mark 0x2
iptables -t mangle -A TPROXY_MARK -j MARK --set-mark 0x3
Verify:
iptables -t mangle -L TPROXY_MARK -n -v
5. Lỗi rate limit 429 từ HolySheep
# Triệu chứng: Rate limit exceeded
Nguyên nhân: Vượt quá rate limit của tenant plan
Kiểm tra current usage:
curl -H "Authorization: Bearer $HOLYSHEEP_API_KEY" \
"https://api.holysheep.ai/v1/usage"
Khắc phục - implement rate limiting:
cat >> /usr/local/bin/rate-limiter.py << 'EOF'
import time
from collections import defaultdict
class RateLimiter:
def __init__(self):
self.requests = defaultdict(list)
self.limits = {
"enterprise-corp-42": 1000, # per minute
"startup-alpha": 500,
"dev-team-7": 200,
}
def is_allowed(self, tenant: str) -> bool:
now = time.time()
self.requests[tenant] = [
t for t in self.requests[tenant]
if now - t < 60
]
if len(self.requests[tenant]) >= self.limits.get(tenant, 100):
return False
self.requests[tenant].append(now)
return True
EOF
Restart proxy với rate limiter:
systemctl restart holy-sheep-proxy
Giám sát với Prometheus + Grafana
# prometheus.yml - Scrape config cho HolySheep proxy metrics
scrape_configs:
- job_name: 'holy-sheep-proxy'
static_configs:
- targets: ['localhost:8080']
metrics_path: '/metrics'
relabel_configs:
- source_labels: [__address__]
target_label: instance
regex: '(.+):.*'
replacement: '${1}'
exporter cho iptables marks
Sử dụng node_exporter với custom collector
cat > /etc/node_exporter/textfile_collector/holy_sheep.prom << 'EOF'
HELP holy_sheep_tenant_requests_total Total requests per tenant
TYPE holy_sheep_tenant_requests_total counter
holy_sheep_tenant_requests_total{tenant="enterprise-corp-42"} $(date +%s)
HELP holy_sheep_tenant_errors_total Total errors per tenant
TYPE holy_sheep_tenant_errors_total counter
holy_sheep_tenant_errors_total{tenant="enterprise-corp-42",error="429"} 0
EOF
Performance benchmarks
# Benchmark script - So sánh latency giữa các cấu hình
#!/bin/bash
HOLYSHEEP_API="https://api.holysheep.ai/v1"
API_KEY="${HOLYSHEEP_API_KEY}"
echo "=== HolySheep TPROXY Performance Test ==="
echo "Testing against: api.holysheep.ai"
echo ""
Test 1: Baseline (không qua proxy)
echo "Test 1: Direct API call..."
time curl -s -o /dev/null -w "Time: %{time_total}s, HTTP: %{http_code}\n" \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"gpt-4o-mini","messages":[{"role":"user","content":"test"}]}' \
"${HOLYSHEEP_API}/chat/completions"
Test 2: Qua TPROXY proxy (local)
echo ""
echo "Test 2: Via TPROXY proxy..."
time curl -s -o /dev/null -w "Time: %{time_total}s, HTTP: %{http_code}\n" \
-H "Authorization: Bearer $API_KEY" \
-H "X-Proxy-Tenant: enterprise-corp-42" \