スケジューリングされたクエリからの分析メトリックの作成
このページでは、スケジューリングされたクエリから分析メトリックを作成する方法について説明します。
分析検索を繰り返し実行して値をモニタする場合は、検索からメトリックを作成できます。検索は 1 分に 1 回実行され、結果がメトリックとしてレポートされます。およびをトリガーする正常性ルールを使用して、通常の方法でメトリックにアラートを作成できます。分析メトリックリストは検索可能です。
すべての分析イベントタイプ(ブラウザ、モバイル、トランザクション、ログ、カスタム)に対してメトリックを作成できます。
次の表に示す関数の分析検索からメトリックを作成できます。経時的なメトリックデータの精度経時的なメトリックデータの精度
| 機能 | メトリック ロールアップ タイプ | 例 |
|---|---|---|
| count(* | field_name) | sum | SELECT count( activeMacUsers) FROM dummyTransactions |
|
distinctcount(field_name) | average | SELECT distinctcount(activeMacUsers) FROM dummyTransactions |
|
sum(numeric_field_name) | sum | SELECT sum(responseTime)where userExperience = "NORMAL" FROM transactions |
|
avg(numeric_field_name) |
average | SELECT avg(responseTime) FROM transactions |
| min(numeric_field_name) |
average | SELECT min(responseTime) FROM transactions |
|
max(numeric_field_name) |
average | SELECT max(responseTime) FROM transactions |
| (exp1)/(exp2) | average |
SELECT (count(activeMacUsers)) / (avg(activeWindowsUsers)) FROM dummyTransactionsSELECT (avg(responseTime)*2)/((avg(segments.transactionTime)+3)/2) FROM transactionsSELECT (sum(responseTime)*2)/(filter(sum(responseTime), where userExperience = "NORMAL") + 0.5) FROM transactions 注: 式の各側はカッコで囲む必要があります。
|
分析メトリックの作成
メトリックは過去 1 分間にパブリッシュされたイベントに対して作成されるため、タイムスタンプメトリックは常にその時点(1 分間)からイベントを集約します。
eventTimestamp フィールドに値を指定した場合、新しいメトリックのタイムスタンプ値は、pickupTimestamp フィールドのイベントの集約を使用します。
eventTimestampたとえば、前日のイベントの を設定します。次に、今日のイベントのメトリックを作成します。メトリックは、その時点(1 分間)からではなくなるため、明示的な eventTimestamp を使用しません。メトリックは、pickupTimestamp を使用してイベントを集約します。pickupTimestamp は明示的に変更できないため、これにより、メトリックのタイムスタンプがその時点(1 分間)に基づいていることが保証されます。
分析イベント API 分析イベント API
複数のイベントからのメトリックの関連付け
クエリを作成すると、Splunk AppDynamics は全体的なメトリックを生成します。クエリされたデータはさまざまなイベントから取得されているため、イベントサービスは、このセグメント化されたデータを取得し、つなぎ合わせて単一のメトリックを生成する必要があります。イベントサービスは、相関イベントを検出するまで待機します。最大待機時間は、イベントタイプによって次のように異なります。
- モバイルおよびブラウザセッションイベント:2 分。
- トランザクションイベント:10 秒
イベントサービスが相関イベントを検出すると、待機時間がリセットされます。
最大待機時間の後にイベントが到着した場合、イベントはクエリで正しく結合されません。たとえば、次のクエリでは、fieldA と fieldB は別々ですが相関イベントです。
select count(*) from transactions where fieldA = "foo" and fieldB = "bar"イベントサービスは fieldA を検出し、相関イベントを 10 秒間待機します。fieldB が fieldA の 15 秒後に到着した場合、イベントサービスは両方のイベントを関連付けません。両方のイベントが関連付けられていないため、カウントメトリックは不正確となります。
分析メトリックのモニタリング
パフォーマンス上の理由により、分析メトリックで使用されるスケジュールされたクエリは、次のように無効になる場合があります。
- イベントサービスを呼び出した結果、10 回連続してエラーが発生した場合、クエリは無効になります。
- メンテナンス期間やアップグレード期間など、イベントサービスにコントローラから到達できない場合、クエリは無効になりません。
- コントローラを再起動すると、連続して失敗したためにシステムによって無効にされたクエリは再び有効になります。
- ユーザが無効にしたクエリは、システムの再起動後も無効のままになります。
メトリックをモニタするには:
メトリック集約がタイムアウトした場合、アプリケーションは分析メトリックを表示しない場合があります。管理者は、コントローラでメトリック集約を再試行するアプリケーションを指定できます。
-
管理者コンソールにログインします。
http:<controller-hostname>:<controller-port>/controller/admin.js - [Controller Settings] で、
appdynamics.controller.apps.metric.refill.enabled.listフラグを検索します。 - メトリック集約がタイムアウトした場合、コントローラは、このコントローラ設定フラグで指定されたアプリケーションでのみメトリック集約を再試行します。