IBM Cloud Docs
アプリケーション・ロード・バランサー・メトリックのモニター

アプリケーション・ロード・バランサー・メトリックのモニター

IBM Cloud® Application Load Balancer for VPC (ALB) のモニタリング・メトリックは、データ集計、使用状況アラート、詳細な視覚表現に特化したサービスである IBM Cloud® Monitoring で提供されます。 詳細については、IBM Cloud Monitoring を参照してください。

ロード・バランサーがメトリックを計算し、モニター・インスタンスにそれらのメトリックを送信すると、モニター・インスタンスで、さまざまなタイプの使用状況とトラフィックが表示されます。 IBM Cloud Monitoring のダッシュボードまたは API から、メトリックを視覚化および分析できます。

サービス・プランで使用可能なメトリック

サポートされているモニタリング・メトリックとしては、以下が挙げられます。

  • 特定時点でのアプリケーション・ロード・バランサーへのアクティブ接続
  • 特定の時間にわたってロード・バランサーを通過するデータのスループット
  • 接続レート、またはロード・バランサーへの接続の数が増減したタイミングの分析データ
  • バックエンドで受信される HTTP/HTTPS 要求の総数
  • HTTP/HTTPS 要求の平均応答時間
  • バックエンド応答コードが HTTP 2xx (正常な要求) である応答の数
  • バックエンド応答コードが HTTP 3xx (リダイレクト) である応答の数
  • バックエンド応答コードが HTTP 4xx (クライアント・サイドの障害) である応答の数
  • バックエンド応答コードが HTTP 5xx (サーバー・サイドのエラー) である応答の数
  • プール内の合計バックエンド・メンバー数
  • プール内のアクティブなバックエンド・メンバーの数

これらのメトリックは、ロード・バランサーのトラフィックと使用状況のパターンを追跡するのに役立つとともに、ピーク・トラフィック時間、使用量の減少、および全体的な使用状況パターンに関する情報を提供できます。

各メトリックは、以下のメタデータ・タイプで構成されています。

  • メトリック名 - 収集されたメトリックの名前。
  • メトリック・タイプ - メトリック・タイプは、メトリック値がカウンター・メトリックであるかゲージ・メトリックであるかを決定します。 これらの各メトリックは、時間の経過とともに任意に変動できる単一の数値を表す gauge タイプのものです。
  • 値タイプ - 特定メトリックの単位。 例えば、バイトやカウントなどです。 none という値タイプは、メトリック値がそのメトリック・タイプの個別オカレンスを表していることを意味します。
  • セグメント化 - モニタリング・メトリックをどのように分割して表示するかを指定します。

選択したサブネットと同じゾーンにあるリソースのみを、この VPN ゲートウェイを介して接続できます。

アクティブ接続数

アクティブ接続数は、1 つのロード・バランサー上で特定の時点で確立されている接続の数です。

アクティブ接続メトリックには、以下のメタデータが含まれます。

アプリケーションロードバランサーのアクティブな接続のメトリクス メタデータ
メタデータ 説明
メトリック名 ibm_is_load_balancer_active_connections
メトリック・タイプ gauge
値のタイプ none
セグメント化の方法 Application load balancer appliance metricsApplication load balancer resource name および Application load balancer listener metrics

接続レート

接続レートは、ご使用のロード・バランサーに対する 1 秒当たりの新規着信アクティブ接続の数です。

アプリケーションロードバランサー接続率メトリックメタデータ
メタデータ 説明
メトリック名 ibm_is_load_balancer_connection_rate
メトリック・タイプ gauge
値のタイプ none
セグメント化の方法 Application load balancer appliance metricsApplication load balancer resource name および Application load balancer listener metrics

スループット

スループットは、一定期間にわたって 1 つのロード・バランサーとの間で受け渡されるデータの量です。

アプリケーションロードバランサースループットメトリックメタデータ
メタデータ 説明
メトリック名 ibm_is_load_balancer_throughput
メトリック・タイプ gauge
値のタイプ byte
セグメント化の方法 Application load balancer appliance metricsApplication load balancer resource name および Application load balancer listener metrics

要求カウント

要求カウントは、1 分あたりにロード・バランサーからバックエンド・サーバーに送信された HTTP/HTTPS 要求の総数です。 このメトリックは、HTTP リスナーおよび HTTPS リスナーにのみ使用できます。

