Ir al contenido

diagnostics

El dominio diagnostics tiene 12 acciones. En la superficie meta se alcanzan todas a través de arcane_diagnostics; en la individual, cada una es una herramienta propia; en la dinámica se ejecutan con arcane_execute_action y el ID canónico.

AcciónTítuloTipo
diagnostics.actorsGet actor diagnostics for an environmentlectura
diagnostics.actors_streamSample actor diagnostics of all environmentslectura
diagnostics.goroutinesGet goroutine diagnostics for an environmentlectura
diagnostics.pprof_cmdlineGet the server command linelectura
diagnostics.pprof_cpu_profileCapture a CPU profilelectura
diagnostics.pprof_indexList pprof profileslectura
diagnostics.pprof_profileGet a runtime profilelectura
diagnostics.pprof_symbolResolve program counters to symbolslectura
diagnostics.pprof_traceCapture an execution tracelectura
diagnostics.run_commandRun a diagnostics commandlectura
diagnostics.server_logsGet Arcane server logslectura
diagnostics.snapshotGet server diagnosticslectura

Get actor diagnostics for an environment

Returns Francis actor host, actor type, and run queue diagnostics for one environment.

  • Tipo: lectura
  • Parámetros obligatorios: ninguno
  • Meta-herramienta: arcane_diagnostics con "action": "actors"
  • Herramienta individual: arcane_diagnostics_actors
  • Ruta de Arcane: GET /api/environments/{id}/diagnostics/actors
  • ID de operación: get-environment-actor-diagnostics
  • Desde: Arcane v2.15.0
  • Uso: environmentId comes from environment.list. A remote environment is answered by its agent. The result has ready (false with empty data while the actor runtime starts), hosts, actorTypes (active actors, pending jobs and alarms, dead and completed job counts, up to 10 recent instances and failures with lastError) and runs counted by status. Use diagnostics.actors_stream to see every environment at once. Investigate failed runs with job.list_runs.
  • Acciones relacionadas: environment.list, diagnostics.actors_stream, job.list_runs, job.list

Sample actor diagnostics of all environments

Sample the live actor (background worker) diagnostics of every environment, as pushed by Arcane’s actors diagnostics stream

  • Tipo: lectura
  • Parámetros obligatorios: ninguno
  • Meta-herramienta: arcane_diagnostics con "action": "actors_stream"
  • Herramienta individual: arcane_diagnostics_actors_stream
  • Ruta de Arcane: GET /api/diagnostics/actors/stream (WebSocket)
  • ID de operación: ws-diagnostics-actors-stream
  • Desde: Arcane v2.15.0
  • Uso: Each sample is a list with one entry per environment (local first, then every active remote one), each with environmentId, environmentName, ready, hosts, actorTypes, runs by status and an error string when that environment could not be reached. Arcane pushes on connect and then every 10 seconds, so keep samples=1 unless you want to watch changes. Use diagnostics.actors for a single environment. Needs the diagnostics read permission.
  • Acciones relacionadas: diagnostics.actors, environment.list, job.list_runs

Get goroutine diagnostics for an environment

Returns the live goroutines grouped by identical stack, largest group first.

  • Tipo: lectura
  • Parámetros obligatorios: ninguno
  • Meta-herramienta: arcane_diagnostics con "action": "goroutines"
  • Herramienta individual: arcane_diagnostics_goroutines
  • Ruta de Arcane: GET /api/environments/{id}/diagnostics/goroutines
  • ID de operación: get-environment-goroutine-diagnostics
  • Desde: Arcane v2.16.0
  • Uso: environmentId comes from environment.list. A remote environment reports its agent’s goroutines. Returns total, capturedAt and groups of goroutines sharing an identical stack (count, label naming the entry function, frames with function, file and line), largest first: a quick way to spot pile-ups without administrator rights. For raw pprof output use diagnostics.pprof_profile with name goroutine (global administrators only).
  • Acciones relacionadas: diagnostics.snapshot, diagnostics.run_command, diagnostics.pprof_profile, environment.list

Get the server command line

