Azure Cosmos DBのクエリ実行テレメトリ更新とは?変更点と管理者・開発者の確認事項

Azure Cosmos DBの今回の更新は、Data Explorerでクエリを実行したときのテレメトリを強化する変更です。結論から言うと、データベースの仕様、SQL構文、RU課金、アプリケーション側SDKの動作が変わる更新ではありません。主な変更点は、Data Explorerのクエリ実行について「成功」「失敗」「実行時間」をより追跡しやすくすることです。

管理者は、Data Explorerの利用権限、RUしきい値、監視ログ、エラー情報の扱いを確認しておくとよいでしょう。開発者は、このテレメトリをサーバー側のクエリメトリクスやSDK診断情報と混同せず、遅いクエリや失敗クエリの切り分けに使うことが重要です。

目次

Azure Cosmos DBの今回の更新で何が変わるのか

2026年5月20日、Azureの公式GitHubリポジトリ Azure/cosmos-explorer で、Pull Request #2487「feat: Add telemetry for query execution success and failure and duration」が master ブランチへマージされました。このPRでは、Data Explorerのクエリ実行に対して、durationとfailureを追跡する追加テレメトリが導入されています。(GitHub)

変更されたファイルは src/Common/IteratorUtilities.ts で、クエリ結果の次ページを取得する nextPage 処理に対して、実行開始時刻、成功時のduration、失敗時のdurationとエラーメッセージを記録する処理が追加されています。(GitHub)

観点変更前変更後実務上の意味
成功時の記録クエリ実行成功は記録される成功に加えて durationMs を記録Data Explorer上のクエリ実行時間を追跡しやすくなる
失敗時の記録明示的な失敗テレメトリが弱いtraceFailure で失敗、duration、エラー情報を記録失敗傾向や遅延を伴う失敗を分析しやすくなる
対象処理fetchNext() の実行fetchNext() の前後を計測ページ取得単位の挙動を把握しやすくなる
クエリ結果documents、RU、activityIdなどを返す返却内容は基本的に同じアプリやDBスキーマの移行は不要
エラー処理失敗時の追跡が限定的失敗を記録したうえでエラーを再送出画面側の失敗挙動を変えずに観測性を高める

重要なのは、これはAzure Cosmos DBエンジンそのもののクエリ実行ロジックを変更する更新ではなく、Data Explorerという管理・操作UI側の観測性を高める変更だという点です。

対象範囲はAzure Cosmos DB Data Explorerのクエリ実行

Azure Cosmos DB Data Explorerは、Azure Cosmos DB内のデータを表示・管理できるWebベースのインターフェイスです。公式ドキュメントでは、データの参照、クエリ実行、クエリ結果の確認に使える管理画面として説明されています。(Microsoft Learn)

今回の更新で影響を受けるのは、主に次のような利用シーンです。

利用シーン影響
Azure portalや専用Data Explorerでクエリを実行するクエリ実行の成功・失敗・durationがData Explorer側で追跡されやすくなる
アプリケーションからSDKでCosmos DBにアクセスするこのPR自体による直接的な動作変更はない
コンテナー、パーティションキー、インデックスを管理するスキーマや設定の移行は不要
RU使用量やサーバー側レイテンシを監視する引き続きAzure MonitorやSDK診断情報で確認する
自前でcosmos-explorerをビルド・運用しているテレメトリ送信内容、ログポリシー、テスト項目の確認が必要

Data Explorerは便利ですが、本番データに対して自由にクエリを実行できる画面でもあります。特に大規模コンテナーでは、管理画面からの調査クエリでもRUを消費します。今回のテレメトリ強化は、こうした操作の成功・失敗・所要時間を把握しやすくするための変更と見てよいでしょう。

durationMsは「サーバー側のクエリ時間」と同じではない

今回追加された durationMs は、documentsIterator.fetchNext() の前後で Date.now() を使って算出されています。つまり、Data Explorer側の非同期処理として、次のページを取得するまでにかかった時間を記録するものです。(GitHub)

