おそらくはそれさえも平凡な日々

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をぜひご利用ください。

created at
last modified at

2019-02-19T16:53:38+0900

comments powered by Disqus