カスタム傾向管理

カスタムトレンドは標準のNexthinkデータモデルを拡張し、既存データの日次スナップショットを保存し、最大13カ月にわたる進化を観察可能にします。

カスタムトレンドは最大200個まで構成することができます。

ライブラリからインストールされたカスタムトレンド

Nexthinkは、Nexthinkライブラリから手動でインストールできる一連の事前設定されたカスタムトレンドを提供しています。 Nexthinkインスタンス内のNexthinkライブラリモジュールに移動して、事前定義されたカスタムトレンドのインストール、管理、更新を行います。

詳細については、Nexthinkライブラリのドキュメントを参照してください。

新しいカスタムトレンド

ゼロからカスタムトレンドを作成することで、求めているデータをニーズやユースケースに応じて表示することができます。

詳細については、カスタムトレンドの作成 を参照してください。

カスタムトレンドページへのアクセス

  1. メインメニューからAdministrationを選択します。

  2. ナビゲーションパネルのコンテンツ管理セクションでカスタムトレンドをクリックします。

Accessing Custom trends

カスタムトレンド管理

カスタムトレンド管理ページは、すでに定義されたカスタムトレンドのリストを表示します。

  • テーブルの左上にある合計カスタムトレンド数を表示します。

  • ページの右上にある検索ボックスを使用して、名前でカスタムトレンドを検索し、リストされた結果を絞り込みます。

カスタムトレンドアクションメニューの使用

カスタムトレンドの横にある3つの垂直ドットアイコンにカーソルを置くと、次のオプションを含むアクションメニューが表示されます。

  • 編集: カスタムトレンド設定の詳細を表示し、名前、説明、NQLクエリを変更します。

  • タグを管理: 関連するタグを追加または削除します;

  • エクスポート: カスタムトレンドをJSON形式でダウンロードして保存します。

  • 削除: カスタムトレンドを削除します。

カスタムトレンドのインポート

ローカルデバイスからJSON形式のカスタムトレンドをインポートするには:

  1. 管理 > カスタム傾向ページの右上にあるインポートボタンをクリックします。

  2. 複数のJSONファイルをハードドライブから選択またはドラッグして、システムにインポートします。

インポートされたアイテムはすべてカスタムコンテンツとして分類されます。

Import custom trend

カスタムトレンドのタグ付け

タグ付けを行うことでカスタムトレンドを効率的に整理し、データの迅速かつ簡単なナビゲーションが可能になります;

右側のパネルにあるタグを開くと以下のことができます:

  • パネルの上部で特定のタグを検索します。

  • カスタムトレンドテーブルをフィルタリングするために1つ以上のタグを選択します。

カスタムトレンドに1つ以上のタグを追加するには、Administration > カスタムトレンドページから:

  1. カスタムトレンドの上にカーソルを合わせるとアクションメニューが表示され、タグを管理を選択します。

  2. タグを管理ポップアップから以下を行うことができます:

    • カスタムトレンドに追加する新しいタグを入力するか、既存のタグを選択します。

    • 特定のタグアイテムのアクションメニューを開いてタグを削除したり、タグの色を変更します;

      • タグを削除すると、そのタグは関連付けられているカスタムトレンドからのみ削除されます。

  3. あるいは、複数のカスタムトレンドを選択して一括でタグを管理します。

Managing tags in bulks

カスタムトレンドの作成

新しいカスタムトレンドを作成するには:

  1. カスタムトレンドページの右上にある新しいカスタムトレンドボタンをクリックします。

  2. カスタムトレンド設定ページで名前説明を入力します。

  3. 必要に応じて、NQLの一意の識別子であるクエリIDを調整します。

  4. このトレンドデータの意味と目的を理解するのに役立つように、オプションで説明を入力します。

  5. 日次スナップショット評価時にNexthinkプラットフォームが実行するNQLクエリを記述します。

カスタムトレンドを保存した後は、NQLクエリとクエリIDの値を変更することはできませんのでご注意ください。

Creating a custom trend

カスタムトレンド用NQLクエリの記述

