Azure Time Series Insights Gen1 環境の問題を診断して解決する

Note

Time Series Insights サービスは、2024 年 7 月 7 日に廃止されます。 できるだけ早く既存の環境を代替ソリューションに移行することを検討してください。 サポートの終了と移行の詳細については、こちらのドキュメントを参照してください。

注意事項

これは Gen1 の記事です。

この記事では、Azure Time Series Insights 環境で発生する可能性がある問題について説明します。 この記事では、考えられる原因と解決のためのソリューションを示します。

ビデオ

Azure Time Series Insights の一般的な課題と軽減策の説明

問題: データが表示されない

Azure Time Series Insights エクスプローラーにデータが表示されない場合は、次の一般的な原因を検討してください。

原因 A: イベント ソース データが JSON 形式でない

Azure Time Series Insights は JSON データのみをサポートしています。 JSON のサンプルについては、「サポートされている JSON 構造」を参照してください。

原因 B: イベント ソース キーに必要なアクセス許可がない

  • Azure IoT Hub の IoT ハブの場合は、サービス接続アクセス許可があるキーを指定する必要があります。 iothubowner または service ポリシーのいずれかを選択します。 どちらにもサービス接続のアクセス許可があります。

    IoT Hub サービス接続のアクセス許可

  • Azure Event Hubs のイベント ハブの場合は、リッスン アクセス許可があるキーを指定する必要があります。 読み取りポリシーと管理ポリシーは両方ともリッスン アクセス許可があるため、どちらも機能します。

    イベント ハブのリッスン アクセス許可

原因 C: 指定したコンシューマー グループが Azure Time Series Insights 専用ではない

IoT Hub またはイベント ハブを登録するときに、データの読み取りに使用するコンシューマー グループを設定する必要があります。 このコンシューマー グループは共有できません。 コンシューマー グループを共有すると、基盤となる IoT Hub またはイベント ハブによってリーダーのいずれかが自動的にランダムに切断されます。 Azure Time Series Insights が読み取る一意のコンシューマー グループを指定します。

原因 D: 環境がプロビジョニングされた直後

Azure Time Series Insights Explorer にデータが表示されるのは、環境とそのデータが最初に作成されてから数分後です。

問題: 表示されるデータと表示されないデータがある

データが部分的にのみ表示され、データが遅れているように見える場合は、次のような問題が考えられます。

原因 A: 環境が調整されている

調整は、データを持つイベント ソースを作成した後で、環境をプロビジョニングするときの一般的な問題です。 Azure IoT Hub と Azure Event Hubs は、データを最長 7 日間格納します。 Azure Time Series Insights は常に、イベント ソース内の最も古いイベントから開始します (先入れ先出し (FIFO))。

たとえば、単一ユニットの Azure Time Series Insights 環境である S1 に接続するときに、イベント ソースに 500 万イベントがある場合、Azure Time Series Insights は 1 日あたり約 100 万イベントを読み取ります。 Azure Time Series Insights に 5 日の待ち時間が発生しているように見えます。 しかし、実際に起きているのは、環境の調整です。

イベント ソースに古いイベントがある場合、次の 2 つのうちいずれかの方法で調整にアプローチできます。

  • イベント ソースのリテンション期間を変更して、Azure Time Series Insights に表示したくない古いイベントが除去されるようにします。
  • プロビジョニングする環境サイズを大きくして (ユニット数)、古いイベントのスループットを増やします。 前の例では、同じ S1 環境を 1 日あたり 5 ユニットに増やすと、その環境で 1 日以内に追いつくはずです。 安定状態でのイベント生成が 1 日あたり 100 万イベント以下である場合は、Azure Time Series Insights で追いついた後、イベント容量を 1 ユニットに減らすことができます。

適用される調整制限は、環境の SKU のタイプと容量に基づきます。 環境内のすべてのイベント ソースで、この容量が共有されます。 IoT Hub またはイベント ハブのイベント ソースが適用される制限を超えるデータをプッシュする場合は、調整が行われ、タイム ラグが発生します。

次の図は、SKU が S1 で容量が 3 の Azure Time Series Insights 環境を示しています。 この環境は、1 日あたり 300 万イベントを受信できます。

環境容量