アプリケーションロードバランサーのリクエスト数メトリックメタデータ
メタデータ 説明
メトリック名 ibm_is_load_balancer_request_count
メトリック・タイプ gauge
値のタイプ none
セグメント化の方法 Application load balancer appliance metricsApplication load balancer resource name および Application load balancer listener metrics

要求待ち時間

要求待ち時間は、特定の HTTP/HTTPS リスナーについてロード・バランサーで確認された、直近 1024 件の要求の応答時間の平均です。 このメトリックでは、正確な値を報告するために、特定のリスナーについて少なくとも 1024 件の応答がバックエンドから受信される必要があります。 このメトリックは、HTTP リスナーおよび HTTPS リスナーにのみ使用できます。

アプリケーションロードバランサー要求レイテンシメトリックメタデータ
メタデータ 説明
メトリック名 ibm_is_load_balancer_request_latency
メトリック・タイプ gauge
値のタイプ milliseconds
セグメント化の方法 Application load balancer appliance metricsApplication load balancer resource name および Application load balancer listener metrics

HTTP 2xx 応答コード・カウント

HTTP 2xx 応答コード・カウントは、1 分あたりにバックエンドから受信された 200 から 299 までの範囲にあるすべての HTTP 応答コードの数です。 このメトリックは、HTTP リスナーおよび HTTPS リスナーにのみ使用できます。

アプリケーションロードバランサー HTTP 2xx 応答回数メトリック メタデータ
メタデータ 説明
メトリック名 ibm_is_load_balancer_backend_http_2xx
メトリック・タイプ gauge
値のタイプ none
セグメント化の方法 Application load balancer appliance metricsApplication load balancer resource name および Application load balancer listener metrics

HTTP 3xx 応答コード・カウント

HTTP 3xx 応答コード・カウントは、1 分あたりにバックエンドから受信された 300 から 399 までの範囲にあるすべての HTTP 応答コードの数です。 このメトリックは、HTTP リスナーおよび HTTPS リスナーにのみ使用できます。

アプリケーションロードバランサー HTTP 3xx 応答回数メトリック メタデータ
メタデータ 説明
メトリック名 ibm_is_load_balancer_backend_http_3xx
メトリック・タイプ gauge
値のタイプ none
セグメント化の方法 Application load balancer appliance metricsApplication load balancer resource name および Application load balancer listener metrics

HTTP 4xx 応答コード・カウント

HTTP 4xx 応答コード・カウントは、1 分あたりにバックエンドから受信された 400 から 499 までの範囲にあるすべての HTTP 応答コードの数です。 このメトリックは、HTTP リスナーおよび HTTPS リスナーにのみ使用できます。

アプリケーションロードバランサー HTTP 4xx 応答回数メトリック メタデータ
メタデータ 説明
メトリック名 ibm_is_load_balancer_backend_http_4xx
メトリック・タイプ gauge
値のタイプ none
セグメント化の方法 Application load balancer appliance metricsApplication load balancer resource name および Application load balancer listener metrics

HTTP 5xx 応答コード・カウント

HTTP 5xx 応答コード・カウントは、1 分あたりにバックエンドから受信された 500 から 599 までの範囲にあるすべての HTTP 応答コードの数です。 このメトリックは、HTTP リスナーおよび HTTPS リスナーにのみ使用できます。

アプリケーションロードバランサー HTTP 5xx 応答回数メトリック メタデータ
メタデータ 説明
メトリック名 ibm_is_load_balancer_backend_http_5xx
メトリック・タイプ gauge
値のタイプ none
セグメント化の方法 Application load balancer appliance metricsApplication load balancer resource name および Application load balancer listener metrics

合計メンバー数

合計メンバー数は、プール内に作成されたメンバーの数です。 このメトリックは、TCP、 HTTP、 HTTPS のリスナーでのみ利用可能です。

アプリケーションロードバランサの合計メンバー数 メトリック メタデータ
メタデータ 説明
メトリック名 ibm_is_load_balancer_backend_total_members
メトリック・タイプ gauge
値のタイプ none
セグメント化の方法 Application load balancer appliance metricsApplication load balancer resource nameApplication load balancer listener metrics 、および Application load balancer pool metrics

