シナリオ:Aisha がLog Observer Connectでワークフローの障害をトラブルシューティングする 🔗
Buttercup Games, a fictitious company, runs an e-commerce site to sell its products. They analyze logs in Splunk Cloud Platform. They recently refactored their site to use a cloud-native approach with a microservices architecture and Kubernetes for the infrastructure. They purchased Splunk Observability Cloud as their observability solution. Buttercup Games analyzes their Splunk Cloud Platform logs in Log Observer, a point-and-click Splunk Observability Cloud tool, which they set up through Log Observer Connect.
Buttercup Games のサイト信頼性エンジニアとサービスオーナーは、サイトを訪れた人々が素晴らしい体験を得られるよう、共同でサイトの監視と保守を行っています。彼らは Splunk Observability Cloud を使用して、オンラインストアでの購入時に障害や失敗を引き起こす問題を発見し、解決しています。
この1時間で Buttercup Games サイトの購入件数が大幅に減少し、チェックアウト完了率が低すぎます。SRE の Aisha とサービスオーナーの Deepu は、Splunk Observability Cloud の Splunk Log Observer とその他のビューを使って以下のタスクを実行し、購入ワークフローに関する問題の根本原因を特定してトラブルシューティングを行いました:
どのログが重要かを判断する 🔗
Aisha は Splunk Application Performance Monitoring (APM) でサービスマップを開きます。チェックアウト完了率が低い理由を調べるために、サービスマップ上の /cart/checkout ビジネスワークフローを選択します。サービスマップには、 /cart/checkout ワークフローをバックアップするサービス一式間の依存関係相互作用が表示されます。
Aisha は、 paymentservice 、ワークフローのエクスペリエンスを低下させる原因となっているダウンストリームエラーが最も多いことを確認しました。Splunk APM はこの問題を根本原因エラーとして特定します。Aisha は paymentservice を選択します。Splunk Observability Cloud はサービスのエラーとレイテンシーの詳細を表示します。
Splunk Observability Cloud は、アプリケーションの他の領域の関連データへのアクセスを提供する[関連コンテンツ]タイルも表示します。例えば、Aisha は paymentservice が稼働している Kubernetes クラスタの健全性を調べたり、 paymentservice が発行しているログを調べたりできます。
Aisha はログの詳細を見ることにしました。彼らは関連コンテンツタイル、paymentserviceのログ を選択します。Log Observer が開き、Aisha のビューは自動的に絞り込まれ、 paymentservice のログのみが表示されます。Log Observer は、Splunk Cloud Platform に送信された paymentservice のログを表示します。Log Observer はログを取り込まず、Splunk Cloud Platform のストレージからログを表示します。
Aisha は最初に Splunk APM でワークフローの問題を追跡したため、paymentservice からのログだけに絞り込んで検索することができました。これで Aisha は Log Observer を使ってログを分析できるようになりました。
ログの初期分析を実施する 🔗
Aisha は、Log Observer のポイントアンドクリック UI で paymentservice のログをクエリし、ログをフィルタリングして集約することで、根本的な問題を掘り下げることができます。SPL クエリ言語を使用したより複雑な分析については、Splunk Cloud Platform Search & Reporting アプリケーションで paymentservice ログの分析を続けることができます。
ログテーブルの受信ログを見て、Aisha はいくつかのエラーログを見つけたので、構造化されたビューで詳細を見るために1つを選択します。右側のログ詳細ビューで、Aisha はエラーメッセージに気づきます: Failed payment processing through ButtercupPayments: Invalid API Token (test-20e26e90-356b-432e-a2c6-956fc03f5609)
.
Aisha は、他のログにも同じエラーメッセージがあるかどうかを確認することにしました。もしパターンが見つかれば、何がトラブルを引き起こしているのかを突き止めることができます。
ログパターンを検索する 🔗
Aisha は、他のログにも同じエラーメッセージがあるかどうかを確認するために、他のログをいくつか開きます。Aisha が開いたログのいくつかには同じエラーメッセージがあります: Failed payment processing through ButtercupPayments: Invalid API Token (test-20e26e90-356b-432e-a2c6-956fc03f5609)
。
Aisha は、無効なAPIトークンがすべて「テスト」で始まっていることに気づきました。Aisha は、あるチームが現在のバージョンv350.10を、本番環境では動作しないテストトークンを使ってプッシュしたのだろうと推測しています。
この仮説をチェックするために、Kaiはこのエラーメッセージを選択し、このエラーメッセージを含むログのみを表示するため、フィルターに追加する を選択します。
仮説を絞り込む 🔗
次に、AishaはテストAPIトークンを含むログのグループが複数のバージョンにあるかどうかを確認するために、ログをバージョン別にグループ化したいと思います。彼らは Group by フィールドを バージョン に変更します。
これでAisha は、テストAPIトークンを含むすべてのログがバージョンv350.10であることを確認できます。
Aisha は、最新バージョンであるv350.1のみで、エラーメッセージ Failed payment processing through ButtercupPayments: Invalid API Token (test-20e26e90-356b-432e-a2c6-956fc03f5609)
を含むログに問題を隔離できたと確信しています。今、彼らは自分たちの仮説を検証しようとしています。
仮説を検証する 🔗
念のため、Aisha はメッセージフィルター値の目のアイコンを選択し、一時的にフィルターを除外します。これでバージョンv350.9のログも表示されるようになりましたが、エラーメッセージは含まれていません。Aisha は今、テストトークンのエラーメッセージを含むすべてのログと、エラーメッセージを含まないログを、バージョンv350.10に関連付けることができます。
根本原因を特定し、改善する 🔗
Log Observer で調査した結果、Aisha はv350.10のテストAPIトークンが支払い完了に失敗する最も可能性の高い原因であると確信しました。Aisha はButtercup Gamesのコードを問題のあるv350.10からv350.9にロールバックします。
Aishaはテストトークンである無効なAPIトークンについてDeepuに通知します。Deepuはテストトークンを本番で動作するトークンに置き換えます。
概要 🔗
Buttercup Games の e-コマースサイトでチェックアウト完了率が遅くなり、購入件数が減少し始めたとき、サイトの信頼性エンジニアのAisha は Splunk APM サービスマップの /cart/checkout ビジネスワークフローに注目しました。彼らは APM が paymentservice をエラーの根本原因として特定しているのを見ました。Aisha は、APM から関連コンテンツバーを通じて関連ログにリンクすることで、ログの詳細を調べることにしました。
Log Observer でAisha は、paymentservice から送られてくるいくつかのログに同じエラーがあることに気づきました。共通のエラーメッセージは、APIトークンが 「テスト」で始まっていることを示していました。彼らはテストトークンが問題だと考えました。ログのフィルタリングと集計によって、他の可能性のある問題を除外しました。彼らは疑わしいテストトークンのエラーメッセージをv350.10のログのみと関連付けました。
paymentservice のオーナーであるDeepuに相談したところ、テストAPIトークンが問題の原因である可能性が高いということで意見が一致しました。v350.9のログにはテストトークンのエラーメッセージが含まれていなかったので、Aisha はコードを以前のバージョンにロールバックしました。その後、Deepuはテストトークンを本番環境で動作するトークンに置き換えました。
修正後、ユーザーはチェックアウトを完了し、Buttercup Gamesのeコマースサイトから購入することができました。今後同様の問題が発生しないよう、Aisha はトークンに「テスト」が含まれている場合にチームに警告を発するディテクターを作成することにしました。このアラートとディテクターは、顧客が購入しようとして失敗する前に、Aisha とディープのチームに通知します。
さらに詳しく 🔗
ビジネスワークフローの詳細については、トレースを関連付けてビジネスワークフローを追跡する を参照してください。
関連コンテンツの使用方法については、Splunk Observability Cloudの関連コンテンツ を参照してください。
Log Observer クエリの詳細については、Query logs in Log Observer Connect を参照してください。
ログの集約の詳細については、ログ集計を使用してフィールドごとにログをグループ化する を参照してください。
アラートとディテクターの詳細については、アラートをトリガーするディテクターを作成する を参照してください。