クエリを保存して共有する

オブザーバビリティ分析では、SQL クエリを保存して共有できます。これにより、頻繁なトレース調査を再実行したり、プロジェクトのチームメンバーと共同作業したりできます。保存したクエリは、自分だけが使用できるように非公開にすることも、他のプロジェクト メンバーと共有することもできます。オブザーバビリティ分析でクエリを作成したことがない場合は、まずトレースのクエリと分析をご覧ください。

始める前に

プロジェクトと IAM ロールを構成し、使用するインターフェースを選択します。

プロジェクトとロールを構成する

  1. Google Cloud アカウントにログインします。 Google Cloudを初めて使用する場合は、 アカウントを作成して、実際のシナリオでの Google プロダクトのパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Observability API.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the API

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  6. Verify that billing is enabled for your Google Cloud project.

  7. Enable the Observability API.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the API

  8. [オブザーバビリティ分析] ページの読み込み、トレースデータに対する非公開クエリの作成、実行、保存に必要な権限を取得するには、次の IAM ロールを付与するよう管理者に依頼してください。

    • クエリを実行するオブザーバビリティ ビューに対するオブザーバビリティ ビュー アクセサー roles/observability.viewAccessor)。このロールは IAM 条件をサポートしています。これにより、付与を特定のビューに制限できます。ロール付与に条件を関連付けない場合、プリンシパルはすべてのオブザーバビリティ ビューにアクセスできます。
    • プロジェクトに対する オブザーバビリティ分析ユーザー roles/observability.analyticsUser)。このロールには、非公開クエリの保存と実行、共有クエリの実行に必要な権限が含まれています。

    ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。

    必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。

使用するインターフェースを選択する

コンソール

Google Cloud コンソールを使用して Google Cloud サービスと API にアクセスする場合、認証を設定する必要はありません。

gcloud

Google Cloud コンソールで Cloud Shell をアクティブにします。

Cloud Shell をアクティブにする

Google Cloud コンソールの下部にある Cloud Shell セッションが開始し、コマンドライン プロンプトが表示されます。Cloud Shell はシェル環境です。Google Cloud CLI がすでにインストールされており、現在のプロジェクトの値もすでに設定されています。セッションが初期化されるまで数秒かかることがあります。

REST

このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。

    Google Cloud CLI をインストールします。

    外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。

詳細については、 Google Cloud 認証ドキュメントの REST を使用して認証するをご覧ください。

クエリを保存する

実行するすべてのクエリは自動的に 30 日間保存され、[オブザーバビリティ分析] ページの [最近] タブを選択することでアクセスできます。[最近] タブに表示されるクエリを検索、表示、実行、共有できます。

クエリを再利用したり、カスタムの説明を追加したり、チームメンバーと共有したりするには、クエリを保存します。保存したクエリは、名前、説明、公開設定ラベルで検索、並べ替えることができます。これらのクエリは編集、削除することもできます。保存したクエリは、削除するまで保持されます。

Google Cloud プロジェクトごとに 10,000 件のクエリを保存できます。

コンソール

クエリを保存するには、次の操作を行います。

  1. Google Cloud コンソールで、 [オブザーバビリティ分析] ページに移動します。

    Observability Analytics に移動

    検索バーを使用してこのページを検索する場合は、小見出しが [Logging] の結果を選択します。

  2. [クエリ] ペインにクエリを入力します。

    [クエリ] ペインにクエリを入力するには、新しいクエリを入力するか、[最近] タブからクエリを選択するか、[保存済み] タブからクエリを選択します。

    クエリには、有効なビュー、複数のビュー、分析ビューを含めることができます。

    [クエリ] ペインのクエリが有効になると、[ 保存] ボタンが有効になります。

  3. [ 保存] をクリックし、[クエリを保存] を選択して、[名前] フィールドと [説明] フィールドに入力します。これらのフィールドに設定した値は、[保存済み] タブに表示されます。

  4. 省略可: Google Cloud プロジェクト ビューの [オブザーバビリティ分析] ページへのアクセス権を持つユーザーが保存済みクエリを実行できるようにするには、[プロジェクトで共有] の切り替えを有効にします。

    デフォルトでは、この切り替えは無効になっており、表示が制限されています。

  5. [クエリを保存] をクリックします。

  6. 省略可: 表示可能な保存済みクエリを表示、並べ替え、実行するには、[保存済み] タブを選択します。

    保存したクエリは、名前、説明、公開設定ラベルで並べ替えおよびフィルタリングできます。クエリの内容でフィルタすることもできます。

