1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Instanaで実現するSREのベストプラクティス 第3章 可観測性の実現

Posted at

執筆者:小畑 啓、監修:山﨑政憲

3.1 ログ、メトリクス、トレースの基本

ログとは?

ログは、システムやアプリケーションが出力する記録情報です。開発者や運用・保守担当者はトラブルシューティングや実行の検証の際にログを重要な情報源として利用します。

Instanaは、ログ管理ツール(Elasticsearch、Splunkなど)と統合することで、ログデータをダッシュボードに表示できます。主なログは下記の通りです。

・アプリケーションログ:アプリケーション内部で発生したイベント
・システムログ:OSやミドルウェアの動作記録
・セキュリティログ:認証やアクセス制御の記録

メトリクスとは?

メトリクスは、定期的にグループ化された測定値の集合で、特定の期間にわたるデータの集計を表します。Instanaは、アプリケーション・サービス・インフラの各層から、膨大なメトリクスを自動で取得し、それらを関連付けてグラフ化・ダッシュボード化することが可能です。主なメトリクスは下記の通りです。

・ホストメトリクス:CPU使用率、メモリ消費量、ディスクI/O、ネットワークトラフィック
・アプリケーションメトリクス:レスポンスタイム、リクエスト数、エラー率
・データベースメトリクス:クエリ実行時間、接続数、スロークエリ

トレースとは?

トレースは、アプリケーション内やマイクロサービス間を流れるリクエストの経路を記録したデータです。ログのようにそれぞれのマイクロサービスやコンポーネントから不規則に発生します。トランザクション単位で分析できるため、パフォーマンスのボトルネックや障害の発生箇所を特定できます。Instanaは、エージェントをインストールするだけで自動的に分散トレーシングを有効化します。

ログ、メトリクス、トレースの違い

ログ、メトリクス、トレースの違いをまとめると下表のようになります。

種類 目的 取得タイミング 代表的なデータ Instanaでの活用方法
ログ システムやアプリのイベント履歴 イベント発生時 エラーログ、アクセスログ ElasticsearchやSplunkと連携して分析
メトリクス システムのパフォーマンス測定 一定の間隔で収集 CPU使用率、レスポンスタイム ダッシュボードで可視化、アラートの設定
トレース リクエストの処理経路の可視化 リクエストごとに記録 APIの応答時間、サービス間の通信 分散トレーシング機能でボトルネックを分析

3.2 Instanaを活用したトレーシングの仕組み

Instanaの分散トレーシングの仕組み

トレーシングとは、アプリケーションやサービスを流れるリクエストの経路を記録し、パフォーマンスやエラーの分析を行う技術です。
Instanaは分散トレーシングを自動で実装し、アプリケーション間のリクエストフローをリアルタイムで可視化します。
マイクロサービス環境では、1つのリクエストが複数のサービスを経由して処理されます。分散トレーシングを活用すると、システム内で発生する遅延や障害の根本原因を迅速に特定できます。

Instanaでのトレースの確認方法

Instanaでトレースを確認するには、下記の手順で行います。
詳細については、トレースの概念を参考にしてください。

① Instanaにログインし、メニュー画面から「Analytics」を選択します。
② トレース情報が時系列にて表示され、条件を指定するとリクエスト毎にパフォーマンスを調査できます。HTTPステータスやタグで絞り込み検索も可能なので、リアルタイムでの障害解析とパフォーマンス改善が効率的に行えます。

下図ではrobot-shopに関するトレースがリスト化されております。
robot shopは、Webショップを模したサンプルのアプリケーションです。

b301c18e-801a-4f3e-8323-5f1471e51217.png

各コールを選択すると、画面の右側に詳細情報が表示されます。(下図参照)
詳細情報を参考にして、異常発生個所の特定までに要する時間の短縮、パフォーマンスの改善に役立てることができます。

686b3a59-aaa9-4664-849f-01603bf2ffeb.png

トレースの活用例

Instanaでは、トレースを使ってAPIのレスポンス遅延やHTTPエラーの発生箇所を特定し、DBクエリや接続プール設定の見直しなど具体的な対策が可能です。

AIによる異常検知機能により、レスポンスタイムのスパイクや例外の発生を自動で検知できます。検知された異常は、SlackやPagerDutyを通じて即座に通知されます。
これにより、パフォーマンス問題や障害の早期対応が実現できます。

3.3 可観測性のベストプラクティス

可観測性とは?