ここで注意したいのは、durationMs をそのまま「Cosmos DBサーバー内部の純粋なクエリ実行時間」と解釈しないことです。

Azure Cosmos DBには、クエリパフォーマンスを分析するためのクエリ実行メトリクスがあります。公式ドキュメントでは、TotalTimeIndexLookupTimeDocumentLoadTimeRuntimeExecutionTimeIndexHitRatio などの指標を使って、クエリのどこに時間がかかっているかを分析できると説明されています。(Microsoft Learn)

指標主な用途確認すべき場面
Data Explorerの durationMsData Explorerでクエリ操作にかかった時間の把握管理画面でのクエリが遅い、失敗する
Query execution metricsサーバー側のクエリ実行内訳の分析インデックス、取得件数、パーティション横断の影響を調べたい
Request Chargeクエリが消費したRUの確認コストやスロットリングを調べたい
Azure Monitorメトリクスアカウントやコンテナー全体の傾向監視RU使用率、レイテンシ、可用性を継続監視したい
SDK Diagnostics / OpenTelemetryアプリケーション側からの詳細な追跡本番アプリの遅延やエラーを調査したい

たとえば、Data Explorer上の durationMs が長くても、原因がサーバー側のクエリ処理とは限りません。ネットワーク、ブラウザー、認証、ページング、結果件数、クライアント側の処理が影響している可能性があります。

一方で、Query execution metricsの IndexHitRatio が低い、RetrievedDocumentCount が多い、パーティションキーを指定していない、といった状況であれば、クエリ設計そのものを見直すべきです。

管理者が確認すべき設定と運用ポイント

Data Explorerの利用権限を見直す

まず確認すべきなのは、誰がData Explorerで本番データに対してクエリを実行できるかです。

Data Explorerは調査や保守に便利ですが、権限が広すぎると、意図しない高負荷クエリや機密データの閲覧につながります。特に本番環境では、閲覧専用、検証環境、運用管理者、開発者の権限を分けておくことが重要です。

確認すべきポイントは次の通りです。

確認項目判断基準
本番Cosmos DBにData Explorerでアクセスできるユーザー最小権限になっているか
キーベース認証の利用必要以上に主キーへ依存していないか
Microsoft Entra ID RBAC運用ルールに沿って有効化・利用されているか
検証環境との分離本番データで試行錯誤していないか
監査・証跡誰がどの環境で操作できるか説明できるか

Data Explorerでは、Microsoft Entra IDベースのRBACを使う設定も用意されています。公式ドキュメントでは、Enable Entra ID (RBAC) の設定値として、自動、True、Falseの動作が説明されており、キーベース認証を使う設定では主キー取得要求が発生する可能性がある点にも触れられています。(Microsoft Learn)

RUしきい値を設定して高コストクエリを抑制する

Data Explorerには、クエリで使われるRU/sに対する制限を構成する機能があります。公式ドキュメントでは、この機能によりコストとパフォーマンスを制御でき、高コストのクエリを自動的に取り消すこともできると説明されています。(Microsoft Learn)

本番環境でData Explorerを使う場合、RUしきい値は特に重要です。

たとえば、次のようなクエリは注意が必要です。

SELECT * FROM c

このクエリは条件がなく、結果件数が多いコンテナーでは大量のRUを消費する可能性があります。調査目的であっても、まずは件数を絞るべきです。

SELECT TOP 100 c.id, c.status, c.createdAt
FROM c
WHERE c.tenantId = "tenant-001"
ORDER BY c.createdAt DESC

パーティションキーに相当する条件を入れ、取得列と件数を絞るだけでも、調査時の負荷を抑えやすくなります。

テレメトリに含まれる情報の扱いを確認する

今回の変更では、失敗時に error.message がテレメトリデータとして渡されます。PR上の実装では、成功時に durationMs、失敗時に durationMserror.message が追加されています。(GitHub)

通常、これは障害分析に役立ちます。ただし、組織のセキュリティポリシー上、エラーメッセージやアカウント情報の取り扱いに制約がある場合は、以下を確認しておきましょう。

