カスタムメトリクス

Anypoint Custom Metrics Connector を使用すると、定義した運用およびビジネスメトリクス値をアプリケーションから Anypoint Monitoring に送信できます。組み込みの​カスタムメトリクス​ダッシュボードやカスタムダッシュボードの​高度な​モードを使用して、リアルタイムにカスタムメトリクスを視覚化できます。

Anypoint Custom Metrics Connector でメトリクスを定義し、ダッシュボードに表示するメトリクスを選択します。定義したディメンションに沿ってメトリクスの絞り込みやグループ化ができ、複数のカスタムメトリクスや組み込みメトリクスを 1 つのダッシュボード視覚化に含めることができます。

Custom Metrics Connector は、Mule 3 と Mule 4 のどちらについても ​[Monitoring (監視)] > [Custom Metrics (カスタムメトリクス)]​ ページから入手できます。

Anypoint Custom Metrics Connector で設定したメトリクスを Anypoint Monitoring に表示するには、Titanium サブスクリプションが必要です。

前提条件

次の Mule Runtime Engine バージョンと Anypoint Monitoring を使用してください。

  • Mule 3 バージョン 3.8.7 以降
    バージョン 3.8.6 以前はサポートされていません。さらに、​-AM​ サフィックスがあるすべてのランタイムバージョンは非推奨です。
    インバウンドおよびアウトバウンドのメトリクスは、Mule Runtime Engine バージョン 3.9.5 以前を使用するハイブリッドプロキシアプリケーションでは使用できません。

  • Mule 4
    API Analytics の拡張メトリクスを使用するには、Mule Runtime Engine バージョン 4.1.6 以降を使用してください。

カスタムメトリクスのベストプラクティス

ベストプラクティスとしては、期間と頻度を効果的に使用することや、カーディナリティディメンションの低いデータを使用することなどがあります。

期間と頻度の効果的な使用

カスタムメトリクスダッシュボードの各チャートは、クエリの出力を表します。ダッシュボードの 2 つのパラメーターである​時間範囲​と​更新頻度​は、チャートを生成するクエリの応答時間に影響します。

Time Range (時間範囲)

チャートを生成するためにフェッチまたは処理するデータ量を決定します。たとえば、日次チャートを表示する場合よりも月次チャートのほうが、多くのデータをフェッチして処理することになります。

Refresh frequency (更新頻度)

チャートを更新する間隔を決定します。更新頻度が高いほどシステムへの負荷が高くなり、パフォーマンスに影響します。たとえば、更新頻度が 1 時間であれば毎時、1 分間であれば毎分クエリを送信することになります。

時間範囲を (日次から月次などに) 大きくしたり、更新頻度を (1 時間から 1 分間などに) 高くしたりすると、システムの応答時間に影響がでます。チャートの応答時間を改善するには、時間範囲を短くするか、更新頻度を低くしてください。

低いカーディナリティディメンションの使用

ほとんどのカスタムメトリクスディメンションが取れる一意の値は 100 未満ですが、​country_code​、​state_code​、​city_code​、​zip​ など、一意の値が 1000 近くになるものもあります。カスタムメトリクスには、​高カーディナリティ​データ (一意の値を多く持つデータ) を追加しないでください。高カーディナリティディメンションの例としては、​customer_id​、​user_id​、​session_id​、​order_id​、​transaction_id​、​email_address​、​token_id​、​product_id​、​location_id​ (latitude/longitude)、​ip_address​、​phone_number​ などがあります。高カーディナリティディメンションを使用したカスタムメトリクスで設定されているチャートは、ダッシュボードの応答時間に影響します。最良の結果を得るには、一意の値が少ないディメンションに制限してください。

特定のカスタムメトリクスチャートの応答が遅く、システムの他のチャートに影響している場合は、次のような対策を執ってください。

  • システムに影響する高カーディナリティディメンションを使用しない新しいカスタムメトリクスを作成する

  • 高カーディナリティディメンションを次のような低カーディナリティディメンションに置き換える:

    • product_id​ の代わりに ​category_id

    • location_id​ の代わりに ​country_code

    • order_id​ の代わりに ​order_count

  • 新しいカスタムメトリクスを使用する際には UUID とタイムスタンプの使用を避ける

  • カスタムメトリクスチャートの時間範囲を短くする (例: 月次チャートや年次チャートではなく日次チャートや週次チャートを作成)

  • 更新頻度を低くする (例: 毎分ではなく毎時更新)。

制限されたキーワード

