05 - Parsing with regex
Following from the previous section, the below demonstrates parsing the same output with regex.
Utilize regex parsing when dealing with complicated outputs.
Command output
Example command output from df -k
ubuntu@host:~$ df -k
Filesystem     1K-blocks    Used Available Use% Mounted on
tmpfs              98440    1560     96880   2% /run
/dev/sda1       47145992 5042744  42086864  11% /
tmpfs             492196       0    492196   0% /dev/shm
tmpfs               5120       0      5120   0% /run/lock
/dev/sda15         99791    6418     93374   7% /boot/efi
tmpfs              98436       4     98432   1% /run/user/1001
We have set the run command to df -k.
The parse options have set the matches parsing option with the required regex, and keys, as well as what line to start parsing from.
- Place the configuration into your 
configsdirectory - Stop/Start the binary
./airpipe --api-key enter-your-api-key --config-dir configs/ 
Review configuration
tutorial-df-regex-to-api.yml
name: tutorial-df-regex-to-api
interfaces:
  tutorial/parse-df-regex:
    output: http
    actions:
      - name: DiskDf
        command: 
          run: df -k
          parse:
            line_start: 1
            matches:
              - keys: [
                  fs,
                  1K-blocks,
                  used,
                  available,
                  usePerc,
                  mountedOn,
                ]
                regex: (\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)
HTTP Response
{
    "data": {
        "DiskDf": {
            "data": [
                {
                    "1K-blocks": 4106912,
                    "available": 4105284,
                    "fs": "tmpfs",
                    "mountedOn": "/run",
                    "usePerc": "1%",
                    "used": 1628
                },
                {
                    "1K-blocks": 203770680,
                    "available": 5789456,
                    "fs": "/dev/mapper/ubuntu--vg-ubuntu--lv",
                    "mountedOn": "/",
                    "usePerc": "98%",
                    "used": 188632988
                },
                {
                    "1K-blocks": 20534548,
                    "available": 20534520,
                    "fs": "tmpfs",
                    "mountedOn": "/dev/shm",
                    "usePerc": "1%",
                    "used": 28
                },
                {
                    "1K-blocks": 5120,
                    "available": 5116,
                    "fs": "tmpfs",
                    "mountedOn": "/run/lock",
                    "usePerc": "1%",
                    "used": 4
                },
                {
                    "1K-blocks": 1992552,
                    "available": 1515172,
                    "fs": "/dev/sda2",
                    "mountedOn": "/boot",
                    "usePerc": "20%",
                    "used": 356140
                },
                {
                    "1K-blocks": 4106908,
                    "available": 4106832,
                    "fs": "tmpfs",
                    "mountedOn": "/run/user/1000",
                    "usePerc": "1%",
                    "used": 76
                }
            ],
            "time.ms": 20
        }
    }
}