カスタム傾向管理
カスタムトレンドは標準のNexthinkデータモデルを拡張し、既存データの日次スナップショットを保存し、最大13カ月にわたる進化を観察可能にします。
ライブラリからインストールされたカスタムトレンド
Nexthinkは、Nexthinkライブラリから手動でインストールできる一連の事前設定されたカスタムトレンドを提供しています。 Nexthinkインスタンス内のNexthinkライブラリモジュールに移動して、事前定義されたカスタムトレンドのインストール、管理、更新を行います。
詳細については、Nexthinkライブラリのドキュメントを参照してください。
新しいカスタムトレンド
ゼロからカスタムトレンドを作成することで、求めているデータをニーズやユースケースに応じて表示することができます。
詳細については、カスタムトレンドの作成 を参照してください。
カスタムトレンドページへのアクセス
メインメニューからAdministrationを選択します。
ナビゲーションパネルのコンテンツ管理セクションでカスタムトレンドをクリックします。

カスタムトレンド管理
カスタムトレンド管理ページは、すでに定義されたカスタムトレンドのリストを表示します。
テーブルの左上にある合計カスタムトレンド数を表示します。
ページの右上にある検索ボックスを使用して、名前でカスタムトレンドを検索し、リストされた結果を絞り込みます。
カスタムトレンドアクションメニューの使用
カスタムトレンドの横にある3つの垂直ドットアイコンにカーソルを置くと、次のオプションを含むアクションメニューが表示されます。
編集: カスタムトレンド設定の詳細を表示し、名前、説明、NQLクエリを変更します。
タグを管理: 関連するタグを追加または削除します;
エクスポート: カスタムトレンドをJSON形式でダウンロードして保存します。
削除: カスタムトレンドを削除します。

カスタムトレンドのインポート
ローカルデバイスからJSON形式のカスタムトレンドをインポートするには:
管理 > カスタム傾向ページの右上にあるインポートボタンをクリックします。
複数のJSONファイルをハードドライブから選択またはドラッグして、システムにインポートします。
インポートされたアイテムはすべてカスタムコンテンツとして分類されます。

カスタムトレンドのタグ付け
タグ付けを行うことでカスタムトレンドを効率的に整理し、データの迅速かつ簡単なナビゲーションが可能になります;
右側のパネルにあるタグを開くと以下のことができます:
パネルの上部で特定のタグを検索します。
カスタムトレンドテーブルをフィルタリングするために1つ以上のタグを選択します。
カスタムトレンドに1つ以上のタグを追加するには、Administration > カスタムトレンドページから:
カスタムトレンドの上にカーソルを合わせるとアクションメニューが表示され、タグを管理を選択します。
タグを管理ポップアップから以下を行うことができます:
カスタムトレンドに追加する新しいタグを入力するか、既存のタグを選択します。
特定のタグアイテムのアクションメニューを開いてタグを削除したり、タグの色を変更します;
タグを削除すると、そのタグは関連付けられているカスタムトレンドからのみ削除されます。
あるいは、複数のカスタムトレンドを選択して一括でタグを管理します。

カスタムトレンドの作成
新しいカスタムトレンドを作成するには:
カスタムトレンドページの右上にある新しいカスタムトレンドボタンをクリックします。
カスタムトレンド設定ページで名前と説明を入力します。
必要に応じて、NQLの一意の識別子であるクエリIDを調整します。
このトレンドデータの意味と目的を理解するのに役立つように、オプションで説明を入力します。
日次スナップショット評価時にNexthinkプラットフォームが実行するNQLクエリを記述します。

