diff --git a/docs/parsers/csv_s.md b/docs/parsers/csv_s.md index 4515a77b..bcbbaab2 100644 --- a/docs/parsers/csv_s.md +++ b/docs/parsers/csv_s.md @@ -44,13 +44,11 @@ Schema: "column_name2": string, # below object only exists if using -qq or ignore_exceptions=True - - "_jc_meta": - { - "success": boolean, # false if error parsing - "error": string, # exists if "success" is false - "line": string # exists if "success" is false - } + "_jc_meta": { + "success": boolean, # false if error parsing + "error": string, # exists if "success" is false + "line": string # exists if "success" is false + } } Examples: diff --git a/docs/parsers/iostat_s.md b/docs/parsers/iostat_s.md index 8e598bbc..6bdafbf0 100644 --- a/docs/parsers/iostat_s.md +++ b/docs/parsers/iostat_s.md @@ -83,14 +83,12 @@ Schema: "percent_rrqm": float, "percent_wrqm": float, - # Below object only exists if using -qq or ignore_exceptions=True - - "_jc_meta": - { - "success": boolean, # false if error parsing - "error": string, # exists if "success" is false - "line": string # exists if "success" is false - } + # below object only exists if using -qq or ignore_exceptions=True + "_jc_meta": { + "success": boolean, # false if error parsing + "error": string, # exists if "success" is false + "line": string # exists if "success" is false + } } Examples: diff --git a/docs/parsers/ls_s.md b/docs/parsers/ls_s.md index 20bc6a90..fe378ba3 100644 --- a/docs/parsers/ls_s.md +++ b/docs/parsers/ls_s.md @@ -54,14 +54,12 @@ Schema: "epoch": integer, # [0] "epoch_utc": integer, # [1] - # Below object only exists if using -qq or ignore_exceptions=True - - "_jc_meta": - { - "success": boolean, # false if error parsing - "error": string, # exists if "success" is false - "line": string # exists if "success" is false - } + # below object only exists if using -qq or ignore_exceptions=True + "_jc_meta": { + "success": boolean, # false if error parsing + "error": string, # exists if "success" is false + "line": string # exists if "success" is false + } } [0] naive timestamp if date field exists and can be converted. diff --git a/docs/parsers/pidstat_s.md b/docs/parsers/pidstat_s.md index cc049b34..49a52d1e 100644 --- a/docs/parsers/pidstat_s.md +++ b/docs/parsers/pidstat_s.md @@ -7,7 +7,8 @@ jc - JSON Convert `pidstat` command output streaming parser > This streaming parser outputs JSON Lines -<> +Must use the `-h` option in `pidstat`. All other `pidstat` options are +supported in combination with `-h`. Usage (cli): @@ -32,26 +33,48 @@ Usage (module): Schema: { - "pidstat": string, + "time": integer, + "uid": integer, + "pid": integer, + "percent_usr": float, + "percent_system": float, + "percent_guest": float, + "percent_cpu": float, + "cpu": integer, + "minflt_s": float, + "majflt_s": float, + "vsz": integer, + "rss": integer, + "percent_mem": float, + "stksize": integer, + "stkref": integer, + "kb_rd_s": float, + "kb_wr_s": float, + "kb_ccwr_s": float, + "cswch_s": float, + "nvcswch_s": float, + "command": string, - # Below object only exists if using -qq or ignore_exceptions=True - - "_jc_meta": - { - "success": boolean, # false if error parsing - "error": string, # exists if "success" is false - "line": string # exists if "success" is false - } + # below object only exists if using -qq or ignore_exceptions=True + "_jc_meta": { + "success": boolean, # false if error parsing + "error": string, # exists if "success" is false + "line": string # exists if "success" is false + } } Examples: - $ pidstat | jc --pidstat-s - {example output} + $ pidstat -hl | jc --pidstat-s + {"time":1646859134,"uid":0,"pid":1,"percent_usr":0.0,"percent_system...} + {"time":1646859134,"uid":0,"pid":6,"percent_usr":0.0,"percent_system...} + {"time":1646859134,"uid":0,"pid":9,"percent_usr":0.0,"percent_system...} ... - $ pidstat | jc --pidstat-s -r - {example output} + $ pidstat -hl | jc --pidstat-s -r + {"time":"1646859134","uid":"0","pid":"1","percent_usr":"0.00","perc...} + {"time":"1646859134","uid":"0","pid":"6","percent_usr":"0.00","perc...} + {"time":"1646859134","uid":"0","pid":"9","percent_usr":"0.00","perc...} ... diff --git a/docs/parsers/ping_s.md b/docs/parsers/ping_s.md index f678bbca..a9ed227d 100644 --- a/docs/parsers/ping_s.md +++ b/docs/parsers/ping_s.md @@ -61,14 +61,12 @@ Schema: "round_trip_ms_max": float, "round_trip_ms_stddev": float, - # Below object only exists if using -qq or ignore_exceptions=True - - "_jc_meta": - { - "success": boolean, # false if error parsing - "error": string, # exists if "success" is false - "line": string # exists if "success" is false - } + # below object only exists if using -qq or ignore_exceptions=True + "_jc_meta": { + "success": boolean, # false if error parsing + "error": string, # exists if "success" is false + "line": string # exists if "success" is false + } } [0] 'reply', 'timeout', 'summary', etc. See `_error_type.type_map` diff --git a/docs/parsers/rsync_s.md b/docs/parsers/rsync_s.md index b3e41c30..7c8252e7 100644 --- a/docs/parsers/rsync_s.md +++ b/docs/parsers/rsync_s.md @@ -68,14 +68,12 @@ Schema: "extended_attribute_different": bool/null, "epoch": integer, [2] - # Below object only exists if using -qq or ignore_exceptions=True - - "_jc_meta": - { - "success": boolean, # false if error parsing - "error": string, # exists if "success" is false - "line": string # exists if "success" is false - } + # below object only exists if using -qq or ignore_exceptions=True + "_jc_meta": { + "success": boolean, # false if error parsing + "error": string, # exists if "success" is false + "line": string # exists if "success" is false + } } [0] 'file sent', 'file received', 'local change or creation', diff --git a/docs/parsers/stat_s.md b/docs/parsers/stat_s.md index 0813541f..0cb079b8 100644 --- a/docs/parsers/stat_s.md +++ b/docs/parsers/stat_s.md @@ -68,14 +68,12 @@ Schema: "block_size": integer, "unix_flags": string, - # Below object only exists if using -qq or ignore_exceptions=True - - "_jc_meta": - { - "success": boolean, # false if error parsing - "error": string, # exists if "success" is false - "line": string # exists if "success" is false - } + # below object only exists if using -qq or ignore_exceptions=True + "_jc_meta": { + "success": boolean, # false if error parsing + "error": string, # exists if "success" is false + "line": string # exists if "success" is false + } } Examples: diff --git a/docs/parsers/vmstat_s.md b/docs/parsers/vmstat_s.md index c2d35e39..2a148ce0 100644 --- a/docs/parsers/vmstat_s.md +++ b/docs/parsers/vmstat_s.md @@ -80,14 +80,12 @@ Schema: "epoch": integer, # [0] "epoch_utc": integer # [1] - # Below object only exists if using -qq or ignore_exceptions=True - - "_jc_meta": - { - "success": boolean, # [2] - "error": string, # [3] - "line": string # [3] - } + # below object only exists if using -qq or ignore_exceptions=True + "_jc_meta": { + "success": boolean, # [2] + "error": string, # [3] + "line": string # [3] + } } [0] naive timestamp if -t flag is used diff --git a/jc/parsers/csv_s.py b/jc/parsers/csv_s.py index 86108659..16d0cf66 100644 --- a/jc/parsers/csv_s.py +++ b/jc/parsers/csv_s.py @@ -39,13 +39,11 @@ Schema: "column_name2": string, # below object only exists if using -qq or ignore_exceptions=True - - "_jc_meta": - { - "success": boolean, # false if error parsing - "error": string, # exists if "success" is false - "line": string # exists if "success" is false - } + "_jc_meta": { + "success": boolean, # false if error parsing + "error": string, # exists if "success" is false + "line": string # exists if "success" is false + } } Examples: diff --git a/jc/parsers/foo_s.py b/jc/parsers/foo_s.py index 1113202d..0215e1f2 100644 --- a/jc/parsers/foo_s.py +++ b/jc/parsers/foo_s.py @@ -29,14 +29,12 @@ Schema: { "foo": string, - # Below object only exists if using -qq or ignore_exceptions=True - - "_jc_meta": - { - "success": boolean, # false if error parsing - "error": string, # exists if "success" is false - "line": string # exists if "success" is false - } + # below object only exists if using -qq or ignore_exceptions=True + "_jc_meta": { + "success": boolean, # false if error parsing + "error": string, # exists if "success" is false + "line": string # exists if "success" is false + } } Examples: diff --git a/jc/parsers/iostat_s.py b/jc/parsers/iostat_s.py index 980e7908..6c52ea08 100644 --- a/jc/parsers/iostat_s.py +++ b/jc/parsers/iostat_s.py @@ -78,14 +78,12 @@ Schema: "percent_rrqm": float, "percent_wrqm": float, - # Below object only exists if using -qq or ignore_exceptions=True - - "_jc_meta": - { - "success": boolean, # false if error parsing - "error": string, # exists if "success" is false - "line": string # exists if "success" is false - } + # below object only exists if using -qq or ignore_exceptions=True + "_jc_meta": { + "success": boolean, # false if error parsing + "error": string, # exists if "success" is false + "line": string # exists if "success" is false + } } Examples: diff --git a/jc/parsers/ls_s.py b/jc/parsers/ls_s.py index f59c1bd6..149ad683 100644 --- a/jc/parsers/ls_s.py +++ b/jc/parsers/ls_s.py @@ -49,14 +49,12 @@ Schema: "epoch": integer, # [0] "epoch_utc": integer, # [1] - # Below object only exists if using -qq or ignore_exceptions=True - - "_jc_meta": - { - "success": boolean, # false if error parsing - "error": string, # exists if "success" is false - "line": string # exists if "success" is false - } + # below object only exists if using -qq or ignore_exceptions=True + "_jc_meta": { + "success": boolean, # false if error parsing + "error": string, # exists if "success" is false + "line": string # exists if "success" is false + } } [0] naive timestamp if date field exists and can be converted. diff --git a/jc/parsers/pidstat_s.py b/jc/parsers/pidstat_s.py index 281f82aa..8cbd6470 100644 --- a/jc/parsers/pidstat_s.py +++ b/jc/parsers/pidstat_s.py @@ -2,7 +2,8 @@ > This streaming parser outputs JSON Lines -<> +Must use the `-h` option in `pidstat`. All other `pidstat` options are +supported in combination with `-h`. Usage (cli): @@ -27,26 +28,48 @@ Usage (module): Schema: { - "pidstat": string, + "time": integer, + "uid": integer, + "pid": integer, + "percent_usr": float, + "percent_system": float, + "percent_guest": float, + "percent_cpu": float, + "cpu": integer, + "minflt_s": float, + "majflt_s": float, + "vsz": integer, + "rss": integer, + "percent_mem": float, + "stksize": integer, + "stkref": integer, + "kb_rd_s": float, + "kb_wr_s": float, + "kb_ccwr_s": float, + "cswch_s": float, + "nvcswch_s": float, + "command": string, - # Below object only exists if using -qq or ignore_exceptions=True - - "_jc_meta": - { - "success": boolean, # false if error parsing - "error": string, # exists if "success" is false - "line": string # exists if "success" is false - } + # below object only exists if using -qq or ignore_exceptions=True + "_jc_meta": { + "success": boolean, # false if error parsing + "error": string, # exists if "success" is false + "line": string # exists if "success" is false + } } Examples: - $ pidstat | jc --pidstat-s - {example output} + $ pidstat -hl | jc --pidstat-s + {"time":1646859134,"uid":0,"pid":1,"percent_usr":0.0,"percent_system...} + {"time":1646859134,"uid":0,"pid":6,"percent_usr":0.0,"percent_system...} + {"time":1646859134,"uid":0,"pid":9,"percent_usr":0.0,"percent_system...} ... - $ pidstat | jc --pidstat-s -r - {example output} + $ pidstat -hl | jc --pidstat-s -r + {"time":"1646859134","uid":"0","pid":"1","percent_usr":"0.00","perc...} + {"time":"1646859134","uid":"0","pid":"6","percent_usr":"0.00","perc...} + {"time":"1646859134","uid":"0","pid":"9","percent_usr":"0.00","perc...} ... """ from typing import Dict, Iterable, Union diff --git a/jc/parsers/ping_s.py b/jc/parsers/ping_s.py index 34ce7369..1c74cea2 100644 --- a/jc/parsers/ping_s.py +++ b/jc/parsers/ping_s.py @@ -56,14 +56,12 @@ Schema: "round_trip_ms_max": float, "round_trip_ms_stddev": float, - # Below object only exists if using -qq or ignore_exceptions=True - - "_jc_meta": - { - "success": boolean, # false if error parsing - "error": string, # exists if "success" is false - "line": string # exists if "success" is false - } + # below object only exists if using -qq or ignore_exceptions=True + "_jc_meta": { + "success": boolean, # false if error parsing + "error": string, # exists if "success" is false + "line": string # exists if "success" is false + } } [0] 'reply', 'timeout', 'summary', etc. See `_error_type.type_map` diff --git a/jc/parsers/rsync_s.py b/jc/parsers/rsync_s.py index 94b874e3..c55cab4a 100644 --- a/jc/parsers/rsync_s.py +++ b/jc/parsers/rsync_s.py @@ -63,14 +63,12 @@ Schema: "extended_attribute_different": bool/null, "epoch": integer, [2] - # Below object only exists if using -qq or ignore_exceptions=True - - "_jc_meta": - { - "success": boolean, # false if error parsing - "error": string, # exists if "success" is false - "line": string # exists if "success" is false - } + # below object only exists if using -qq or ignore_exceptions=True + "_jc_meta": { + "success": boolean, # false if error parsing + "error": string, # exists if "success" is false + "line": string # exists if "success" is false + } } [0] 'file sent', 'file received', 'local change or creation', diff --git a/jc/parsers/stat_s.py b/jc/parsers/stat_s.py index 3b302e38..aa790ef2 100644 --- a/jc/parsers/stat_s.py +++ b/jc/parsers/stat_s.py @@ -63,14 +63,12 @@ Schema: "block_size": integer, "unix_flags": string, - # Below object only exists if using -qq or ignore_exceptions=True - - "_jc_meta": - { - "success": boolean, # false if error parsing - "error": string, # exists if "success" is false - "line": string # exists if "success" is false - } + # below object only exists if using -qq or ignore_exceptions=True + "_jc_meta": { + "success": boolean, # false if error parsing + "error": string, # exists if "success" is false + "line": string # exists if "success" is false + } } Examples: diff --git a/jc/parsers/vmstat_s.py b/jc/parsers/vmstat_s.py index 5e2899ea..75e480d8 100644 --- a/jc/parsers/vmstat_s.py +++ b/jc/parsers/vmstat_s.py @@ -75,14 +75,12 @@ Schema: "epoch": integer, # [0] "epoch_utc": integer # [1] - # Below object only exists if using -qq or ignore_exceptions=True - - "_jc_meta": - { - "success": boolean, # [2] - "error": string, # [3] - "line": string # [3] - } + # below object only exists if using -qq or ignore_exceptions=True + "_jc_meta": { + "success": boolean, # [2] + "error": string, # [3] + "line": string # [3] + } } [0] naive timestamp if -t flag is used