確認項目理由
エラーメッセージに機密情報が含まれない運用になっているか調査ログやテレメトリに予期せぬ情報が残る可能性を下げるため
本番環境でData Explorerを使うルールがあるか個人情報や業務データを含むクエリを安易に実行しないため
自前ビルド版cosmos-explorerのテレメトリ送信先フォークや社内運用時にログ管理責任が発生するため
サポート調査時のログ共有ルールエラー内容を外部に共有する前に確認できるようにするため

特に自社でcosmos-explorerをフォークしている場合は、テレメトリ送信処理や収集先、保持期間、マスキング方針を確認する価値があります。

開発者が確認すべきポイント

Data Explorerの遅延とアプリケーションの遅延を分けて考える

Data Explorerでクエリが遅いからといって、すぐにアプリケーションも同じように遅いとは限りません。逆に、アプリケーションで遅いクエリがData Explorerでは再現しない場合もあります。

切り分けでは、次の順序で確認すると判断しやすくなります。

手順確認内容判断
1Data Explorerだけで遅いかブラウザー、認証、画面処理、ページングの影響を疑う
2SDKから同じクエリを実行して遅いかアプリ側のDiagnosticsを確認する
3RU消費が高いかクエリ設計、取得件数、インデックスを確認する
4パーティションキー条件があるかクロスパーティションクエリの可能性を確認する
5Azure Monitorで全体傾向を見る特定クエリではなくアカウント全体の負荷を確認する

Azure Cosmos DBの公式ドキュメントでは、パーティションキーを含むフィルターは低レイテンシになりやすく、フィルターのないクエリは複数パーティションにまたがり、RUやレイテンシが増えやすいと説明されています。(Microsoft Learn)

SDK診断情報とOpenTelemetryを併用する

本番アプリケーションの監視では、Data Explorerのテレメトリだけでは不十分です。アプリケーションからCosmos DBにアクセスしている場合は、SDKの診断情報やOpenTelemetryを使って、ステータスコード、サブステータスコード、request charge、接続モード、接触リージョンなどを追跡するのが現実的です。

Azure Cosmos DB SDKのObservabilityドキュメントでは、OpenTelemetryで Azure.Cosmos.Operation ソースを追加してトレースプロバイダーに設定できること、さらにCosmos DB関連の属性としてステータスコード、サブステータスコード、RU、接続モードなどが扱われることが説明されています。(Microsoft Learn)

Data Explorerは「管理画面での調査」に向いています。一方、SDK診断情報やOpenTelemetryは「実際のアプリケーション経路で何が起きているか」を見るために使います。両者を混同しないことが、トラブルシューティングの精度を上げるポイントです。

クエリの書き方を見直す

今回の更新で失敗やdurationを追いやすくなると、遅いクエリが見つかりやすくなります。見つけた後に重要なのは、クエリをどう改善するかです。

悪い例として、次のようなクエリがあります。

SELECT * FROM c
WHERE c.status = "active"

一見シンプルですが、パーティションキー条件がなく、結果件数も制限していません。大規模なコンテナーでは、複数パーティションを対象に大量のドキュメントを走査する可能性があります。

改善例は次の通りです。

SELECT TOP 100 c.id, c.status, c.updatedAt
FROM c
WHERE c.tenantId = "tenant-001"
AND c.status = "active"
ORDER BY c.updatedAt DESC

改善の観点は明確です。

改善ポイント効果
パーティションキー条件を入れる対象範囲を絞り、低レイテンシ化しやすい
SELECT * を避ける不要なデータ転送を減らせる
TOP を使う調査時の取得件数を制限できる
必要な並び替えだけにするインデックスやRUへの影響を確認しやすい
Query metricsを見る推測ではなく実測で改善判断できる

AI/Copilot更新と誤解しないための見方

見出し上は「AI/Copilot更新」と関連づけて紹介されることがありますが、今回のPR自体は、Copilotがクエリを生成する、AIがクエリを自動修正する、といった機能追加ではありません。

