アプリ パラメーター

概要

アプリ パラメーターはアプリケーションのメトリックを監視する有用な機能です。アプリ パラメーターでは、次の項目が監視可能です。

  • 値の大きさを表す数値か、変数の出現頻度
  • 値の大きさか、アプリケーションでの演算の出現頻度

たとえば、シンプルなWebリクエストで、API呼び出し1回、データベース操作1回、キャッシュ ヒット1回が発生するものとします。また、1回のリクエストが複数リソースにかかわったり、複数ユーザーが複数リクエストを同時に実行したりするものとします。アプリ パラメーターを利用すれば、この例における、ある期間でのAPI呼び出しの頻度やDB操作の回数が、判定可能です。これによって、該当期間にCPUやメモリが過負荷になっていないかや、アプリのパフォーマンスに影響が出ていないか、判断が容易となります。

現実のアプリケーションでも、DB呼び出しへのヒット頻度、サービス呼び出し、ユーザー定義のフレームワーク呼び出しなどを監視する際、アプリ パラメーター機能が有用です。ヒットの過負荷によるパフォーマンス低下は、アプリ パラメーターのレポートにもとづき、トラブルシュート可能となります。

アプリ パラメーターを使うにあたって

関与する演算

  1. 合計:ある間隔で1パラメーターに渡されるすべての値の合計です。
  2. 平均:指定間隔で1パラメーターに渡される値の平均です。

あらゆるパラメーターは出現状況を追跡できるよう、次のメトリックを付けて送信されます。

合計

パラメーター 説明
パラメーター名 アプリケーションでユーザーが指定するパラメーター名です。
合計値 ある間隔における対応パラメーターの集約値を示します。

平均

パラメーター 説明
パラメーター名 アプリケーションでユーザーが指定するパラメーター名です。
合計値 ある間隔における対応パラメーターの集約値を示します。
最小値 特定間隔で捕捉したうちの最小値です。
最大値 特定間隔で捕捉したうちの最大値です。
総数 ヒットの総数を表します。

メモ:アプリ パラメーターAPIは、.NET、Java、Node.jsのエージェントでのみ利用できます。

.NETアプリケーションのインストールの手引き

  1. APMインサイト.NETエージェントのインストール
  2. インストール パスに見つかるDotNetAgent.Api.dllファイルを、お客さまアプリケーションへの参照に追加してください。
  3. 必要箇所に次のコード スニペットを記載します。

    構文

    合計:

    あるパラメーターに特定期間に渡された値の合計を指します。合計が空白の場合、1ずつ増えます。

  4. アプリケーションを公開すると、パラメーターのトラッキングが始まります。

    Javaアプリケーションのインストールの手引き

    1. APMインサイトJavaエージェントのインストール
    2. エージェント導入の要件に合うか確認ください。お客さまアプリケーションのビルドパスにあるAPI jar(apminsight-javaagent-api.jar)をバンドルしてください。WEB-INF/libに置くのが理想的です。
    3. 必要箇所に次のコード スニペットを記載します。

      構文

      合計:

      キーの値は1増えます。キーはポーリング間隔ごとにクリアされます。

      CustomMetric.increment(key_name)

      キーの値は指定値だけ増えます。キーはポーリング間隔ごとにクリアされます。

      CustomMetric.increment(key_name, value)

    4. アプリケーションを公開すると、パラメーターのトラッキングが始まります。

      アプリ パラメーターの表示

      アプリ パラメーターを表示するには

      1. Applications Managerアカウントにログインし、お客さまアプリケーション > アプリ パラメーターと進んでください。
      2. 演算や変数ごとに作成したアプリ パラメーターは、右側に表示されます。指定した名前と、パラメータータイプが合計か平均かもわかります。
      3. 表示するパラメーターをクリックしてください。将来の参考とするため、ビューの作成、保存、更新が可能です。


public ActionResult Register()

あるパラメーターに特定期間に渡された値の平均を示します。


{
DateTime st = DateTime.Now;
double myKeyValue = Convert.ToDouble(Request.QueryString[mykey]);

DotNetAgent.Api.CustomTracker.Increment(keyName, value); DotNetAgent.Api.CustomTracker.Average(keyName, value);

// パラメーターregisterは1増え、合計として送信される


DotNetAgent.Api.CustomTracker.Increment(register);

// パラメーターmykey

平均:DotNetAgent.Api.CustomTracker.Increment(keyName);

はmyKeyValueの分だけ増え、合計として送信される
DotNetAgent.Api.CustomTracker.Increment(mykey, myKeyValue);

double myKeyAvgValue = GetAverageValue();
// パラメーターmyavgkeyは値の分だけ増え、平均として送信される
DotNetAgent.Api.CustomTracker.Average(myavgkey, myKeyAvgValue);
return View();

}

平均:

値は集約後、エージェントが集計し、Applications Managerのサーバーに送出します。

CustomMetric.average(key_name, value)

private void generateReport(String type){
        CustomMetric.increment(type);
        // その他のアプリケーション コード
        double averageValue = getAverageValue();
        CustomMetric.average(type, averageValue);

}