アクティブ・メンバー

アクティブ・メンバー数は、プール内の正常なメンバーの数です。 このメトリックは、TCP、 HTTP、 HTTPS のリスナーでのみ利用可能です。

アプリケーションロードバランサー アクティブなメンバー数 カウント メトリック メタデータ
メタデータ 説明
メトリック名 ibm_is_load_balancer_backend_active_members
メトリック・タイプ gauge
値のタイプ none
セグメント化の方法 Application load balancer appliance metricsApplication load balancer resource nameApplication load balancer listener metrics 、および Application load balancer pool metrics

メトリックのセグメント化

データを IBM Cloud Monitoring ダッシュボード内でさまざまな視覚表現に分割することで、好みに応じて各種メトリックのビューを表示できるようになります。 例えば、複数のロード・バランサーを使用している場合や、各アカウント内に異なるロード・バランサーが含まれた複数のアカウントを使用している場合は、特定のリスナー・ポートに重点を置くことができます。

例えば、active connectionsApplication load balancer listener port別にセグメント化すると、ロード・バランサーに接続しているアクティブ・ユーザーの数を、リスナーのタイプごとに確認できます。 このことを例示するために、ご使用のロード・バランサーで 2 種類のリスナー・プロトコルがサポートされていると想定しましょう。1 つはポート 80 上の HTTP であり、もう 1 つはポート 8080 上の TCP です。 ダッシュボードには、ポート 80 上の HTTP を介して接続された 10 人のユーザーと、ポート 8080 上の TCP を介して接続された 6 人のユーザーが色分けされて別々の行で表示されます。

グローバル属性

前述の 3 つのメトリックをセグメント化するために、以下の属性を使用できます。

グローバル属性
属性 属性名 属性の説明
Resource ibm_resource ロード・バランサーの固有 ID
Scope ibm_scope 特定のロード・バランサーに関連付けられているアカウント
Service name ibm_service_name ibm-is-load-balancer

追加の属性

以下の属性は、1 つ以上のグローバル属性をセグメント化するために使用できます。 セグメント化のオプションについては、個々のメトリックを参照してください。

追加の属性
属性 属性名 属性の説明
アプリケーション・ロード・バランサーのアプライアンス・メトリック ibm_is_load_balancer_appliance_ip ロード・バランサー・バックエンドから得られるメトリック。 ロード・バランサーは高可用性であるため、冗長性を確保するために各ロード・バランサーは複数のアプライアンスによってサポートされます。
アプリケーション・ロード・バランサーのリスナー・メトリック ibm_is_load_balancer_listener_port 個々のリスナーとそのポートから収集されるメトリック。 ロード・バランサーの設定でこれらのリスナーを構成します。 モニタリング・メトリックには、これらのリスナーから提供されるメトリックが反映されます。
アプリケーションロードバランサープールメトリクス ibm_is_load_balancer_pool_name 個々のリスナー・ポートとヘルス・チェック・ポート (ヘルス・チェック・ポートが構成されている場合)、またはバックエンド・メンバー・ポート (ヘルス・チェック・ポートが構成されていない場合) から収集されるメトリック。 ロード・バランサー設定で、リスナー、メンバーを含むバックエンド・プール、およびヘルス・チェック・ポート (必要な場合) を構成する必要があります。 モニター・メトリックは、これらのリスナーとヘルス・チェック・ポート、またはバックエンド・メンバー・ポートからのメトリックを反映します。
アプリケーション・ロード・バランサーのリソース名 ibm_is_load_balancer_resource_name ロード・バランサーの固有の名前

以下のサンプル値は、さまざまな構成の ibm_is_load_balancer_pool_name 属性のためのものです。 プールにメンバーがない場合、この値の形式は Pool_ListenerPort になります。 プールにメンバーがあり、ヘルス・チェック・ポートが構成されている場合、この値の形式は Pool_ListenerPort:HealthCheckPort になります。 そうでない場合、プールにメンバーはあるが、ヘルス・チェック・ポートが構成されていない場合、値は Pool_ListenerPort:Member1Port/Member2Port/... になります。