クエリを記述する際には、以下のルールに従ってください:

  • クエリはdevicesネームスペースをターゲットにしなければなりません。

  • devicesのための許可された時間間隔は過去1日以内です。 この時間間隔を省略すると、システムに登録されているすべてのデバイスをターゲットにします。

  • クエリは、最大2つのinclude句と2つのcompute句を持つ必要があります。

  • イベントコレクションのためのinclude句の後に許可される唯一の時間間隔は過去1日以内です。 時間間隔を指定せずにオブジェクトコレクションを含めることができます。

  • Nexthinkは、compute句の結果に適用されるときにはwhere句を許可しません。

  • クエリは、デバイス名や従業員のメールアドレスなどの個人識別情報(PII)を含むことはできません。

  • クエリは最大2つのメトリック(数値)と最大5つのプロパティ(文字列、列挙、またはブール値)を含むlist句で終了しなければなりません。

  • システムは、as()sortlimitsummarizecountif()sumif()、またはwithキーワードを許可しません。

システムは、デフォルトでいくつかのデバイスプロパティを日次スナップショット評価時に含め、それらをデバイスのコンテキストの一部として保存します。 これには次が含まれます:

  • オペレーティングシステムプラットフォーム

  • オペレーティングシステム名

  • 所在地(国、州、場所の種類)

  • 組織(エンティティ、カスタム組織)

カスタムトレンドデータに含まれるデバイスの理解

カスタムトレンドの定義において、デバイスの活動に基づいてデバイスのセットを指定することができます。

  • カスタムトレンドの定義でdevicesテーブルの時間選択を省略することで、システムに登録されている**すべてのデバイス(過去30日間アクティブだったすべてのデバイス、データの解像度と保持を参照)**を含むスナップショットを保存します。

devices
| include … during past 1d 
| compute … 
| list …
  • カスタムトレンドの定義でdevicesの後に過去1日以内を追加して、スナップショットが取得された日にアクティブだったデバイスを含むスナップショットを保存します。

devices during past 1d
| include … during past 1d 
| compute … 
| list …. 

デバイスの時間枠を指定していない場合、同期間の運用データとの比較において若干の結果の不一致が予想されることがあります。

データ保持の承認

  • このトレンドデータが最大13カ月間システムに保存されることを確認するために、データ保持チェックボックスを選択します。

  • 新しいカスタムトレンドを保存するには、保存ボタンをクリックします。

カスタムトレンドの使用

カスタムトレンドを保存した後、新しいトレンドデータをNQLでクエリすることができます。 初期クエリは、カスタムトレンドの定義が保存された日の3日前からのデータのみを返します。 これにより、構成したカスタムトレンドが期待通りの形式でデータを返すかどうかを確認できます。

過去3日間に計算された初期データには、現在のデバイスコンテキスト情報のみが含まれます。

システムは追加のスナップショットを毎晩保存します。 スナップショットには、顧客のタイムゾーンで、計算日の深夜から前日の深夜までに発生したイベントが含まれます。

以下は、カスタムトレンドの定義で使用されるNQLクエリの例です:

devices 
| include execution.crashes past 1d 
| compute nb_crashes = number_of_crashes.sum() 
| list nb_crashes , hardware.manufacturer

| list句を使用してトレンドでメトリックとプロパティを保存することで、カスタムトレンドテーブル内に新しいフィールドを作成します。 システムは以下のルールに従って新しいフィールド名を構築します:

カスタムトレンド定義クエリで使用されるフィールド
カスタムトレンドテーブルのフィールド名
ルールの説明

nb_crashes

nb_crashes

クエリからのカスタムメトリックは、例のnb_crashesのように変更されません。

hardware.manufacturer

hardware_manufacturer

ピリオドはアンダースコア_に置き換えられます。

device.#custom_field

device__custom_field

先頭以外のハッシュ#はアンダースコア_に置き換えられます。

#custom_field

#custom_field

先頭のハッシュ#はカスタムトレンドフィールド名にそのまま残ります。

device.last_seen.time_elapsed()

device_last_seen_time_elapsed

関数の括弧()は省略されます。

上記の例で、カスタムトレンド定義の| list句の中でdevicesテーブルのhardware.manufacturerフィールドを使用すると、カスタムトレンドテーブルにhardware_manufacturerという名前の新しいフィールドが作成されます。

カスタムトレンドテーブルは以下のようになります:

バケット開始
コンテキスト
メトリック
プロパティ