ある環境でイベント ハブからメッセージを取り込むとしましょう。 1 日に約 67,000 メッセージのイングレス レートがあります。 このレートは毎分およそ 46 メッセージに相当します。

  • 各イベント ハブ メッセージが 1 つの Azure Time Series Insights イベントにフラット化されている場合、調整は行われません。
  • 各イベント ハブ メッセージが 100 個の Azure Time Series Insights イベントにフラット化されている場合は、毎分 4,600 イベントを受信することになります。

容量 3 の S1 SKU 環境は、毎分 2,100 イベントしか受信できません (100 万イベント/日 = 700 イベント/分 × 3 ユニット = 2,100 イベント/分)。

フラット化ロジックのしくみについては、「クエリのパフォーマンスを最大化するための JSON の調整」を参照してください。

タイム ラグを解消するには、環境の SKU 容量を増やします。 詳細については、Azure Time Series Insights 環境のスケーリングに関するページを参照してください。

原因 B: 履歴データの初回取り込みで受信が遅くなる

既存のイベント ソースを接続している場合は、IoT Hub またはイベント ハブに既にデータが含まれている可能性があります。 環境はイベント ソース メッセージのリテンション期間の始めからデータをプルし始めます。 この既定の処理は、上書きできません。 調整に関与できます。 調整は履歴データを取り込むので、追いつくまでしばらく時間がかかる可能性があります。

ラグを解消するには:

  1. SKU 容量を最大許容値 (この場合は 10) に増やします。 容量を増やすと、受信プロセスが開始しより短い時間で追いつくようになります。 なお、容量の増加分には料金が発生します。 どれくらいの時間で追いつくかを視覚化するために、Azure Time Series Insights Explorer の可用性グラフを表示できます。

  2. ラグが解消したら、SKU 容量は通常の受信レートまで低下します。

問題: 以前に表示されていたデータが、表示されなくなった

Azure Time Series Insights でデータが取り込まれなくなったのに、イベントが引き続き Iot Hub またはイベント ハブにストリーミングされている場合は、次のような問題が考えられます。

原因 A: ハブ アクセス キーが再生成されたため、環境を更新する必要がある

この問題は、イベント ソースの作成時に提供されたキーが有効ではなくなったときに発生します。 テレメトリはハブに表示されますが、Azure Time Series Insights にイングレス受信メッセージが表示されません。 キーが再生成されたかどうかが不明な場合は、イベント ハブのアクティビティ ログで "名前空間の承認規則の作成または更新" を検索できます。IoT ハブの場合は、"IotHub リソースの作成または更新" を検索します。

新しいキーで Azure Time Series Insights 環境を更新するには、Azure portal でお使いのハブ リソースを開き、新しいキーをコピーします。 Azure Time Series Insights リソースにアクセスし、[イベント ソース] を選択します。

[イベント ソース] の選択

インジェストが停止した 1 つまたは複数のイベント ソースを選択し、新しいキーを貼り付けて、[保存] を選択します。

新しいキーを貼り付ける

問題: イベント ソースのタイムスタンプ プロパティ名の設定が機能しない

イベント ソースから JSON 文字列として取得されるタイムスタンプ プロパティ値が確実に yyyy-MM-ddTHH:mm:ss.FFFFFFFK の形式であるようにします。 たとえば、2008-04-12T12:53Z となります。

タイムスタンプ プロパティ名では大文字と小文字が区別されることにご注意ください。

タイムスタンプ プロパティ名がキャプチャされて正しく動作していることを確認する最も簡単な方法は、Azure Time Series Insights Explorer を使用することです。 Azure Time Series Insights Explorer 内でグラフを使用して、タイムスタンプのプロパティ名を入力した後で期間を選択します。 選択内容を右クリックして、[イベントの探索] を選択します。

最初の列見出しは、タイムスタンプ プロパティ名になるはずです。 "Timestamp" という語の横に ($ts) が表示されます。

次の値は表示されません。

  • (abc): Azure Time Series Insights がデータ値を文字列として読み取っていることを示します。
  • カレンダー アイコン: Azure Time Series Insights がデータ値を日時値として読み取っていることを示します。
  • #: Azure Time Series Insights がデータ値を整数として読み取っていることを示します。

次のステップ