内部データベースの制限により、Anypoint Custom Metrics Connector を使用しているときに次のキーワードを使用して ​dimensionName​ または ​factName​ を定義することはできません。

  • ALL

  • ALTER

  • ANALYZE

  • ANY

  • AS

  • ASC

  • BEGIN

  • BY

  • CREATE

  • CONTINUOUS

  • DATABASE

  • DATABASES

  • DEFAULT

  • DELETE

  • DESC

  • DESTINATIONS

  • DIAGNOSTICS

  • DISTINCT

  • DROP

  • DURATION

  • END

  • EVERY

  • EXPLAIN

  • FIELD

  • FOR

  • FROM

  • GRANT

  • GRANTS

  • GROUP

  • GROUPS

  • IN

  • INF

  • INSERT

  • INTO

  • KEY

  • KEYS

  • KILL

  • LIMIT

  • SHOW

  • MEASUREMENT

  • MEASUREMENTS

  • NAME

  • OFFSET

  • ON

  • ORDER

  • PASSWORD

  • POLICY

  • POLICIES

  • PRIVILEGES

  • QUERIES

  • QUERY

  • READ

  • REPLICATION

  • RESAMPLE

  • RETENTION

  • REVOKE

  • SELECT

  • SERIES

  • SET

  • SHARD

  • SHARDS

  • SLIMIT

  • SOFFSET

  • STATS

  • SUBSCRIPTION

  • SUBSCRIPTIONS

  • TAG

  • TO

  • USER

  • USERS

  • VALUES

  • WHERE

  • WITH

  • WRITE

  • TIME

Design Center を使用してカスタムメトリクス値を設定する

Design Center で Mule アプリケーションプロジェクトを作成し、Custom Metrics Connector を設定します。

  1. Design Center​ で、新しい Mule アプリケーションプロジェクトを作成します。
    プロジェクトが Design Center で開きます。

  2. フローのトリガーを選択し、​[Next (次へ)]​ をクリックします。

  3. [Target (対象)]​ で、​[Anypoint Custom Metrics Connector]​ を選択し、​[Done (完了)]​ をクリックします。

    custom metric dc select target

    コネクタには ​[Send Custom Metric (カスタムメトリクスを送信)]​ という操作が 1 つあります。

  4. 設計キャンバスで、​[Anypoint Custom Metrics Connector]​ カードを開いてメトリクスを追加します。

  5. [Metric Name (メトリクス名)]​ に、わかりやすい値を入力します。

  6. [Dimensions (ディメンション)]​ の横で、​[Add (追加)]​ をクリックしてメトリクスのディメンションの名前と値を入力します。

    custom metric dc add dimension
    1. [Add Item (項目を追加)]​ ダイアログボックスで、ディメンションの ​[Dimension Name (ディメンション名)]​ と ​[Value (値)]​ を入力します。

    2. [Collapsible (折りたたみ可能)]​ オプションはデフォルトの ​[True]​ のままにします。

    3. [OK]​ をクリックします。

      custom metric dc add item

      この手順を繰り返して複数のキー値を追加できます。

  7. [Facts (ファクト)]​ の横で、​[Add (追加)]​ をクリックしてメトリクスのファクトを追加します。測定の値は常に数値です。

    1. [Add Item (項目を追加)]​ ダイアログボックスで、ファクトの ​[Fact Name (ファクト名)]​ と数値の ​[Value (値)]​ を入力します。

      ファクトの場合、値は常に数値にする必要があります。これは設計時には検証されませんが、数値以外を入力するとデプロイ後にランタイム例外が発生します。
      custom metrics add fact
    2. [OK]​ をクリックします。
      この手順を繰り返して複数のキー値を追加できます。

  8. メトリクスに無効な値が入力されたらフローを中止する場合は、​[Throw Runtime Exception on Validation Failure (検証失敗時にランタイム例外をスロー)]​ オプションを選択します。このオプションをオフのままにすると、エラーはログに記録されますが、フローは中止されません。

    Custom Metrics Connector では、含まれている値が空または 0 であっても、すべての​ファクト​が各操作から送信される必要があります。

