APIオブザーバビリティ

APIオブザーバビリティを活用すれば、APIのパフォーマンスを監視し、問題を効率的に解決し、利用傾向を把握して改善のヒントを得ることができます。APIの可視化がチームにどのような価値をもたらすのか、詳しく見ていきましょう。

Postmanの探索的テストに関する図解。イラスト。

APIオブザーバビリティとは?

APIオブザーバビリティとは、APIが発するシグナルを通じてその内部状態をどの程度理解できるかを示すものです。

APIを観測可能にするには、イベントリスナーやエージェント、ライブラリなどによって計装する必要があります。これにより、チームはAPIのメトリクス、イベント、ログ、トレースを受動的に収集できるようになります。収集されたテレメトリデータは、問題発生時に通知を送るアラートの作成に活用できるほか、視覚化してAPMツールに転送し、さらなる分析に役立てることも可能です。このように、APIオブザーバビリティは、チームがAPIのパフォーマンスを継続的に監視し、問題を特定・解決し、利用状況を把握しながら最適化の機会を見出すために、極めて重要な役割を果たします。

ここでは、APIオブザーバビリティがAPIファースト開発モデルをどのように支えるのかを解説し、APIオブザーバビリティとAPI監視との関係についても明確にします。続いて、APIオブザーバビリティを構成する4つの柱を取り上げ、テレメトリデータの代表的なユースケースを見ていきます。最後に、ポートフォリオ内のすべてのAPIのオブザーバビリティ向上に役立つ、Postman APIプラットフォームの主な機能をご紹介します。

APIファースト時代におけるAPIオブザーバビリティの重要性とは?

現在、多くのチームは、内部および外部サービスをAPI経由で提供し、それらを組み合わせてアプリケーションを設計・構築しています。このような「APIファースト」アプローチの広まりにより、APIを介して相互に通信する、独立して管理されるマイクロサービスが広く普及しています。マイクロサービスベースのアーキテクチャは高いスケーラビリティを実現できますが、その分散的な構造により、全体の挙動を把握するのは困難です。たとえば、あるマイクロサービスに対する一見小さな変更が、それと連携する別のサービスに深刻な影響を与えることがあります。しかし、システム全体が可視化されていなければ、こうした問題の特定や解決は非常に難しくなります。

APIファーストアプローチは、マイクロサービスベースのアーキテクチャの実装を支援するだけでなく、サードパーティ向けに提供される課金型APIの増加にもつながっています。このようなモデルでは、APIの提供者は可用性、パフォーマンス、セキュリティに関するサービスレベル契約(SLA)を遵守する責任を負っています。一度問題が発生すれば、顧客の信頼を損ない、解約(チャーン)につながるおそれもあります。

APIオブザーバビリティは、プライベート、パートナー、パブリックを問わず、すべてのAPIが最大限の価値を発揮しているかどうかを評価するための情報をチームに提供します。これにより、マイクロサービス間の本番環境における可視性のギャップを埋めることができます。さらに、APIのパフォーマンスや利用状況の傾向を、収益や利用拡大率といったビジネス上の重要指標と関連付けることで、ビジネス戦略と技術戦略の整合性を保ちやすくなります。


APIオブザーバビリティとモニタリングの違いとは?

APIオブザーバビリティとAPIモニタリングは密接に関連する概念ですが、同じものではありません。APIモニタリングは、APIが特定の期待どおりに動作しているかどうかを確認するために、あらかじめ定義されたメトリクスを収集・可視化し、必要に応じてアラートを発信するプロセスです。一方、APIオブザーバビリティはモニタリングをサポートしつつ、さらに柔軟で包括的な役割を担います。コンテキストの豊富なデータへのアクセスを通じて、予期しない問題の原因調査を支援するだけでなく、アドホックな探索的な分析や複雑な相関分析も可能にし、ビジネス上の重要な判断にも貢献します。


APIオブザーバビリティを支える4つの柱とは何ですか?

上記のとおり、オブザーバブルなAPIはテレメトリデータを出力し、開発者やサイト信頼性エンジニア(SRE)、DevOpsエンジニアがその内部状態を把握するための手がかりを提供します。テレメトリデータには、メトリクス、イベント、ログ、トレースという4つの主要なタイプがあり、これらはまとめてAPIオブザーバビリティの「4つの柱」として知られています。それぞれのデータ単体では限界がありますが、これらを組み合わせて分析することで、APIの健全性やパフォーマンス、利用状況をより多角的に理解することができます。

1. メトリクス

メトリクスとは、1分ごとや1時間ごとなど、一定の間隔で取得される値のことを指します。APIの状態を多角的に把握するための重要な指標が数多く存在します。たとえば、スループットやレイテンシなどの「作業メトリクス」は、APIがリクエストをどれだけ効率的に処理できているかを示します。一方、CPU使用率やメモリ使用量といった「リソースメトリクス」は、システムの飽和度を判断する材料になります。これらのメトリクスは、早急な対応が求められる問題を発見する手助けとなるだけでなく、長期的に分析することで最適化の機会を見出すことも可能です。

2. イベント

イベントは、新しいホストの起動、コードのデプロイ、構成変更など、システム内で発生する重要な状態の変化を記録します。それには、何が起きたのか、いつ発生したのか、どのユーザーやサービス、資産が関与していたのかといったコンテキスト情報が含まれます。たとえば、コードデプロイメントのイベントには、タイムスタンプ、実行したユーザーの名前、デプロイ先の環境、マージされたブランチ名などが含まれるのが一般的です。イベントは、APIのレイテンシやエラー率の急な上昇を調査する際に役立ち、問題の原因特定につながるヒントを与えてくれることがあります。

3. ログ

