horenso v0.9.0でより便利になりました
https://github.com/Songmu/horenso
v0.9.0なので、version 1を出す前のRC的な気持ちでいます。アップデートは以下のとおりです。
- 設定ファイル(yaml形式)サポート(
$HORENSO_CONFIG
) - ログファイル指定オプション(--log/-l)
- verboseログを出せるように(--verbose/-v/-vv)
- タイムスタンプのフォーマット変更
type Report struct
の型情報の非互換修正
設定ファイル(yaml形式)サポート
設定ファイルは環境変数 $HORENSO_CONFIG
にファイルパスを指定します。設定項目は大体コマンドラインオプションに対応していて以下のような具合です。
noticer: /path/to/basic-noticer
reporter:
- /path/to/basic-reporter
こういうのを保存しておいて、crontabに以下のように記述します。
HORENSO_CONFIG=/path/to/horenso.yaml
11 * * * * horenso -- /path/to/your-batch1 ...
23 2 * * * horenso -t daily -- /path/to/your-batch2 ...
23 2 1 * * horenso -t monthly -r 'additional-reporter' -- /path/to/your-batch3 ...
従来は、README.mdに書いてある通り、ラップするシェルスクリプトを書くのが一つのパターンでしたが、この設定ファイルの場合もっと見通しがよくなります。
またジョブによっては追加のレポーターを指定したいなどもあると思いますが、それに関して個別に追加することも可能です。上の additional-reporter
と指定してある様な形です。個別指定した場合であっても、設定ファイルに記載のnoticer及びreporterは動作します。
このあたりドキュメントまだなのでversion 1までには書きます…。
ログファイル指定オプション(--log/-l)
ログをファイルに出力することが可能になりました。--log=%Y%m%d.log
となど指定します。strftimeフォーマットが利用可能なのもポイントです。
verboseログを出せるように(--verbose/-v/-vv)
horensoは主体であるバッチコマンドの動作を妨げないように、標準出力や標準エラー出力にはそのバッチコマンド自体の出力のみ流し、horenso自体のログは一切出さない様になっています。
しかしそれでは、reporterやnoticerの動作確認時に困るという声もあり、それは分かるということで、--vebose
オプションを追加しました。--verbose
は重ねることができます。
-v
でなにかエラーが発生したときのみ表示-vv
でレポーターの動作など含めて正常系のログも追加
という挙動となっています。
タイムスタンプのフォーマット変更
horenso
は --timestamp/-T
オプションで出力への自動タイムスタンプ付与が可能ですが、このフォーマットがRFC3339の小数点以下6桁固定長に変更になりました。
この変更にあたって、Songmu/timestamper というライブラリを外に切り出しました。これは便利かつ実装も面白いので後日また別でブログを書こうと思います。
type Report struct
の型情報の非互換修正
horenso
コマンド自体は大きな非互換修正はありませんが、horenso.Reporter
をライブラリ的に自前のreporterなどで利用している場合はビルドが通らなくなってしまうため、修正をお願いします。Reporter
のフィールドからなるべくポインターを減らす対応をおこないました。
その他、コードの修正や効率化、リファクタリングも何点か実施しました。
より便利になったhorensoをぜひご利用ください。