実体は、Data Explorerのクエリ実行におけるテレメトリ強化です。

ただし、Azure portalや管理画面でAI支援が広がるほど、操作結果を正しく観測できる基盤は重要になります。たとえば、管理者や開発者が次のような問いに答えるには、成功・失敗・durationの記録が役立ちます。

問いテレメトリが役立つ理由
Data Explorerのクエリがどの程度失敗しているかfailureの記録で傾向を把握しやすい
失敗するクエリは遅延も大きいかdurationとfailureを合わせて見られる
UI上のクエリ操作が遅くなっていないか成功時のdurationを比較できる
サポート調査時に再現性があるかエラー情報と実行タイミングを追いやすい

つまり、今回の更新は派手な機能追加ではありませんが、運用品質を上げるための地味に重要な改善です。

移行・展開上の注意点

今回の変更に対して、通常のAzure Cosmos DB利用者がデータベース移行を行う必要はありません。コンテナー設計、パーティションキー、インデックス、SDKコード、クエリ構文をこのPRのためだけに変更する必要もありません。

ただし、次のケースでは確認が必要です。

対象確認すべきこと
Azure portal / Data Explorerを使う管理者Data Explorerの利用権限、RUしきい値、RBAC設定
本番環境で調査クエリを実行する開発者クエリ条件、取得件数、RU消費、実行時間
cosmos-explorerを自前ビルドしているチームテレメトリ送信先、プライバシー、テスト、リリース手順
監視基盤を整備しているSRE/運用担当Azure Monitor、SDK Diagnostics、OpenTelemetryとの役割分担
セキュリティ・監査担当エラーメッセージやアカウント情報の取り扱い

また、GitHubのPRが master にマージされたことと、Azure portal上のすべての利用環境へ即時反映されることは同義ではありません。実際の反映タイミングは、Azure側のリリースサイクルや利用しているData Explorer環境によって異なる可能性があります。プレビューURLで確認できる内容も、本番反映済みの保証として扱わない方が安全です。

実務での確認チェックリスト

今回の更新を受けて、管理者と開発者は次の順に確認するとよいでしょう。

優先度確認項目具体的なアクション
本番Data Explorerの利用者Azure RBAC、Entra ID RBAC、アクセス権を棚卸しする
RUしきい値Data Explorerの設定で高コストクエリを抑制する
遅いクエリの判断基準Data ExplorerのdurationだけでなくQuery metricsも確認する
SDK側の監視DiagnosticsやOpenTelemetryの収集を確認する
クエリ設計パーティションキー条件、取得列、TOP、インデックスを見直す
エラー情報の扱いerror messageの共有・保存ルールを確認する
自前ビルド版の影響cosmos-explorerフォークのテレメトリ実装を確認する

Azure Cosmos DBの監視では、Azure Monitor Metrics Explorerを使って、サーバー側レイテンシ、RU使用量、正規化RU使用量などを分析できます。クライアント側では、request charge、activity ID、例外、HTTPステータス、診断文字列などの収集がトラブルシューティングに役立つと公式ドキュメントでも説明されています。(Microsoft Learn)

今回の更新をどう活用すべきか

今回のAzure Cosmos DB Data Explorer更新は、利用者の画面操作を劇的に変えるものではありません。しかし、クエリ実行の成功・失敗・durationを追跡できるようになることで、管理画面上の「遅い」「失敗する」「再現しない」といった問題を切り分けやすくなります。

管理者は、Data Explorerの権限とRUしきい値を見直してください。開発者は、Data Explorerのdurationをサーバー側メトリクスと混同せず、Query metrics、Azure Monitor、SDK Diagnostics、OpenTelemetryを組み合わせて確認しましょう。

次に取るべき行動は明確です。まず本番Cosmos DBでData Explorerを使えるユーザーを確認し、RUしきい値を設定します。そのうえで、よく使う調査クエリを見直し、パーティションキー条件や取得件数の制限を入れてください。今回のテレメトリ強化は、その改善効果を追いやすくするための土台になります。

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次