Compare two containers using native portainer tool data collection and render SVG/CSV outputs.
Use this skill when you need a comparative chart for two containers, possibly across different endpoints.
Collect data through the native portainer tool only, then render comparison artifacts locally.
action: "discover"action: "set" if neededaction: "workflow", workflow: "endpoint.list"action: "request", method: "GET", path: "/api/endpoints"container.list / container.resolve/api/endpoints/{id}/docker/containers/json?all=1action: "request"method: "GET"path: "/api/endpoints/{id}/docker/containers/{containerId}/stats"query: { "stream": false }Write JSON like this before rendering:
{
"title": "Portainer comparison: graphite vs node-red",
"subtitle": "12 live samples over ~55s via Portainer Docker stats",
"items": [
{
"endpoint": "diskstation",
"container": "graphite",
"image": "graphiteapp/graphite-statsd:latest",
"samples": [
{
"timestamp": "2026-04-05T15:00:00.000Z",
"cpu_pct": 16.4,
"mem_pct": 5.6,
"mem_usage_bytes": 1234,
"mem_limit_bytes": 5678,
"rx_bytes": 100,
"tx_bytes": 200,
"pids": 42
}
]
}
]
}
Run the renderer script adjacent to this SKILL file:
bun ./render-portainer-container-compare.ts \
--in /workspace/tmp/portainer-compare-input.json \
--out-prefix /workspace/exports/portainer-compare
This writes:
/workspace/exports/portainer-compare.svg/workspace/exports/portainer-compare.csv/workspace/exports/portainer-compare.jsonportainer tool, not direct curl scripts.request for stats snapshots and unmodeled Docker-proxy paths.