サイトのAPI図鑑B版
掲載情報が正確でない可能性があります。
開発者向けAPIツール

API監視・テストツールの完全ガイド【Postman・Datadog・New Relic・PagerDuty】

APIの監視・アラート・パフォーマンステストに使うツール(Postman・Datadog・New Relic・Grafana・PagerDuty)の設定方法と、API障害検知の自動化手法を解説します。

#API監視#Datadog#Postman#パフォーマンステスト

API監視の重要性

APIは現代のアプリケーションの生命線です。APIの障害・性能劣化はユーザー体験と売上に直接影響します。適切な監視・アラート体制を構築することで、問題を早期発見して被害を最小化できます。

監視すべき主要メトリクス

  • 可用性(Uptime):APIが正常に応答している割合
  • レスポンスタイム:p50・p95・p99のパーセンタイル値
  • エラーレート:4xx・5xxエラーの割合
  • スループット:単位時間あたりのリクエスト数(RPS)
  • SSL証明書有効期限:期限切れによる障害を事前に防ぐ

Postmanでのモニタリング設定

// Postmanテストスクリプトの例
pm.test("ステータスコードが200", () => {
  pm.response.to.have.status(200);
});

pm.test("レスポンスタイムが500ms以内", () => {
  pm.expect(pm.response.responseTime).to.be.below(500);
});

pm.test("レスポンスボディにデータが含まれる", () => {
  const json = pm.response.json();
  pm.expect(json.data).to.be.an('array');
  pm.expect(json.data.length).to.be.greaterThan(0);
});

pm.test("必須フィールドが存在する", () => {
  const json = pm.response.json();
  pm.expect(json).to.have.property('id');
  pm.expect(json).to.have.property('name');
  pm.expect(json).to.have.property('updatedAt');
});

Datadog APMの設定(Node.js)

// Datadogトレーシングの設定
const tracer = require('dd-trace').init({
  service: 'my-api',
  env: process.env.NODE_ENV,
  version: process.env.APP_VERSION,
  sampleRate: 1.0
});

// カスタムメトリクスの送信
const dogstatsd = require('hot-shots');
const statsd = new dogstatsd.StatsD();

app.use((req, res, next) => {
  const start = Date.now();
  res.on('finish', () => {
    const duration = Date.now() - start;
    statsd.histogram('api.response_time', duration, [
      `endpoint:${req.path}`,
      `method:${req.method}`,
      `status:${res.statusCode}`
    ]);
    statsd.increment('api.request_count', 1, [
      `endpoint:${req.path}`,
      `status_class:${Math.floor(res.statusCode / 100)}xx`
    ]);
  });
  next();
});

PagerDutyアラートの設定

// 障害時にPagerDutyにアラートを送信
const createPagerDutyAlert = async (incident) => {
  await fetch('https://events.pagerduty.com/v2/enqueue', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      'Authorization': `Token token=${process.env.PAGERDUTY_KEY}`
    },
    body: JSON.stringify({
      routing_key: process.env.PAGERDUTY_INTEGRATION_KEY,
      event_action: 'trigger',
      payload: {
        summary: `API障害検知: ${incident.endpoint} - ${incident.error}`,
        severity: 'critical',
        source: 'api-monitor',
        custom_details: {
          error_rate: incident.errorRate,
          affected_requests: incident.count
        }
      }
    })
  });
};

SLO管理のベストプラクティス

  • 可用性SLO:99.9%(月あたり約43分のダウンタイム許容)
  • レイテンシSLO:p95が300ms以内
  • エラーレートSLO:0.1%以内
  • エラーバジェット:SLOを超えた場合に機能開発より信頼性向上を優先

まとめ

API監視はプロダクションの健全性を保つための必須投資です。Postmanで機能テストとモニタリングを自動化し、DatadogでAPMメトリクスを可視化し、PagerDutyで障害時の迅速な通知を実現するスタックが多くの企業で採用されています。SLOを明確に設定してエラーバジェットを管理することで、信頼性と機能開発のバランスをとった運用が可能になります。

よくある質問

Q.API監視と死活監視の違いは何ですか?

死活監視(ヘルスチェック)はAPIが応答しているかの基本的な確認です。API監視はこれに加えてレスポンスタイム・エラーレート・スループット・レスポンス内容の正確性などをより詳細に計測します。

Q.PostmanのモニタリングはCI/CDと連携できますか?

Postman CLIとNewman(PostmanのCLIランナー)を使ってCI/CDパイプライン(GitHub Actions・CircleCI等)でAPIテストを自動実行できます。テスト失敗時にデプロイを止めることができます。

Q.API SLO(サービスレベル目標)の設定と監視は?

DatadogやNew RelicではAPIのSLO(例:99.9%可用性・p95レスポンスタイム200ms以下)を設定し、達成状況をダッシュボードでリアルタイムに監視できます。SLOバジェットを超えそうになったらアラートを設定します。

関連記事