topfans/backend/scripts/loadgen/loadgen/verify.go

36 lines
1.0 KiB
Go

package main
import (
"fmt"
"os/exec"
"strings"
)
func runVerify(prodSSH string) error {
if prodSSH == "" {
return fmt.Errorf("prod-ssh required for verify")
}
pre := sshPG(prodSSH, "SELECT count(*) FROM mint_orders WHERE star_id != 999900")
fmt.Printf(" real mint_orders (non-loadtest): %s\n", pre)
conn := sshPG(prodSSH, "SELECT count(*) FROM pg_stat_activity")
fmt.Printf(" PG active conn: %s\n", conn)
out, err := exec.Command("ssh", prodSSH, "docker ps --format '{{.Names}} {{.Status}}'").Output()
if err != nil {
return fmt.Errorf("docker ps: %w", err)
}
fmt.Printf(" 容器状态:\n%s\n", out)
disk := sshPG(prodSSH, "")
_ = disk
return nil
}
func sshPG(ssh, query string) string {
cmd := exec.Command("ssh", ssh,
fmt.Sprintf(`export PGPASSWORD="${DB_PASSWORD:-postgres123}"; PG=$(docker ps --filter 'name=postgres' --format '{{.Names}}' | grep -v exporter | head -1); docker exec -e PGPASSWORD="$PGPASSWORD" "$PG" psql -U postgres -d topfans -t -c "%s"`, query))
out, _ := cmd.Output()
return strings.TrimSpace(string(out))
}