Return the Arcane server process’s command line (pprof cmdline, global administrators only)

  • Tipo: lectura
  • Parámetros obligatorios: ninguno
  • Meta-herramienta: arcane_diagnostics con "action": "pprof_cmdline"
  • Herramienta individual: arcane_diagnostics_pprof_cmdline
  • Ruta de Arcane: GET /api/debug/pprof/cmdline
  • ID de operación: pprof-cmdline
  • Uso: Returns the process arguments as text in content, separated by NUL bytes. Use diagnostics.snapshot for the Go version, OS and uptime instead.
  • Acciones relacionadas: diagnostics.pprof_index, diagnostics.snapshot

Capture a CPU profile

Capture a CPU profile of the Arcane server for a number of seconds and return it as a base64 pprof protobuf (global administrators only)

  • Tipo: lectura
  • Parámetros obligatorios: ninguno
  • Meta-herramienta: arcane_diagnostics con "action": "pprof_cpu_profile"
  • Herramienta individual: arcane_diagnostics_pprof_cpu_profile
  • Ruta de Arcane: GET /api/debug/pprof/profile
  • ID de operación: pprof-profile
  • Uso: Blocks for the whole capture (default 30 s) and returns a gzipped pprof file for go tool pprof. Keep seconds below arcane-mcp’s request timeout (60 s unless ARCANE_MCP_TIMEOUT changes it). Only one CPU profile can run at a time on the server.
  • Acciones relacionadas: diagnostics.pprof_symbol, diagnostics.pprof_trace, diagnostics.pprof_profile, diagnostics.snapshot

List pprof profiles

Return the Go pprof index of the Arcane server: the available runtime profiles and their counts (global administrators only)

  • Tipo: lectura
  • Parámetros obligatorios: ninguno
  • Meta-herramienta: arcane_diagnostics con "action": "pprof_index"
  • Herramienta individual: arcane_diagnostics_pprof_index
  • Ruta de Arcane: GET /api/debug/pprof/
  • ID de operación: pprof-index
  • Uso: Returns the pprof index as an HTML page in content, listing each profile name with its count. Use it to see which profile names exist before calling diagnostics.pprof_profile. All pprof actions require a global administrator.
  • Acciones relacionadas: diagnostics.pprof_profile, diagnostics.pprof_cpu_profile, diagnostics.pprof_trace, diagnostics.goroutines

Get a runtime profile

Return a named Go runtime profile of the Arcane server (goroutine, heap, allocs, block, mutex, threadcreate), as text or as a base64 pprof protobuf (global administrators only)

  • Tipo: lectura
  • Parámetros obligatorios: name
  • Meta-herramienta: arcane_diagnostics con "action": "pprof_profile"
  • Herramienta individual: arcane_diagnostics_pprof_profile
  • Ruta de Arcane: GET /api/debug/pprof/{name}
  • ID de operación: pprof-named
  • Uso: Profile names come from diagnostics.pprof_index. debug=1 returns readable text in content (debug=2 gives full goroutine stacks). debug 0 returns a gzipped pprof file. seconds returns the difference over that interval (supported for every one of these profiles) and cannot be combined with debug, which Go rejects with ‘seconds and debug params are incompatible’. For a grouped goroutine summary use diagnostics.goroutines.
  • Acciones relacionadas: diagnostics.pprof_index, diagnostics.pprof_symbol, diagnostics.goroutines, diagnostics.pprof_cpu_profile

Resolve program counters to symbols

Resolve program counter addresses of the Arcane server to function names (pprof symbol, global administrators only)

  • Tipo: lectura
  • Parámetros obligatorios: ninguno
  • Meta-herramienta: arcane_diagnostics con "action": "pprof_symbol"
  • Herramienta individual: arcane_diagnostics_pprof_symbol
  • Ruta de Arcane: GET /api/debug/pprof/symbol
  • Ruta de Arcane: POST /api/debug/pprof/symbol
  • ID de operación: pprof-symbol
  • Uso: Take the 0x addresses from a diagnostics.pprof_profile debug=1 dump. With addresses the content lists each address with its function name. Without them it returns only num_symbols.
  • Acciones relacionadas: diagnostics.pprof_profile, diagnostics.pprof_cpu_profile

