Ohaiの出力結果をfluent-catに食わせたい
ohai
コマンドの実行結果は人が見やすいprettifyされたjsonなので、そのままfluent-cat
にパイプで渡すとparseエラーになる。(恐らくここで一行ずつ読み込んでparseしているから)
$ ohai | fluent-cat ohai.hostA parse error: unallowed token at this point in JSON text "languages": { (right here) ------^
じゃあminifyしてあげればいいはずと思ったものの、ohaiにそんなオプションないし、一発で変換してくれそうなものはtd-agentのパッケージに入っていなかったので、一度ハッシュにしてjsonに変換し直すというかなり無駄な方法で対応した。
$ ohai | ruby -r json -e 'puts JSON.parse(STDIN.read).to_json' | fluent-cat ohai.hostA
よくよく考えると1行にすればいいんだから、空白は無視して改行だけ消せばいいんじゃ?と思って試したらいけた。
$ ohai | tr -d '\n' | fluent-cat ohai.hostA
めでたしめでたし。