19/01/2024 00:00:00 AM

デバイス1のコンテキスト情報

デバイス1のnb_crashes

デバイス1のhardware_manufacturer

19/01/2024 00:00:00 AM

デバイス2のコンテキスト情報

デバイス2のnb_crashes

デバイス2のhardware_manufacturer

19/01/2024 00:00:00 AM

デバイス3のコンテキスト情報

デバイス3のnb_crashes

デバイス3のhardware_manufacturer

19/01/2024 00:00:00 AM

….

20/01/2024 00:00:00 AM

デバイス1のコンテキスト情報

デバイス1のnb_crashes

デバイス1のhardware_manufacturer

20/01/2024 00:00:00 AM

デバイス2のコンテキスト情報

デバイス2のnb_crashes

デバイス2のhardware_manufacturer

20/01/2024 00:00:00 AM

デバイス3のコンテキスト情報

デバイス3のnb_crashes

デバイス3のhardware_manufacturer

20/01/2024 00:00:00 AM

Investigationsでカスタムトレンドデータをクエリしたり、ダッシュボードウィジェットを作成してタイムラインでトレンドを監視することができます。 カスタムトレンドデータを取得するための構文は以下の通りです:

custom_trend.<NQL ID>.snapshots ...
...

ウィジェットを構成する場合、既存のカスタムトレンドのNQL IDを使用して、特定のメトリックの時間経過による進化を視覚的に表現します。

Line chart configuration using a custom trend

トレンドアソシエーション

トレンドテーブルはdevicesテーブルと関連付けられています。 トレンドデータを取得する際には、これらの関連情報を使用してデバイスプロパティをクエリに含めることができます。 ただし、これらのプロパティは元のテーブルに保存されている限りのみ利用可能です。 詳細については、データ解像度と保持ページを参照してください。

hardware_manufacturerのようなカスタムトレンドフィールドは最大13ヶ月の保持期間がある一方、関連するデバイスのプロパティはシステムにデバイスが登録されている限り利用可能です。 デバイスを削除または匿名化するか、デバイスが30日以上非アクティブであった場合には、トレンドにデバイスプロパティが直接保存されていないため、クエリは"-"を返します。 これはデフォルトでカスタムトレンドが保存するデバイスコンテキスト情報には適用されず、こちらも13ヶ月間保持されます(このページのNQLクエリを用いたカスタムトレンドの作成を参照)。

カスタムトレンドの使用を最適化する

カスタムトレンドを効果的に利用するためには、トレンドデータのプロットはカスタムトレンドの設定とdashboardデザインの2段階のプロセスが必要であることを理解することが重要です(詳細な指示については、Live Dashboardsの管理を参照)。

追跡したいすべてのメトリックごとに必ずしもカスタムトレンドを作成する必要はないことに注意してください。 単一のカスタムトレンドはNQLデータモデルの拡張として機能し、さまざまなメトリックと集計の組み合わせで長期データをクエリすることができます。

カスタムトレンドの設定と取得に関する以下の推奨事項を考慮してください。

可能な場合、取得時にフィルタと集計を適用する

データのフィルタリングと集計の適用は、トレンド定義時ではなく、デバイスからの取得時に行うことをお勧めします。

ハードウェアメーカーごとにクラッシュを経験したデバイスの数についてトレンドラインをプロットしたい例を考えてみましょう。 可能な戦略はいくつかありますが、それらすべてが最適とは限りません。

最適でない戦略

最適ではない戦略としては、各ハードウェアプロバイダーごとにデバイスの集約を用いて複数のカスタムトレンド定義を作成することが含まれます。 以下のクエリは、特定のデバイスでクラッシュが発生しなかったときは0を、少なくとも1回クラッシュが発生した場合は1を示すデバイスのリストを返します。

devices
| where hardware.manufacturer == "my_provider1"
| include execution.crashes past 1d
| compute nb_devices = device.count()
| list nb_devices

カスタムトレンドデータを取得する際、フィルターは必要ありません。

custom_trend.#name.snapshots during past 300d
| summarize my_provider1_with_crashes = nb_devices.sum() by 1d

最適な戦略

最適な戦略では、クラッシュの数をメトリクスとして、ハードウェアメーカーをプロパティとしてスナップショットを作成し、1つのカスタムトレンド定義を作成します。

