既知の問題
このセクションでは、既知の問題について説明します。
- Telemetry API を使用して プロジェクトに書き込まれたスパンは、Cloud Trace API からアクセスできません。 Google Cloud たとえば、これらのトレースを一覧表示しようとすると、コマンドが
404 Not Foundエラーで失敗します。
オブザーバビリティ分析のトラブルシューティング
このセクションでは、オブザーバビリティ分析を使用してトレースデータをクエリするときに発生する可能性のあるエラーを解決する方法について説明します。
検証エラーのためアラート ポリシーを保存できない
トレースデータをモニタリングするアラート ポリシーを保存しようとすると、次のようなエラーが表示されます。
The following error occurred when validating your SQL Alert: Error authenticating service account `service-12345@gcp-sa-monitoring-notification.iam.gserviceaccount.com`. BigQuery returned an error.
このエラー メッセージは、 Monitoring サービス アカウント に必要な権限が付与されていないか、存在しないことを示しています。このアカウントは、特定のユーザー操作が発生すると、システムによって自動的に作成されます。ただし、Cloud Monitoring API が無効になっている場合、システムはサービス アカウントを作成できません。
このエラーを解決するには、次の操作を行います。
- コンソールで、[API とサービス] ページに移動し、Cloud Monitoring API を有効にします。 Google Cloud
[API とサービス] に移動
-
コンソールで [IAM] ページに移動します。 Google Cloud
このページを検索バーで検索する場合は、小見出しが「IAM と管理 」の結果を選択します。
[IAM] ページで、次の操作を行います。
[Google 提供のロール付与を含む] を選択します。
Monitoring サービス アカウントが表示されない場合は、SQL ベースのアラート ポリシーを作成して、ポリシーを保存します。
ポリシーを保存すると、Monitoring サービス アカウントが作成されます。このサービス アカウントに必要な IAM ロールがないため、保存操作は失敗します。
Monitoring サービス アカウントに次のロールを付与します。
ビューが存在しないことを示すエラー メッセージ
[オブザーバビリティ分析] ページのクエリペインに SQL クエリを入力しますが、SQL パーサーは次のエラーを表示します。
projects/PROJECT_ID/locations/LOCATION/buckets/BUCKET_ID/datasets/DATASET_ID/views/OBS_VIEW_ID does not exist
上記のエラーは、FROM ステートメントで指定されたビューが見つからない場合に報告されます。
このエラーを解決するには、ビューの構文が正しいことを確認します。
ビューの完全修飾名が、オブザーバビリティ分析の命名規則で必要な構文に従っていることを確認します。ビューに必要な構文は、デフォルトのクエリを表示することで確認できます。
プロジェクト ID、ロケーション、バケット ID、データセット ID、またはビュー ID にピリオド(
(.))が含まれている場合は、フィールドが 単一バッククォート((`))で囲まれていることを確認します。 Google Cloudたとえば、 プロジェクトの ID が Google Cloud の場合、
example.com:bluebird, ステートメントは次のようになります。FROMFROM `example.com:bluebird`.`us`.`_Trace`.`Spans`.`_AllSpans`
「オブザーバビリティ分析を使ってみる」というメッセージが表示される
[オブザーバビリティ分析] ページを開くと、次のようなメッセージが表示されます。
Get started with Observability Analytics
オブザーバビリティ分析を使用するには、ウィンドウで close [閉じる] をクリックします。
上記のメッセージは、オブザーバビリティ分析を使用するようにアップグレードされたログバケットがない場合に表示されます。ただし、トレースデータはログバケットに保存されません。
複数のビューの結合に失敗する
複数のビューを結合するクエリを作成しましたが、クエリが無効とマークされています。
すべてのビューを結合できるわけではありません。
ビューを結合するには、次の制限が適用されます。
-
ビューのロケーションが次のいずれかを満たしている。
- すべてのビューのロケーションが同じである。
- すべてのビューが
globalまたはusロケーションにある。
-
ストレージ リソースが顧客管理の暗号鍵(CMEK)を使用している場合は、 次のいずれかが true になります。
- CMEK を使用するストレージ リソースが同じ Cloud KMS 鍵を使用する。
- CMEK を使用するストレージ リソースに共通の祖先があり、その祖先がストレージ リソースと同じロケーションにあるデフォルトの Cloud KMS 鍵を指定する。
1 つ以上のストレージ リソースが CMEK を使用している場合、結合によって生成された一時データは、共通の Cloud KMS 鍵または祖先の デフォルトの Cloud KMS 鍵で暗号化されます。
たとえば、同じロケーションに存在する 2 つのビューがあるとします。この場合、次のいずれかに該当する場合は、これらのビューを結合できます。
- ストレージ リソースが CMEK を使用していない。
- 1 つのストレージ リソースが CMEK を使用し、もう 1 つは使用していない。
- 両方のストレージ リソースが CMEK を使用し、両方とも同じ Cloud KMS 鍵を使用している。
両方のストレージ リソースが CMEK を使用しているが、異なる鍵を使用している。ただし、リソースは、ストレージ リソースと同じロケーションにあるデフォルトの Cloud KMS 鍵を指定する祖先を共有しています。
たとえば、ログバケットとオブザーバビリティ バケットのリソース階層に同じ組織が含まれているとします。その組織で、 ストレージ ロケーションに同じデフォルトの Cloud KMS 鍵を使用して、Cloud Logging のデフォルトのリソース設定と オブザーバビリティ バケット のデフォルトのリソース設定を構成している場合は、これらのバケットのビューを結合できます。
リンクされた BigQuery データセットの作成が権限エラーで失敗する
リンクされた BigQuery データセットを作成しようとすると、次のようなエラーでオペレーションが失敗します。
ERROR: (gcloud.beta.observability.buckets.datasets.links.create) {
"code": 7,
"message": "The caller does not have permission"
}
この問題を解決するには、次の操作を行います。
必要な IAM ロールが付与されていることを確認します。 これらのロールの一覧については、 データセットにリンクを作成するをご覧ください。
組織のポリシーを確認して、BigQuery データセットに適用される制約があるかどうかを確認します。BigQuery データセットが特定のロケーションに存在することを要求するカスタム制約を作成するとします。この場合、特定のロケーションにあるオブザーバビリティ データセットにのみ、リンクされた BigQuery データセットを作成できます。
[Trace エクスプローラ] ページにデータがない
プロジェクトにトレースデータを送信するアプリケーションがあります。 Google Cloud ただし、[Trace エクスプローラ] ページを開いてもデータが表示されません。
トレースデータを表示できない理由はいくつか考えられます。
- データを表示するために必要な権限が付与されていない。
- トレーススパンがプロジェクトに送信されなかった。
- アプリケーションにトレースデータを書き込むために必要な権限がない。