alfred icon indicating copy to clipboard operation
alfred copied to clipboard

Add support for grok patterns

Open iilyak opened this issue 7 years ago • 2 comments

Alfred is a great tool. Thank you for developing it.

This is not an issue but a feature request It would be really nice to add automatic parsing of an output of a job and store the parsed groups in the variables. The idea is inspired by filebit

With this feature it would be possible to specify something like (using logstash grok):

node.ps:
  summary: Return list of processes on remote node
  register: node.ps
  command: |
    ssh {{ index .Args 0 }} ps -elf
  ok: node.ps.ok
  fail: node.ps.fail
  grok:
    ssh_error: "ssh: (?<ERROR>[^\,]*)"
    process: "%{F} %{S} %{UID}        %{PID}  %{PPID}  %{C} %{PRI}  %{NI} %{ADDR} %{SZ} %{WCHAN  STIME} %{TTY}          %{TIME} %{CMD}"

node.ps.ok:
  register: node.ps.ok
  command:
    echo '{{ index .Vars "node.ps[*][CMD]" }}'  ### <<--- NOT sure about exact syntax here
  private: true

node.ps.fail:
   
   tasks: node.ping

There are plenty logstash grok patterns here https://github.com/logstash-plugins/logstash-patterns-core/blob/master/patterns/

There are few grok engines written in go already.

iilyak avatar Jul 07 '17 21:07 iilyak

The idea being, grok would look for specific file patters and pass/fail depending if it found it or not?

kcmerrill avatar Jul 07 '17 23:07 kcmerrill

The idea would be to match the output of the command (stdout) against grok pattern. Extract named groups and bind them to the variables, so the parsed results would be available for ok/fail commands.

khia avatar Jul 09 '17 13:07 khia