Skip to content

sp agent

When agents use this: Install a backend-compatible sp-agent.jar and get copy-paste JVM flags after sp app create.

Synopsis

SubcommandDescription
downloadFetch bundled jar from sp-boot; default install dir under XDG data home
commandEmit -javaagent and sp.* system properties for record mode

agent download

bash
sp agent download --json
sp agent download --out-dir "${XDG_DATA_HOME:-$HOME/.local/share}/softprobe/agent" --json

Default install directory: ${XDG_DATA_HOME:-~/.local/share}/softprobe/agent.

Writes:

  • sp-agent.jar — verified against backend manifest sha256
  • manifest.json{ "version", "sha256", "sizeBytes", "builtAt" }

Re-download is skipped when the on-disk jar already matches the backend manifest.

Example envelope:

json
{
  "ok": true,
  "command": "agent download",
  "data": {
    "dir": "/home/user/.local/share/softprobe/agent",
    "path": "/home/user/.local/share/softprobe/agent/sp-agent.jar",
    "manifestPath": "/home/user/.local/share/softprobe/agent/manifest.json",
    "version": "3.9.56",
    "sha256": "…",
    "sizeBytes": 27055970,
    "reusedExisting": false
  }
}

agent command

bash
sp agent download --json
sp agent command --app a1b2c3d4e5f67890 --json
sp agent command --app a1b2c3d4e5f67890 --agent-jar /opt/softprobe/sp-agent.jar --app-jar target/app.jar --json
FlagDescription
--appRequired. Registered appId from sp app create
--agent-jarOptional. Default: $SP_AGENT_JAR, then ${XDG_DATA_HOME}/softprobe/agent/sp-agent.jar
--app-jarOptional. Trailing -jar … in startCommand
--storage-hostOverride -Dsp.storage.service.host=
--config-hostOverride -Dsp.config.service.host= (defaults to storage host)
--formatjson (default), shell, docker, maven

Host inference from profile URL:

  • http://127.0.0.1:8090127.0.0.1:8090
  • https://api.example.comapi.example.com (no default port)

When the default jar is missing:

json
{
  "ok": false,
  "command": "agent command",
  "error": {
    "code": "USAGE",
    "message": "sp-agent.jar not found; run sp agent download",
    "backend": {
      "nextActions": ["sp agent download"]
    }
  }
}

Example success data (abbreviated):

json
{
  "appId": "a1b2c3d4e5f67890",
  "agentJar": "/home/user/.local/share/softprobe/agent/sp-agent.jar",
  "agentJarExists": true,
  "storageHost": "127.0.0.1:8090",
  "configHost": "127.0.0.1:8090",
  "jvmArgs": [
    "-javaagent:/home/user/.local/share/softprobe/agent/sp-agent.jar",
    "-Dsp.app.id=a1b2c3d4e5f67890",
    "-Dsp.storage.service.host=127.0.0.1:8090",
    "-Dsp.config.service.host=127.0.0.1:8090"
  ],
  "startCommand": "java -javaagent:… -Dsp.app.id=… …",
  "startCommandMultiline": "java \\\n  -javaagent:… \\\n  …",
  "dockerJavaToolOptions": "-javaagent:… …",
  "mavenArgLine": "-javaagent:… …",
  "nextActions": [
    "Run startCommand (or paste startCommandMultiline into a run script)",
    "Send traffic, then: sp record case list --app a1b2c3d4e5f67890 --since -1h --json"
  ]
}
--formatstdout
jsonFull envelope on stdout
shellstartCommandMultiline only
dockerENV JAVA_TOOL_OPTIONS='…'
maven<argLine>…</argLine>

REST mapping

SubcommandMethodPath
downloadGET/api/agent/java/manifest
downloadGET/api/agent/java/download

零代码改动 · 全上下文可见性 · 成本优化