Anypoint Studio を使用してカスタムメトリクスを設定する

  1. Anypoint Exchange で Anypoint Custom Metrics Connector を検索します。

  2. [Send Custom Metric (カスタムメトリクスを送信)]​ 操作をキャンバスにドラッグします。

  3. [Send Custom Metric (カスタムメトリクスを送信)]​ 操作をアプリケーションフローに追加します。
    次の画像は、Anypoint Studio でのカスタムメトリクスのフロー例を示しています。

    custom metric example flow
  4. [Send Custom Metric (カスタムメトリクスを送信)]​ 操作をクリックして操作の値を追加します。

  5. メトリクスのディメンションを次のように追加します。

    1. [Metric Name (メトリクス名)]​ に、わかりやすい値 (「sales」 (営業) など) を入力します。

    2. [Enter contextual information (コンテキスト情報を入力)]​ で、​[Edit inline (インライン編集)]​ を選択してディメンションの名前と値を入力します。

    3. 左にある緑のプラス記号をクリックして値を入力します。

    4. [Dimension (ディメンション)]​ ダイアログボックスで、ディメンションの ​[Name (名前)]​ と ​[Value (値)]​ を入力します。

    5. [Collapsible (折りたたみ可能)]​ オプションはデフォルトの ​[True]​ のままにします。

    6. [Finish (完了)]​ をクリックします。
      この手順を繰り返して複数のキー値を追加できます。

  6. メトリクスのファクトを入力します。測定の値は数値です。

    1. [Enter measurements (測定を入力)]​ で、​[Edit inline (インライン編集)]​ を選択してメトリクスの名前と値を入力します。

    2. [Fact (ファクト)]​ ダイアログボックスで、ファクトの ​[Name (名前)]​ と数値の ​[Value (値)]​ を入力します。

      ファクトの場合、値は常に数値にする必要があります。これは設計時には検証されませんが、数値以外を入力するとデプロイ後にランタイム例外が発生します。
    3. [Collapsible (折りたたみ可能)]​ オプションはデフォルトの ​[True]​ のままにします。

    4. [Finish (完了)]​ をクリックします。
      この手順を繰り返して複数のキー値を追加できます。
      次の画像は、T シャツの売上を追跡するカスタムメトリクスの値の例を示しています。

      custom metrics connector config
  7. メトリクスに無効な値が入力されたらフローを中止する場合は、​[Throw runtime exception on validation failure (検証失敗時にランタイム例外をスロー)]​ オプションを選択します。このオプションをオフのままにすると、エラーはログに記録されますが、フローは中止されません。

アプリケーションをデプロイする

  1. アプリケーションをデプロイします。

  2. Anypoint Monitoring で、カスタムメトリクスの​新しいカスタムダッシュボードを追加​します。
    次の画像は、T シャツの売上を表示するグラフの設定例を示しています。

    custom metric custom dashboard config
    カスタムメトリクスのログが記録されて初めて、事前入力されたメトリクス選択ドロップダウンリストにカスタムメトリクスが表示されます。
    custom metric custom dashboard graph

カスタムメトリクスダッシュボードを使用する

アプリケーションフローに ​Custom Metrics Connector​ を設定し、アプリケーションをサーバーまたはサーバークラスターにデプロイするまで、アプリケーションのカスタムメトリクスは収集されません。

  1. Anypoint Monitoring で、メトリクスを表示するアプリケーションを選択し、​[View (表示)]​ をクリックします。

  2. [Custom metrics (カスタムメトリクス)]​ タブをクリックします。

    Custom Metrics Connector が指定された時間範囲内に 1 つ以上のメトリクスを収集した場合、定義されたメトリクスにつき 1 つのチャートが表示されます。
    custom metrics dashboard
  3. [Select a measurement for this chart (このチャートの測定を選択)]​ をクリックしてチャートの測定を表示します。

  4. チャート下部にあるドロップダウンリストを使用して、次の検索条件でデータを絞り込みます。

    • Aggregation (集約)​ - 次のような集約を選択できます。

      • None (なし)​ (デフォルト) - データを集約しません。

      • count (件数)​ - 測定に対して収集された項目の総数を表示します。

      • distinct (個別)​ - 特定の測定のユニーク値を返します。

      • integral (積分)​ - 後続値の曲線下面積を返します。

      • mean (平均)​ - 特定の期間の指定された測定の算術平均を返します。

      • median (中央値)​ - 収集されたメトリクスの中央値を表示します。

      • mode (最頻値)​ - 定義された測定について収集されたメトリクスの最頻値を表示します。

      • sum (合計)​ - 定義された測定のすべての値の合計を表示します。

    • Measurement (測定)​ - このリストの選択肢は、Custom Metrics Connector に定義する測定値によって決まります。

    • Group by (グループ化基準)​ - このリストの選択肢は、Custom Metrics Connector に定義する値によって決まります。