カスタムトレンド用NQLクエリの記述
クエリを記述する際には、以下のルールに従ってください:
クエリは
devices
ネームスペースをターゲットにしなければなりません。devices
のための許可された時間間隔は過去1日以内
です。 この時間間隔を省略すると、システムに登録されているすべてのデバイスをターゲットにします。クエリは、最大2つの
include
句と2つのcompute
句を持つ必要があります。イベントコレクションのための
include
句の後に許可される唯一の時間間隔は過去1日以内
です。 時間間隔を指定せずにオブジェクトコレクションを含めることができます。Nexthinkは、
compute
句の結果に適用されるときにはwhere
句を許可しません。クエリは、デバイス名や従業員のメールアドレスなどの個人識別情報(PII)を含むことはできません。
クエリは最大2つのメトリック(数値)と最大5つのプロパティ(文字列、列挙、またはブール値)を含む
list
句で終了しなければなりません。システムは、
as()
、sort
、limit
、summarize
、countif()
、sumif()
、またはwith
キーワードを許可しません。
日時メトリクスの制限事項
カスタムトレンドは、データ型のサブセットのみをネイティブでサポートしています。 ほとんどの場合、これは機能性に影響を与えません。 しかし、日時メトリクスはネイティブタイプとして保存されていないため、NQL time_elapsed()やNQL 日時関数のようなタイムスタンプ機能を使用することはできません。
システムは、デフォルトで一部のデバイスプロパティを日次スナップショットの評価に含め、そのデバイスのコンテキストの一部として保存します。 これには次の内容が含まれます:
オペレーティングシステムプラットフォーム
オペレーティングシステム名
ロケーション(国、州、ロケーションタイプ)
組織(エンティティ、カスタム組織)
カスタムトレンドデータに含まれるデバイスの理解
カスタムトレンドを定義する際、デバイスの活動に基づいてデバイスのセットを指定できます。
システムに登録されているすべてのデバイス(過去30日以内にアクティブだったすべてのデバイス、詳細はデータ解像度と保持期間をご覧ください)でスナップショットを保存するには、
デバイステーブル
の時間選択を省略し、カスタムトレンドの定義に入れます。
devices
| include … during past 1d
| compute …
| list …
スナップショットを取った当日にアクティブだったデバイスでスナップショットを保存するには、カスタムトレンドの定義において
デバイス
の後に過去1日間
を追加してください。
devices during past 1d
| include … during past 1d
| compute …
| list ….
データ保持を承認するためにデータ保持チェックボックスを選択してください。このトレンドデータはシステム内で13か月間保存されます。
データ保持を承認するためにデータ保持チェックボックスを選択してください。このトレンドデータはシステム内で13か月間保存されます。
新しいカスタムトレンドを保存するには保存ボタンをクリックしてください。
カスタムトレンドの使用法
カスタムトレンドを保存した後、NQLを使用して新しいトレンドデータをクエリすることができます。 最初は、クエリはカスタムトレンド定義を保存した日の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
…
調査でカスタムトレンドデータをクエリしたり、タイムラインでトレンドを監視するダッシュボードウィジェットを作成したりすることができます。 カスタムトレンドデータを取得するための構文は次のとおりです:
{% code lineNumbers="true" %}
`
`` custom_trend..snapshots ... ...
</div>
ウィジェットを構成する際には、既存のカスタムトレンドのNQL IDを使用して、特定のメトリックの時間に伴う進化を視覚的に表現します。
<figure><img src="../../../../.gitbook/assets/customtrends-1707990723.png" alt="Line chart configuration using a custom trend" width="760"><figcaption></figcaption></figure>
### トレンドの関連付け
トレンドテーブルは`デバイステーブル`と関連付けられています。 トレンドデータを取得する際に、これらの関連を利用して、デバイスの特性をクエリに含めることができます。 ただし、これらの特性はオリジナルのテーブルに保存されている限りのみ利用可能です。 詳細は[データ解像度と保持期間](../../../../getting-started/understanding-key-data-platform-concepts/data-resolution-and-retention.md)ページをご覧ください。
カスタムトレンドフィールド(`hardware_manufacturer`など)には最大13ヶ月の保持期間がありますが、関連付けられたデバイスの特性は、デバイスがシステムに登録されている限り利用可能です。 デバイスを削除または匿名化した場合、またはデバイスが30日以上非アクティブであれば、クエリは「-」を返します。これはデバイス特性がトレンドに直接保存されていないためです。 これは、カスタムトレンドがデフォルトで保存するデバイスコンテキスト情報には該当せず、それも13か月間保持されます(このページで[カスタムトレンド用のNQLクエリの作成]をご覧ください)。
## カスタムトレンドの最適な活用法
カスタムトレンドを効果的に活用するためには、トレンドデータのプロットは、カスタムトレンドの構成とダッシュボード設計という2段階のプロセスを伴うことを理解することが重要です(詳細な指示については[ライブダッシュボードの管理](../../../live-dashboards/managing-live-dashboards.md)を参照してください)。
すべての追跡したい指標に対して個別のカスタムトレンドを作成する必要はないことに注意することが重要です。 単一のカスタムトレンドはNQLデータモデルの拡張として機能し、さまざまな指標と集計の組み合わせを用いて長期データをクエリすることができます。
カスタムトレンドの構成および取得に関する以下の推奨事項を検討してください:
<details>
<summary>可能であれば、取得時にフィルターおよび集計を適用する</summary>
データのフィルタリングと集計は、トレンド定義ではなく取得時にデバイスで行うことをお勧めします。
デバイスがハードウェアメーカーごとにクラッシュを経験している数をトレンドラインとしてプロットする例を考えてみましょう。 いくつかの戦略が可能ですが、すべてが最適ではありません。
**非最適戦略**
非最適戦略では、各ハードウェアプロバイダーごとに個別のカスタムトレンド定義を作成し、デバイスでの集計を行うことになります。 次のクエリは、特定のデバイスでクラッシュが発生しなかった場合は0、少なくとも1回クラッシュが発生した場合は1を示すデバイスのリストを返します。
<div data-gb-custom-block data-tag="code" data-lineNumbers='true'>
devices | where hardware.manufacturer == "my_provider1" | include execution.crashes past 1d | compute nb_devices = device.count() | list nb_devices
</div>
カスタムトレンドデータを取得する際には、フィルターは不要です。
<div data-gb-custom-block data-tag="code" data-lineNumbers='true'>
custom_trend.#name.snapshots during past 300d | summarize my_provider1_with_crashes = nb_devices.sum() by 1d
</div>
**最適戦略**
最適戦略としては、1つのカスタムトレンド定義を作成し、クラッシュ数をメトリクスとしてスナップショットし、ハードウェアメーカーをプロパティとして設定します:
<div data-gb-custom-block data-tag="code" data-lineNumbers='true'>
devices | include execution.crashes past 1d | compute nb_crashes = number_of_crashes.sum() | list nb_crashes , hardware.manufacturer
</div>
カスタムトレンドデータの取得時:
- 少なくとも1回のクラッシュを持ち、関連するハードウェアプロバイダーを持つデバイスをフィルター:
<div data-gb-custom-block data-tag="code" data-lineNumbers='true'>
custom_trend.#name.snapshots during past 300d | where nb_crashes > 0 | where hardware_manufacturer == "my_provider1" | summarize my_provider1_with_crashes = count() by 1d
</div>
- あるいは、条件付き集計を使用して、1回以上のクラッシュを持つデバイスのみを要約し、ハードウェアプロバイダーごとに追加のグループ化を行う:
<div data-gb-custom-block data-tag="code" data-lineNumbers='true'>
custom_trend.#execution_crashes.snapshots during past 300d | summarize fraction_with_crashes_per_manifacturer = countif(nb_crashes > 0) / count() by 1d, hardware_manufacturer
</div>
</details>
<details>
<summary>二重集計を思慮深く使用する</summary>
カスタムトレンドでは、カスタムトレンド定義に集計を組み込むことができます。 トレンドデータの取得時に追加の集計を行うこともできます。 ただし、スナップショットは定義に使用された集計に関する情報を失うことに留意してください(`count()`をユニークなオブジェクト(`users`など)に使用した場合を除く)。
次の例を考えてみましょう。 カスタムトレンド定義のNQLでは、特定の日におけるデバイスごとの平均起動時間を含むスナップショットを作成します。
<div data-gb-custom-block data-tag="code" data-lineNumbers='true'>
devices during past 1d | include device_performance.boots during past 1d | compute boot_duration = duration.avg()
</div>
データを取得する際には、すべてのデバイスで日次スナップショットの平均を計算することができます。
<div data-gb-custom-block data-tag="code" data-lineNumbers='true'>
custom_trend.#name.snapshots | summarize c1 = boot_duration.avg() by 1d
</div>
この場合、avg()集計によって返される結果は、単に各デバイスの平均値の合計を起動のあるデバイス数で割ったものになります。
</details>
## スナップショット失敗のトラブルシューティング<a href="#troubleshooting-snapshot-failures" id="troubleshooting-snapshot-failures"></a>
#### カスタムトレンドログの調査
スナップショット計算はさまざまな理由で失敗する可能性があります。たとえば、[カスタムフィールド](../custom-fields-management.md) や [組織構造](../../system-configuration/product-configuration.md#organization) のような動的データモデルの変更による不正確なカスタムトレンド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
<figure><img src="../../../../.gitbook/assets/custom_trend_alert.png" alt=""><figcaption></figcaption></figure>
詳細については、[カスタムモニターの作成](../../../alerts-and-diagnostics/managing-alerts/creating-custom-monitors/) ページを参照してください。
#### トレンドバックフィル
Nexthinkでは、予期せぬ技術的な障害により発生したカスタムトレンドデータのギャップを防ぐメカニズムを使用しています。 システムが特定の日のスナップショットを計算し保存することに失敗した場合、翌日の計算時に、現在のスナップショットを計算する前に、欠けているデータを計算することが試みられます。 このメカニズムは過去3日間のデータを復旧でき、問題に対処してダッシュボード上でトレンドの連続性を維持するための時間を追加で提供します。
<div data-gb-custom-block data-tag="hint" data-style='info'>
過去の日数から計算されたデータは、現在の日付のデバイスコンテキスト情報のみを含みます。
</div>
## アクセス権限 <a href="#customtrendsmanagement-permissionspermissions" id="customtrendsmanagement-permissionspermissions"></a>
- Nexthinkのウェブインターフェースで、ユーザー役割に**すべてのカスタムトレンドデータを管理する**権限がある場合、カスタムトレンドを作成できます。 
- ユーザー役割にNQLでプラットフォームログの**閲覧権限**がある場合、`platform.custom_trends_logs`テーブルにアクセスできます。
詳細については、[役割](../../account-management/roles/)のドキュメントをご参照ください。
Last updated
Was this helpful?