カスタム傾向管理

カスタムトレンドは標準の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キーワードを許可しません。

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

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

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

  • ロケーション(国、州、ロケーションタイプ)

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

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

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

  • システムに登録されているすべてのデバイス(過去30日以内にアクティブだったすべてのデバイス、詳細はデータ解像度と保持期間をご覧ください)でスナップショットを保存するには、デバイステーブルの時間選択を省略し、カスタムトレンドの定義に入れます。

devices
| include … during past 1d 
| compute … 
| list …
  • スナップショットを取った当日にアクティブだったデバイスでスナップショットを保存するには、カスタムトレンドの定義においてデバイスの後に過去1日間を追加してください。

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

デバイスタイムフレームを指定していない場合、同じ期間の運用データとトレンドデータを比較するときに、わずかな不一致が生じる可能性があります。

データ保持を承認するためにデータ保持チェックボックスを選択してください。このトレンドデータはシステム内で13か月間保存されます。

  • データ保持を承認するためにデータ保持チェックボックスを選択してください。このトレンドデータはシステム内で13か月間保存されます。

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

カスタムトレンドの使用法

カスタムトレンドを保存した後、NQLを使用して新しいトレンドデータをクエリすることができます。 最初は、クエリはカスタムトレンド定義を保存した日の3日前からのデータのみを返します。 これにより、設定したカスタムトレンドが期待通りのフォーマットでデータを返すかどうかを確認できます。

3日前の初期データは、現在の日のデバイスコンテキスト情報のみを含みます。

システムは毎晩追加のスナップショットを保存します。 スナップショットは、顧客のタイムゾーンにおける前日の午前0時から計算日の午前0時までのイベントを含みます。

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

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

| リスト句を使用してトレンドにメトリクスと特性を保存すると、カスタムトレンドテーブルに新しいフィールドが作成されます。 システムは以下のルールに従って新しいフィールド名を構築します:

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

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

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

前述した例では、カスタムトレンド定義の|リスト句で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

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

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

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

Line chart configuration using a custom trend

トレンドの関連付け

トレンドテーブルはデバイステーブルと関連付けられています。 トレンドデータを取得する際に、これらの関連を利用して、デバイスの特性をクエリに含めることができます。 ただし、これらの特性はオリジナルのテーブルに保存されている限りのみ利用可能です。 詳細はデータ解像度と保持期間ページをご覧ください。

カスタムトレンドフィールド(hardware_manufacturerなど)には最大13ヶ月の保持期間がありますが、関連付けられたデバイスの特性は、デバイスがシステムに登録されている限り利用可能です。 デバイスを削除または匿名化した場合、またはデバイスが30日以上非アクティブであれば、クエリは「-」を返します。これはデバイス特性がトレンドに直接保存されていないためです。 これは、カスタムトレンドがデフォルトで保存するデバイスコンテキスト情報には該当せず、それも13か月間保持されます(このページで[カスタムトレンド用のNQLクエリの作成]をご覧ください)。

カスタムトレンドの最適な活用法

カスタムトレンドを効果的に活用するためには、トレンドデータのプロットは、カスタムトレンドの構成とダッシュボード設計という2段階のプロセスを伴うことを理解することが重要です(詳細な指示についてはライブダッシュボードの管理を参照してください)。

すべての追跡したい指標に対して個別のカスタムトレンドを作成する必要はないことに注意することが重要です。 単一のカスタムトレンドは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
二重集計を思慮深く使用する

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

次の例を考えてみましょう。 カスタムトレンド定義の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クエリ定義が原因であったり、システムの一時的な障害が原因であったりします。 失敗は不完全なカスタムトレンドデータの結果となる場合があります。 これらの失敗を理解することは、問題を迅速に解決し、ダッシュボードに表示されるデータの問題に対して視認性を向上するために重要です。

システムは、platform.custom_trends_logs テーブル内にカスタムトレンド計算の各詳細、例えば計算時間、ステータス、カスタムトレンドNQL IDなどを保存します。 特定のカスタムトレンド計算の失敗原因を調査するために、以下の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のウェブインターフェースで、ユーザー役割にすべてのカスタムトレンドデータを管理する権限がある場合、カスタムトレンドを作成できます。

  • ユーザー役割にNQLでプラットフォームログの閲覧権限がある場合、platform.custom_trends_logsテーブルにアクセスできます。

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

Last updated

Was this helpful?