プール名属性
リスナー・ポート HealthCheck ポート Member1 ポート Member2 ポート Member3 ポート 'ibm_is_load_balancer_pool_name 値'
9999
Pool_9999
80 80 80 8090
Pool_80:80
8099 443 9080 7080 8888 Pool_8099:443
8081
80 8090 9090 Pool_8081:9090/8090/80
8088
9080 7080
Pool_8088:9080/7080

表示されるメトリックには、UNIX エポック時間のタイム・スタンプと、そのタイム・スタンプ時刻に終了する時間間隔のメトリック値が含まれています。 さまざまな範囲を指定できるとともに、メトリックを報告する時間間隔を指定できます。

IBM Cloud Application Load Balancer でサポートされるリスナー・プロトコルには、以下のものがあります。

  • HTTP
  • HTTPS
  • TCP

リスナー・ポートを指定すると、そのリスナーに基づいてメトリックがフィルタリングされます。 例えば、ポートを指定しない場合に、メトリックが Throughput の場合は、IBM Cloud Monitoring はすべてのリスナー・プロトコルの合計スループットを報告します。 ただし、プロトコルがポート 80 上の HTTP である場合、IBM Cloud Monitoring は HTTP トラフィックのみのスループットを報告します。

また、メトリックを報告する時間間隔を指定することもできます。 ダッシュボードでサポートされている時間間隔は以下のとおりです。

  • 10 秒間
  • 1 分間
  • 10 分間
  • 1 時間
  • 6 時間
  • 2 週間
  • カスタム

報告できるデータ・ポイントの数は、どの時間間隔でもほぼ同じです。 例えば、間隔が 1 時間の場合、各データ・ポイントは 5 分間分のデータを示します。 間隔が 2 週間の場合、各データ・ポイントは 24 時間分のデータを示します。

メトリック・モニタリングの有効化

モニタリング・メトリックを受け取るには、モニター・インスタンスを指定して IBM Cloud Monitoring をセットアップする必要があります。

これを行うには、以下の手順を実行します。

  1. メトリクス監視ポータルに移動し 、「監視インスタンスの作成」 をクリックします。

  2. モニター・インスタンスのリージョンを選択します。

    既存のロード・バランサーがない場合は、IBM Cloud Application Load Balancer for VPC の作成を参照して、ロード・バランサーをプロビジョンします。

    リージョンは、既存のロード・バランサーの場所に一致する必要があります。

  3. 価格プランを選択します。

    価格プランの詳細は、選択ウィンドウで説明されています。 各自の要件に最も適合するプランを選択してください。

  4. インスタンスのサービス名を指定します。 この名前は任意の名前にすることができ、機能に影響を及ぼしません。

    同じ名前で複数のモニター・インスタンスを作成しないでください。

  5. オプションで、リソース・グループを選択します。 リソース・グループは、アカウント・リソースをカスタマイズ可能なグループに分けて編成するための手段です。 IBM Cloud Identity and Access Management (IAM) アクセス制御を使用して管理されているすべてのアカウント・リソースは、自身のアカウント内のいずれかのリソース・グループに属しています。

    事前構成済みのリソース・グループがない場合や、このリソースを取捨選択して共有する理由がない場合は、デフォルトの選択内容を使用してください。

    自身のアカウントに複数のリソース・グループがある場合は、このモニター・インスタンスにアクセス可能にするリソース・グループをそれらの中から選択できます。 これにより、メトリックを一部のリソース・グループで使用可能にする一方で、他のリソース・グループでは使用不可にすることができます。

  6. **「プラットフォーム・メトリックの有効化 (Enable Platform Metrics)」**チェック・ボックスを選択します。 ロード・バランサーからメトリックを受信するには、このチェック・ボックスを選択する必要があります。

  7. 「作成」 をクリックします。 モニタリング・メトリックのホーム・ページに自動的に戻ります。

数分以内に、新規のモニター・インスタンスといくつかの構成が表示されます。 場合によっては、このインスタンスを表示するためにブラウザーを最新表示する必要があります。

IBM Cloud Monitoring ダッシュボードの操作

