skillup

技術ブログ

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

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

投稿日:

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

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

ログの設計指針について

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

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

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

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

生ログ

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

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

メリット

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

デメリット

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

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

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

メリット

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

デメリット

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

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

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

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

メリット

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

デメリット

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

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

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

執筆者:


comment

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

関連記事

no image

テストのダミーデータ作成

データベースに大量のデータを作りたいときにいつもあああやhoge,aaaですとデータという感じがしないですし、抽出や集計ができません。 なるべく自然に近いデータが欲しいのですが、簡単に作れる方法があり …

no image

PCクラッシュ時に備えて

先日、ずっとメインで使っていた会社のノートPCがクラッシュし、再起不能になりました。ファイルなんかはクラウドで管理していたものが多かったので実害はあまりなかったんですが、当然ゼロではありませんでした。 …

no image

Encypter、Decrypeterについて

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

no image

クラスメソッドとインスタンスメソッド

以前staticメソッドを定義したときに、記法がインスタンスメソッドの呼び方でも呼べてしまうことがあったので、これを機にインスタンス・クラス×変数・メソッドちょっと調べてみました。 言葉で書くよりコー …

no image

タスク管理・情報管理で必要なこと

いままでもタスク管理などでいろいろかいてきましたが、今のプロジェクトで思っていることなどを箇条書きで。 Contents1 情報のもれ、ダブり2 完了地点の明確化3 ストック型とフロー型の情報のまとめ …

アーカイブ