可観測性(オブザーバビリティ)とは、複雑化する環境においても、起きていることを把握するだけでなく、なぜ起きたかの原因まで把握できる能力を指します。モニタリングとの違いは、単にメトリクスを収集するのではなく、システムの内部構造や動作を分析し、根本の原因を特定できることです。

可観測性は、システムの状態を表すテレメトリデータ(メトリクス、ログ、トレース)によって構成されます。
テレメトリデータを理解することは可観測性を理解するうえで非常に重要です。

可観測性のベストプラクティス

可観測性のベストプラクティスは、システムの内部状態を外部から正確に把握するための仕組みと運用が重要になります。具体的には下記のベストプラクティスを実践しましょう。

① 分散トレーシングの活用: 遅延発生箇所や障害の発生元を特定
② AIによる異常検知とアラート:閾値を設定し、異常時に自動で通知可能
③ テレメトリデータの統合分析:テレメトリデータを統合し、すべての情報を関連付けて分析

Instanaを活用すれば、可観測性のベストプラクティスを実現することができます。

可観測性の導入ステップ

Instanaを使った可観測性の導入は、以下の4つのステップで進められます。

① 監視の基本設定
Instanaエージェントをインストールし、アプリケーションの自動監視を有効にして基本的なメトリクスを収集します。

② 分散トレーシングを確認
分散トレーシングが有効化されていることを確認します。

③ アラートと異常検知の設定
閾値に基づいたアラートやAIによる異常検知を設定し、障害発生時の即時対応が可能です。

④ テレメトリデータを統合し、ダッシュボードを最適化
ログ・メトリクス・トレースを統合し、カスタムダッシュボードで可視化を最適化することで、チーム全体での可観測性を高められます。

3.4 ダイナミックベースラインとアラートの活用法

ダイナミックベースラインとは?

ダイナミックベースラインは、Instanaがシステムの通常動作を学習し、閾値を自動で設定する機能です。固定の閾値では対応が難しいスパイクや時間帯ごとの変動にも適応でき、誤検知を減らします。

特にオートスケーリング環境や利用パターンが変化するアプリに有効です。また、異常が発生したときのみアラートを発報するため、運用負荷も軽減できます。
従来のアラートとダイナミックベースラインの違いは下表の通りです。

機能 従来のアラート ダイナミックベースライン
特徴 初心者には使いづらい システムの負荷変動に適応できる
閾値設定 適切な閾値の設定が難しい 自動で調整される
通知 あまり意味のない通知も多く、確認に時間がかかる 通常の動作を学習し、不要なアラートを削減する

アラートの種類

Instanaのアラートは、大きく下表の3つのカテゴリに分かれます。
用途に応じて使い分けるようにしましょう。

Instanaでは、障害の通知先をアラートチャネルとして設定します。Eメール、チャット(Slack、Google Chatなど)、他の監視システムへWebhookによる通知などが可能です。また、システム別や障害の種類別に通知先を分けることも可能です。

アラートの種類 説明
静的閾値アラート 手動で設定した固定の閾値を超えた場合のみアラートを発報
ダイナミックベースラインアラート AIが学習した正常値から逸脱した場合にアラートを発報
イベントアラート 閾値ではなくイベントをトリガーにしてアラートを発報

スマートアラートについて

アラートには様々な種類がありますが、スマートアラートを適用する方法もあります。
スマートアラートは、AIや機械学習を活用しているため不要な通知を減らします。
スマートアラートを使うことによるメリットは、以下の通りです。

・システムの仕様を把握していない状況でも解析可能
・Webシステムのサービス品質の異常を検出
・複雑な設定が不要で手軽に使える

スマートアラートを設定するときは、静的閾値(Static)と適応閾値(Adaptive)のどちらかを選択できます。(下図参照)

0d1a16d0-1992-4858-8d22-3d3e39d2b02f.png

・静的閾値(Static)
スマートアラートが作成された後に変更されることはありません。基準となるメトリクスが大幅に変更されると、閾値として機能しない可能性があります。

・適応閾値(Adaptive)
Instanaによって監視される新しいデータによって継続的に進化し、調整されます。つまり、閾値が人手を介することなく、基準となるメトリクスに対する周期的な変化を継続的に考慮します。

すぐに監視を行いたい場合は、適応閾値を選択します。慣れてきたら静的閾値の設定を変更して、監視を行ってみましょう。

スマートアラートの詳細については、下記も参考にしてください。
スマート・アラート
InstanaのSmart Alert(スマート・アラート)で楽ちん監視開始

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?