メトリックを表示して操作するには、以下の手順を実行します。

  1. メトリック・モニター・ポータルにナビゲートします。

  2. 操作するモニター・インスタンスのサービス名の横にある**「IBM Cloud Monitoring の表示 (View IBM Cloud Monitoring)」**をクリックします。

    モニター・インスタンスに初めてアクセスするときに、内部セットアップの一部として複数のウィンドウが表示されます。 これらの選択対象はデフォルト項目のままにして、クリックを繰り返してページを移動してメイン・ページまで進みます。

  3. 左側のサイドバーにある**「ダッシュボード」を選択して、IBM Load Balancer モニタリング・メトリック・ダッシュボードを開きます。 次に、「デフォルト・ダッシュボード (Default Dashboards)」>「IBM」>「ロード・バランサーのモニタリング・メトリック (Load Balancer Monitoring Metrics)」**をクリックします。 デフォルトのダッシュボードは編集できません。

  4. ダッシュボードには、スループット、アクティブな接続、接続率、リクエスト数、リクエストの待ち時間、 HTTP_2xx 応答数、 HTTP_3xx 応答数、 HTTP_4xx 応答数、 HTTP_5xx 応答数、総メンバー数、アクティブなメンバー数という11の主要な指標が表示されます。 カスタム・ダッシュボードを作成して、ロード・バランサー ID またはリスナー・ポートごとにメトリックのパラメーターとセグメントを変更する必要があります。

    末尾にあるバーを使用して、どの時間枠のメトリックを表示するのかを選択できます。

カスタム・メトリック・ダッシュボードの作成

独自のダッシュボードを作成してモニタリング・メトリックをカスタマイズすることで、例えば、特定のロード・バランサーに関する情報を表示したり、特定のリスナーのみを経由するトラフィックを表示したりできます。

ダッシュボードをカスタマイズするには、以下の手順を実行します。

  1. メトリック・モニター・ポータルにナビゲートします。

  2. 操作するモニター・インスタンスのサービス名の横にある**「IBM Cloud Monitoring の表示 (View IBM Cloud Monitoring)」**をクリックします。 ダッシュボードが表示されます。

  3. 左側のサイドバーで、**「ダッシュボード」**を選択します。 次に、パネル内の緑色の + 記号をクリックします。

  4. **「ブランク・ダッシュボード (Blank dashboard)」**を選択してから、希望の視覚表現のタイプを選択します。

    IBM Cloud Monitoring では、ダッシュボード用に 8 種類の視覚表現が提供されます。 各視覚表現の説明を参照してから、各自の要件に最も適合するものを選択してください。

    「折れ線 (Line)」(「一定期間にわたる傾向の表示」) が最も簡単で基本的なオプションです。 これは、最も頻繁に選択されるオプションでもあります。 このトピックの例では、ライン・ベースの視覚表現を示しています。

  5. カスタム・ダッシュボードを構成します。

    • **「メトリック」**フィールドに「ibm_is」と入力して、3 つのロード・バランサー・メトリックである ibm_is_load_balancer_active_connectionsibm_is_load_balancer_connection_rate、および ibm_is_load_balancer_throughput を表示します。

    リスナー・ポートのトラフィックをモニターするには、ibm_is_load_balancer_listener_port メトリックを有効にします。

    • ダッシュボードに表示する範囲を選択するには、**「ダッシュボード範囲のオーバーライド (Override Dashboard Scope)」**をクリックします。 例えば、特定のロード・バランサーのメトリックを表示することができます。

    • また、定義した範囲全体にわたってメトリックを比較するためのセグメントを設定することもできます。 例えば、リスナー・ポートでセグメント化された特定のロード・バランサーのスループットを参照できます。

  6. 新しいカスタム・ダッシュボードをアクセス可能にするには、**「保存」**をクリックします。

    デフォルトでは、ダッシュボードの初期名は「ブランク・ダッシュボード (blank dashboard)」です。 サイドバーから ダッシュボード を選択し、名前の隣にある 編集アイコン 編集アイコン をクリックすると、名前を変更できます。

任意の時点でデフォルトのダッシュボードに戻るには、**「ダッシュボード」>「デフォルト・ダッシュボード (Default Dashboards)」>「IBM」>「ロード・バランサーのモニタリング・メトリック (Load Balancer Monitoring Metrics)」**を選択します。

API を使用した IBM Cloud Monitoring の操作

メトリック照会 API を使用してモニター・インスタンスを操作することもできます。 この方法が望ましいのは、未加工のデータ・ポイントが必要な場合や、IBM Cloud Monitoring ダッシュボードを使用する代わりにコマンド・ライン・インターフェースからメトリックを扱う場合です。