イベントが重要ながら比較的まれに発生するアクティビティを記録するのに対し、ログはシステム内で行われたすべてのアクションの詳細を記録します。ログはイベントよりもはるかに粒度が細かく、1つのイベントに対して多数のログが関連付けられることも珍しくありません。たとえば、コードデプロイメントの過程では、作業ブランチのマージ、ビルドの開始、各CIテストの実行といった各ステップが、それぞれ個別のログとして記録されます。

一般的なAPIログには、リクエストメソッドとURL、タイムスタンプ、HTTPステータスコード、応答時間、呼び出し元のIPアドレスなどが含まれます。これらの情報は、特定のエンドポイントやメソッドの問題をトラブルシューティングする際に役立つほか、不審なアクティビティやセキュリティ攻撃の調査にも活用されます。

4. トレース

トレースは、分散システム内でリクエストが通過した全体の経路を記録するものです。すべてのトレースには、リクエストの各処理ステップを表す1つ以上の「スパン」が含まれています。各スパンには、そのステップにかかった時間やエラーの発生有無など、詳細な情報が記録されます。トレースとスパンは、フレームグラフやサービスマップ上で視覚化されることが多く、トラフィックの流れやサービス間の依存関係をより深く理解する手助けとなります。さらに、全体的なレイテンシのスパイクが発生した際には、原因となったコンポーネントを特定するのにも役立ちます。ログやイベントと組み合わせて分析することで、トラブルシューティングの精度を高めることも可能です。


APIオブザーバビリティはどのようなユースケースをサポートしますか?

多くのチームは、APIのレイテンシやエラー率がサービスレベル目標(SLO)を満たしているかどうかを確認するために、APIのテレメトリデータを活用しています。このようなパフォーマンス監視はもちろん重要ですが、APIオブザーバビリティはそれだけではありません。より高度で複雑な監視や分析にも対応できるのが特長です。たとえば、APIテレメトリデータは、次のようなユースケースに活用できます。

API廃止の計画

APIの廃止は、そのライフサイクルにおける自然なプロセスのひとつですが、利用状況が十分に可視化されていなければ、計画を立てるのは困難です。APIオブザーバビリティにより、チームは1分あたりのリクエスト数や一意の利用者数を把握でき、APIを安全に廃止できるかどうかを判断するための根拠を得ることができます。こうしたデータは、廃止をアナウンスした後にも有効で、実際に利用が想定どおりに減少しているかを確認するのにも役立ちます。

見落とされがちなAPIテストカバレッジの特定

APIテストは、APIのメソッドやエンドポイント、統合処理が期待どおりに動作しているかを確認するために役立ちます。しかし、実際にユーザーがAPIとどのようにやり取りするかを事前に正確に予測するのは難しく、結果として重要なワークフローがテストスイートから漏れてしまうことがあります。APIオブザーバビリティを活用すれば、どのエンドポイントやメソッドが頻繁に使われているか、またどのようなパラメータが使われているかといった洞察を得ることができます。こうした情報をもとに、これまで見落とされていた重要なユーザー操作をカバーするテストを作成し、テストカバレッジを最大化できます。

本番環境でのAPIの挙動をベースラインと比較して異常を検出する

多くのチームでは、APIを本番環境にデプロイする前に、まずステージング環境にデプロイします。ステージング環境は、本番環境をできる限り正確に再現するよう設計されており、APIが本番環境でどのように動作するかを予測し、そのベースラインを設定するために役立ちます。APIが本番環境に移行した後は、実際のパフォーマンスデータをこのベースラインと継続的に比較することで、予期しないズレや異常をすばやく検出できるようになります。


Postmanで実現するAPIオブザーバビリティ

Postman APIプラットフォームには、ポートフォリオ内のすべてのAPIに対するオブザーバビリティを高めるためのさまざまな機能が備わっています。Postmanを活用することで、次のようなことが可能になります。

  • コレクションベースのモニターを作成する:Postmanでは、コレクションベースのモニターを使って、個々のリクエストやワークフロー全体の健全性やパフォーマンスを監視できます。これらのモニターは、手動での実行、スケジュールに基づく定期実行、さらには地域を指定した実行にも対応しています。また、カスタムの再試行ロジックを組み込むことも可能です。
  • APIパフォーマンスデータを他のオブザーバビリティツールと連携する:Postmanは、DatadogNew RelicSplunkなど、複数のサードパーティ製オブザーバビリティツールと統合できます。これにより、Postmanモニターのデータを、環境全体で収集されるメトリクス、イベント、ログ、トレースと関連付けて分析することが可能になります。
  • フィルタリング可能なダッシュボードでパフォーマンスデータを可視化する:Postmanでは、すべてのモニター実行の結果が組み込みのダッシュボードに表示され、パフォーマンスの傾向を一目で把握できます。このダッシュボードは、リクエスト単位や実行タイプ、結果、地域などの条件で柔軟に絞り込みが可能なため、トラブルシューティングの効率化にもつながります。
  • リクエストの失敗とエラーについて通知を受ける:Postmanモニターは、リクエストが失敗した場合に自動でメール通知を送るように設定できます。これにより、スケジュールされた実行で表面化した問題も、見逃すことなくすぐに把握できます。

Postmanのご利用はこちらから

APIアイコンのまわりで踊るPostmanautたち。イラスト。
POST/CON 2024 Banner

イベントレポート:APIとAI開発者のための新時代

エージェンティックAI時代において、トップ開発者たちがいかにより賢く、迅速で、セキュアなAPIを構築しているかをご覧ください。ロサンゼルスでの2日間にわたるイノベーションから生まれた洞察、戦略、プロダクト発表をお届けします。

Photo of Postman CEO Abhinav Asthana on stage at POST/CON 25