skillup

技術ブログ

プログラミング全般 プロジェクト管理

ログ対策(どのように情報を抽出するか)

投稿日:

現在、現場でテストをやってるんですが、やることは昔と変わらずテストデータ作り、ログ、エラーハンドリングになります。

3年近くまえに↓のような記事をかいてました。

ログの設計指針について

テストデータ(再現手法)、ログ、エラーハンドリングが大事って書いてあるんですが、やっぱり変わってないですねー。

ただ本質的なことは変わっていないのですが、ログの抽出方法については直近で大規模な現場を経験したこともあり、結構変わってきました。

色々経験したので、メリデメをまとめておこうと思います。

ログをどのように抽出するか?

生ログ

比較的小規模〜中規模だったり、レガシーな現場ではいまだに生ログを出力しているというプロジェクトが多いのではないでしょうか。

ただそのまま出しているだけあっていろいろなカスタマイズが可能だったりします。

メリット

  • 後述するような設計スキルやエラーレポーティングサービスへの知見が特にいらない
  • 全ての情報を自由自在に出力することができる

デメリット

  • レベルにもよるが、膨大なサイズになり、ログの検索が大変
  • 上記のサイズ制限などにより、保存や管理がしにくい
  • レベル分けや入れる情報を精査しないと検索ができない(ログの設計能力がいる)

ログサービス(cloudwatch、application Insightsなど)

生ログをそのまま出す現場はへってきており、中規模以上の現場ではAWSやAzureでシステムを構築している現場が多いと思いますので、これらに付随するログサービスを使っている現場が多いかと思います。

メリット

  • さまざまな検索クエリなどをつかうことができ、生ログよりも目的の情報を探しやすい
  • 実ログを吐き出しているだけなので、カスタマイズがしやすい

デメリット

  • サービスの学習コスト、慣れや検索クエリを覚える手間が若干必要
  • 生ログをはいているだけなので、ログ設計指針をしっかりしておかないと検索が大変

レポーティングサービス(Sentryなど)

一般的にログを見なくてはいけないケースは圧倒的にエラーの場合だと思います。その場合、エラーが発生した時のみ、アラートをあげてレポートなどが送られてくる仕組みが便利で、そのためにSentryなどのレポーティングサービスがあると便利でしょう。

現在の現場ではSentryが上がったら、Slackにながれるようになっています。

メリット

  • エラーの場合のみ、レポートが送られてくるので、ログよりは見る情報が必然的に少なくて済む
  • 情報が細かくカテゴライズされており、検索や抽出が容易

デメリット

  • エラーが吐かれない異常の場合、動きを追えない
  • 構築の段階でどのエラーハンドリングをもれなくサービスに連携させる設計が必要
  • 全ての情報が見れるわけではないので、ある程度推測が必要な部分がでてくる

個人的にはレポーティングサービスでエラーを追いつつ、もしものために通常ログをみれるようにcloudwatchを使うなどの2段構えでログ対策を取るのがいいと思います。

-プログラミング全般, プロジェクト管理
-,

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

Encypter、Decrypeterについて

独自の鍵を使ってencrypt,decrptメソッドを実装したので、メモを。 Contents1 参考ソース2 encrypt,decrptの内部について3 base64エンコーディングについて 参考 …

no image

Simple Factoryパターンについて

今回はデザインパターンの一種であるSimple Factoryパターンに関して。 Contents1 Simple Factoryパターンとは2 サンプルコード3 解説 Simple Factoryパ …

no image

障害報告などでの伝える情報の視点

障害の重要度(後続タスクにブロックがあるかいなか)、調査原因(仕様不理解、設計考慮もれ、ケアレスミス)、影響度(画面単位などで) 障害が起こっているデータ(あるいはスクショなどで伝えられるか) 再現プ …

no image

JavaScriptライブラリ sugar

去年、JavaScriptの仕事をがりがりやった時にお世話になったライブラリsugar。 JavaScriptのライブラリというとunderscore.jsが有名ですが、こいつも結構使えるライブラリで …

no image

SytleCopについて

前回、StyleCopについて紹介しましたが、C#の静的解析ツールであるStyleCopのインストールや基本的な使用法に関して。 NugetのインストールでStyleCop,StyleAnalyzer …

アーカイブ