Capture an execution trace

Capture a Go execution trace of the Arcane server for a number of seconds and return it base64-encoded (global administrators only)

  • Tipo: lectura
  • Parámetros obligatorios: ninguno
  • Meta-herramienta: arcane_diagnostics con "action": "pprof_trace"
  • Herramienta individual: arcane_diagnostics_pprof_trace
  • Ruta de Arcane: GET /api/debug/pprof/trace
  • ID de operación: pprof-trace
  • Uso: Blocks for the capture (default 1 s) and returns a binary trace for go tool trace. Traces grow quickly, so keep seconds small. Use diagnostics.pprof_cpu_profile to find where CPU time goes instead of scheduling and latency detail.
  • Acciones relacionadas: diagnostics.pprof_cpu_profile, diagnostics.pprof_profile, diagnostics.pprof_index

Run a diagnostics command

Run a diagnostics command on the Arcane server: a goroutine leak scan, a text dump of a runtime profile, or a timed profile capture

  • Tipo: lectura
  • Parámetros obligatorios: command
  • Meta-herramienta: arcane_diagnostics con "action": "run_command"
  • Herramienta individual: arcane_diagnostics_run_command
  • Ruta de Arcane: GET /api/diagnostics/stream (WebSocket)
  • ID de operación: ws-diagnostics-command
  • Uso: leakScan needs only the diagnostics read permission and returns leakReport (count, profile text, scannedAt). dump and profile fail with ‘profiles require a global administrator’ otherwise. dump returns the named profile as debug=2 text (full stacks for goroutine). profile returns it base64-encoded in data, and seconds only matters for name ‘profile’ (CPU profile) or ‘trace’, since Arcane snapshots every other profile immediately and rejects ‘cpu’ as unknown. For downloadable pprof files prefer diagnostics.pprof_profile, diagnostics.pprof_cpu_profile or diagnostics.pprof_trace.
  • Acciones relacionadas: diagnostics.snapshot, diagnostics.goroutines, diagnostics.pprof_profile, diagnostics.pprof_cpu_profile

Get Arcane server logs

Return the Arcane server’s own recent log entries, optionally listening for new ones for a few seconds

  • Tipo: lectura
  • Parámetros obligatorios: ninguno
  • Meta-herramienta: arcane_diagnostics con "action": "server_logs"
  • Herramienta individual: arcane_diagnostics_server_logs
  • Ruta de Arcane: GET /api/diagnostics/logs/stream (WebSocket)
  • ID de operación: ws-diagnostics-logs-stream
  • Uso: These are Arcane’s own backend logs, not a container’s (use container.logs for those). Arcane first replays its in-memory backlog of up to 1000 recent entries, then streams new ones until seconds elapse or maxLines entries arrive. The result has count, entries (time, level, message, attrs) and why collection stopped. The backlog is replayed oldest first, so when it holds more than maxLines (default 500) you get the oldest entries: raise maxLines above 1000 to reach the newest. Needs the diagnostics read permission.
  • Acciones relacionadas: diagnostics.snapshot, event.list, container.logs

Get server diagnostics

Return a snapshot of the Arcane server’s runtime diagnostics: goroutines, memory, WebSocket connections and background workers

  • Tipo: lectura
  • Parámetros obligatorios: ninguno
  • Meta-herramienta: arcane_diagnostics con "action": "snapshot"
  • Herramienta individual: arcane_diagnostics_snapshot
  • Ruta de Arcane: GET /api/diagnostics/stream (WebSocket)
  • ID de operación: ws-diagnostics-stream
  • Uso: Server-wide (no environmentId). Needs the diagnostics read permission, not an administrator. Arcane pushes one snapshot on connect and then one every 2 seconds, so samples=1 returns at once. Each sample’s snapshot holds runtime (goroutines, leakedGoroutines, goVersion, uptimeSeconds), memory, gc and websocket connection metrics. Follow up with diagnostics.goroutines to see where goroutines sit or diagnostics.run_command leakScan to check for leaks.
  • Acciones relacionadas: diagnostics.goroutines, diagnostics.run_command, diagnostics.server_logs, system.stats