モニター・インスタンスを作成した後に、以下の 2 つの情報を取得する必要があります。

  • Monitor API トークン
  • IBM Cloud Monitoring インスタンスのエンドポイント

この情報を収集して、メトリック照会 API を使用したモニター・インスタンスの操作を行うには、以下の手順に従います。

  1. モニタリングのホームページにアクセスし、作業するインスタンスの横にある 「ダッシュボードを開く」 をクリックします。 ダッシュボードが表示されたら、左側のサイドバーにある「アカウント・プロファイル (Account Profile)」アイコンを選択して、**「設定」**を選択します。 アカウント設定が表示されます。

  2. Monitor API トークンは、**「Monitor API トークン (Monitor API Token)」フィールドに表示されている英数字ストリングです。 鍵の右側にある「コピー」**ボタンをクリックして、トークンをクリップボードに格納します。

    この API トークンを共有しないでください。 この API トークンを持っているどのユーザーも、このユーザーのメトリックに対するフルアクセスを持ちます。

  3. IBM Cloud Monitoring インスタンスのエンドポイントを取得するには、ブラウザーでメイン・ダッシュボードにナビゲートします。 次に、下記の例のようなダッシュボードの URL を選択します。

    https://us-south.monitoring.cloud.ibm.com/#/default-dashboard/ibm_is_load_balancer?last=3600
    

    この URL の前半部分 (この例では us-south.monitoring.cloud.ibm.com) がエンドポイントです。 この値をメモしてください。

  4. API トークンとエンドポイントの両方が得られたら、POST 要求をフォーマット設定できます。 以下の POST 要求の例には、ユーザーが変更できるすべてのパラメーターが含まれています。 これらのパラメーターは次のとおりです。

    • Monitor API トークン。
    • モニター・インスタンスのエンドポイント。
    • ibm_resource の値 (これはメトリックを表示するロード・バランサー ID です)。

    すべてのロード・バランサーについてこのメトリックを表示するには、scope 属性の値を入力しないでください。 例えば、"scope" : "" を使用してください。

    • 結果を表示するメトリック・タイプ。 この例では ibm_is_load_balancer_throughput を使用していますが、ibm_is_load_balancer_active_connectionsibm_is_load_balancer_connection_rate も有効なオプションです。
    • from 属性と to 属性では、スキャンを集中させる時間を定義します。これらの値は、エポック時間に基づいてマイクロ秒単位で設定します。
    • sampling 属性と value 属性では、POST 要求で返されるデータ内容の細分度を設定します。

IBM Cloud Monitoring には大量のデータが保管されているため、特定の細分度レベルを選択することが重要です。IBM Cloud Monitoring が特定の要求で一度に返すことができるデータ・ポイントは 600 個のみです。 したがって、sampling 属性と value 属性は重要です。 これら 2 つの行を要求から除外した場合は、代わりにその期間の合計が返されます。

fromto で指定した時間範囲が長い場合 (例えば 4 日間の場合) に、samplingvalue で 10 秒を定義した場合は、10 秒ごとに分割された 4 日分のデータを受け取ることになります。 この場合は大量のデータが返されるため、これは有用なサンプリングではありません。 これより長い時間幅を指定することをお勧めします (例えば 10 秒ではなく 1 時間など)。

curl \
-H 'Authorization: Bearer <API_TOKEN>’ \
-H 'Content-Type: application/json' \
https://us-south.monitoring.cloud.ibm.com/api/data/batch  \
-d '{
 "requests": [
     {
         "format": {
             "type": "data"
         },
         "scope": "ibm_resource = \"cfc851b1-f30b-4a06-b354-5b64526c0a69\"",
         "metrics": {
             "k0": "timestamp",
             “v1”: "ibm_is_load_balancer_throughput"
         },
         "time": {
             "from": 1584396900000000,
             "to": 1584402600000000,
              “sampling”: 600000000
         },
         "group": {
             "by": [
                 {
                     "metric": "k0",
                     “value” : 600000000
                 }
             ],
             "aggregations": {
                 “v1”: "sum"
             },
             "groupAggregations": {
                 “v1”: "sum"
             }
         }
     }
 ]
}'