devices
| include execution.crashes past 1d
| compute nb_crashes = number_of_crashes.sum()
| list nb_crashes , hardware.manufacturer

カスタムトレンドデータを取得する際に、

  • 少なくとも1回のクラッシュと関連するハードウェアプロバイダーがあるデバイスをフィルタリングします。

custom_trend.#name.snapshots during past 300d
| where nb_crashes > 0
| where hardware_manufacturer == "my_provider1"
| summarize my_provider1_with_crashes = count() by 1d
  • 別の方法として、少なくとも1回クラッシュが発生したデバイスのみに条件付き集計を使用し、追加のグループ化をハードウェアプロバイダーで行います。

custom_trend.#execution_crashes.snapshots during past 300d
| summarize
fraction_with_crashes_per_manifacturer = countif(nb_crashes > 0) / count()
by 1d, hardware_manufacturer
二重集計を慎重に使用する

カスタムトレンドを使用すると、カスタムトレンド定義内に集計を組み込むことが可能です。 トレンドデータの取得時にも追加の集計を行うことができます。 ただし、スナップショットは定義で使用された集計に関する情報を失うことに注意が必要です(usersなどのユニークなオブジェクトに対してcount()を使用する場合を除きます)。

次の例を考えてみましょう。 カスタムトレンド定義のNQLは、与えられた日中の各デバイスの平均ブート時間を含むスナップショットを作成します。

devices during past 1d
| include device_performance.boots during past 1d
| compute boot_duration = duration.avg()

データを取得する際に、すべてのデバイスでの一日のスナップショットの平均を計算することができます。

custom_trend.#name.snapshots
| summarize c1 = boot_duration.avg() by 1d

この場合、avg()集計によって返される結果は、各デバイスの平均値の合計をブートがあるデバイスの数で割ったものになります。

スナップショットの失敗をトラブルシューティングする

カスタムトレンドログの調査

スナップショットの計算はさまざまな理由で失敗することがあります。たとえば、カスタムフィールド組織構造などの動的データモデルの変更によりカスタムトレンドNQLクエリの定義が誤っている場合や、システムが一時的に障害を経験した場合などです。 失敗は不完全なカスタムトレンドデータの原因となる可能性があります。 これらの失敗を理解することは、ダッシュボードに表示されるデータの問題に迅速に対処し、可視性を向上させるために重要です。

システムは各カスタムトレンド計算を、計算時間、ステータス、カスタムトレンドNQL IDなどの詳細とともにplatform.custom_trends_logsテーブルに保存します。 特定のカスタムトレンド計算の失敗の原因を調査するために次のNQLクエリを使用します。

platform.custom_trends_logs during past 30d
| where status = failure
| where details.nql_id ="#my_custom_trend_ID"
| list custom_trends_log.time, 
       custom_trends_log.status, 
       details.description, 
       details.n_retries, 
       details.nql_id

Nexthinkは、すべてのカスタムトレンド失敗を検出するモニターを設定し、情報を把握し迅速に対応することを推奨しています。 次のモニターNQLクエリと設定を使用してください。

platform.custom_trends_logs during past 24h
| where status = failure
| summarize failing_computations = count() by details.nql_id

詳細については、カスタムモニターの作成ページをご覧ください。

トレンドバックフィル

Nexthinkは、予期しない技術的障害によるカスタムトレンドデータのギャップを防ぐメカニズムを使用しています。 システムが特定の日のスナップショットの計算と保存に失敗した場合、次の日の計算中に、現在のスナップショットを計算する前に不足しているデータの計算を試みます。 このメカニズムは過去最大3日間のデータを回復することができ、問題を解決しダッシュボード上のトレンドの継続性を維持するための追加の時間を提供します。

過去の日から計算されたデータには、現在の日からのデバイスコンテキスト情報のみが含まれます。

パーミッション

  • ユーザーロールにすべてのカスタムトレンドデータを管理する権限がある場合、Nexthink webインターフェースでカスタムトレンドを作成できます。

  • ユーザーロールにNQLでPlatformログを表示する権限がある場合、platform.custom_trends_logsテーブルにアクセスできます。

詳細については、役割ドキュメントを参照してください。

Last updated

Was this helpful?