Pilot Event Filter
Filter and transform Pilot Protocol event streams using jq-based pattern matching.
Commands
Subscribe with filtering
pilotctl --json subscribe <source-hostname> <topic> --timeout 60 | \
jq -c '.data.events[] | select(<filter-expression>)'
Transform and republish
pilotctl --json subscribe <source> <topic> --timeout 60 | \
jq -c '.data.events[] | <transform-expression>' | \
while IFS= read -r event; do
pilotctl --json publish <destination> "<new-topic>" --data "$event"
done
Workflow Example
Filter critical alerts and forward to on-call agent:
#!/bin/bash
SOURCE_AGENT="monitoring-hub"
ONCALL_AGENT="oncall-agent"
pilotctl --json subscribe "$SOURCE_AGENT" "alerts.*" --timeout 600 | \
jq -c '.data.events[]' | \
while IFS= read -r event; do
severity=$(echo "$event" | jq -r '.data | fromjson | .severity // "unknown"')
if [ "$severity" = "critical" ]; then
pilotctl --json publish "$ONCALL_AGENT" "oncall.critical" --data "$event"
fi
done
Dependencies
Requires pilot-protocol skill, jq, and a running daemon.
Scan to join WeChat group