[保存済み] タブのオプションを使用して、作成したクエリを編集および削除できます。

  • クエリを編集するには、その他のオプション)をクリックし、[編集] を選択します。[名前] フィールドと [説明] フィールドの値は変更できますが、クエリ自体は変更できません。

  • 保存済みクエリを削除するには、その他のオプション)をクリックし、[削除] を選択します。

gcloud

クエリを作成して保存する手順は次のとおりです。

  1. 後述のコマンドデータを使用する前に、次のように置き換えます。

    • DISPLAY_NAME: 保存済みクエリの表示名。
    • LOCATION: 保存済みクエリのロケーション。
    • VISIBILITY: private または shared に設定します。
    • SQL_QUERY: SQL クエリ。パスまたはパス内のフィールドが単一のバッククォート (`) で囲まれている場合は、それらのバッククォートをエスケープする必要があります。
          "SELECT * FROM \`PROJECT_ID.LOCATION.my-log-bucket._AllLogs\`"
          

      または

          "SELECT * FROM \`PROJECT_ID.LOCATION._Trace.Spans._AllSpans\`"
          

      パス要素にピリオド (.) 文字が含まれている場合は、バッククォート (`) が必要です。

    • ID: 保存済みクエリの ID。この ID は、保存済みクエリを記述、更新、削除するコマンドの必須入力です。保存済みクエリの作成時に ID を指定しない場合、システムによって数値 ID が生成されます。
    • DESCRIPTION: クエリのテキスト説明。省略可。
    • PROJECT_ID: プロジェクトの ID。

    gcloud logging saved-queries create コマンドを実行します。

    Linux、macOS、Cloud Shell

    gcloud logging saved-queries create --display-name=DISPLAY_NAME \
     --location=LOCATION --visibility=VISIBILITY --sql-query-text=SQL_QUERY \
     --id=ID --description=DESCRIPTION --project=PROJECT_ID

    Windows(PowerShell)

    gcloud logging saved-queries create --display-name=DISPLAY_NAME `
     --location=LOCATION --visibility=VISIBILITY --sql-query-text=SQL_QUERY `
     --id=ID --description=DESCRIPTION --project=PROJECT_ID

    Windows(cmd.exe)

    gcloud logging saved-queries create --display-name=DISPLAY_NAME ^
     --location=LOCATION --visibility=VISIBILITY --sql-query-text=SQL_QUERY ^
     --id=ID --description=DESCRIPTION --project=PROJECT_ID

    コマンドで指定された ID が my-saved-query の場合のレスポンスの例を次に示します。

    Created saved query [projects/PROJECT_ID/locations/LOCATION/savedQueries/my-saved-query].
    

    create コマンドのレスポンスには、クエリの ID を含むクエリの完全な名前が一覧表示されます。クエリ ID(この例では my-saved-query)は、保存済みクエリを記述、削除、更新する Google Cloud CLI コマンドに必要な入力です。

  2. 保存済みクエリを検査するには、次のコマンドを実行します。

     gcloud logging saved-queries list --location=- --project=PROJECT_ID
    

    上記の式では、ロケーションの値はハイフン (-) で、ワイルドカードとして機能します。特定の場所を指定することもできます。

保存済みクエリの削除、一覧表示、説明の取得、更新を行うための Google Cloud CLI コマンドがあります。詳細については、gcloud logging saved-queries の概要をご覧ください。

REST

Cloud Logging API を使用してクエリを保存できます。クエリを保存するには、savedQueries.create メソッドを使用します。

このメソッドを実行するには、次の操作を行います。

  1. savedQueries.create を選択します。
  2. リファレンス ページで、API Explorer を使用してコマンドを発行します。opsAnalyticsQuery フィールドを指定する必要があります。

次の例は、SavedQuery のインスタンスを含むリクエスト本文のサンプルを示しています。