クライアントサイドの指標を設定する

このページでは、Bigtable クライアント側の指標のインストール、設定、使用する方法について説明します。

クライアントサイドの指標は、次のクライアント ライブラリのユーザーが利用できます。

概要については、クライアントサイドの指標の概要をご覧ください。指標の詳細なリストについては、クライアントサイドの指標の説明をご覧ください。

サービス アカウントの権限を追加または確認する

サービス アカウントに IAM 権限を追加するには、次の操作を行います。

  1. Google Cloud コンソールの [IAM] ページに移動します。

    [IAM] に移動

  2. Bigtable クラスタを作成したプロジェクトを選択します。

  3. 権限を追加するサービス アカウントを検索します。

  4. [プリンシパルを編集します] をクリックします。

  5. [別のロールを追加] をクリックします。

  6. 「モニタリング指標の書き込み」を検索して結果を選択します。

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

Cloud Monitoring API を有効にする

  1. Google Cloud コンソールで、[API とサービス] ページに移動します。

    [API とサービス] に移動

  2. Bigtable クラスタを作成したプロジェクトを選択します。

  3. [API とサービスの有効化] をクリックします。

  4. 「Monitoring」を検索します。

  5. 検索結果で、[Stackdriver Monitoring API] をクリックします。

  6. [API が有効です]が表示されている場合、その API はすでに有効になっています。 有効になっていない場合は、[有効にする] をクリックします。

Bigtable クライアント ライブラリを設定する

Cloud Monitoring API を有効にしたら、Bigtable クライアント ライブラリを構成します。

Go

Go 用 Bigtable クライアント ライブラリを使用して Bigtable API を呼び出す場合は、次の操作を行います。

Go 用クライアント ライブラリをインストールして構成する

Go 用 Bigtable クライアント ライブラリをバージョン 1.27.0 以降に更新します。go.mod は次のようになります。

require (
  cloud.google.com/go/bigtable v1.27.2-0.20240725222120-ce31365acc54

省略可: クライアントサイドの指標をオプトアウトする

クライアントサイドの指標は、Go クライアント ライブラリでデフォルトで有効になっています。オプトアウトするには、ClientConfigNoopMetricsProvider を渡します。

client, err := bigtable.NewClientWithConfig(ctx, project, instance,
bigtable.ClientConfig{MetricsProvider: bigtable.NoopMetricsProvider{},
})

HBase

Java 用 Bigtable HBase クライアントを使用して HBase API を呼び出し、アプリケーションを Bigtable に接続する場合は、次の操作を行います。

Java 用 HBase クライアント ライブラリをインストールして構成する

  1. 最新の Java 用 Bigtable HBase クライアントをダウンロードしてインストールします。クライアントサイドの指標を有効にするには、バージョン 2.6.4 以降を使用する必要があります。

  2. 空の Maven プロジェクトを作成します。

  3. ユースケースに適したアーティファクトの依存関係を決定します。2.x バージョンには、1.x バージョンにはない HBase 非同期クライアントが含まれています。

    • bigtable-hbase-1.x または bigtable-hbase-2.x: 依存関係を制御するスタンドアロン アプリケーションに使用します。
    • bigtable-hbase-1.x-hadoop または bigtable-hbase-2.x-hadoop: Hadoop 環境で使用されます。
    • bigtable-hbase-1.x-shaded または bigtable-hbase-2.x-shaded: protobuf や Guava などの古いバージョンのコンポーネントを必要とする Hadoop 以外の環境で使用されます。
  4. pom.xml ファイルを更新します。

    <dependencyManagement>
        <dependencies>
            <dependency>
                  <groupId>com.google.cloud.bigtable</groupId>
                  <artifactId>BIGTABLE_HBASE_ARTIFACT</artifactId>
                  <version>VERSION_NUMBER</version>
              </dependency>
        </dependencies>
    </dependencyManagement>
    

    次のフィールドを入力します。

    • BIGTABLE_HBASE_ARTIFACT: プロジェクトのアーティファクトの依存関係(bigtable-hbase-1.xbigtable-hbase-2.x-hadoop の形式)。
    • VERSION_NUMBER: 使用しているクライアント ライブラリのバージョン(2.6.4 の形式)。

アプリケーションでクライアントサイドの指標を有効にする

bigtable-hbase-1.x または bigtable-hbase-2.x の使用

HBase クライアント ライブラリと bigtable-hbase-1.x または bigtable-hbase-2.x アーティファクトを使用して接続を作成する場合、組み込みのクライアントサイドの指標を有効にするコードは次のようになります。

  import com.google.cloud.bigtable.data.v2.BigtableDataSettings;

  Configuration configuration = BigtableConfiguration.configure("my-project-id", "my-instance-id");
  Connection connection = new BigtableConnection(configuration);

  BigtableDataSettings.enableBuiltinMetrics();

-hadoop または -shaded アーティファクトの使用

HBase クライアント ライブラリと -hadoop または -shaded アーティファクトのいずれかを使用して接続を作成する場合、組み込みのクライアントサイドの指標を有効にするコードは次のようになります。

  import com.google.bigtable.repackaged.com.google.cloud.bigtable.data.v2.BigtableDataSettings;

  Configuration configuration = BigtableConfiguration.configure("my-project-id", "my-instance-id");
  Connection connection = new BigtableConnection(configuration);

  BigtableDataSettings.enableBuiltinMetrics();

省略可: クライアントサイドの指標をオプトアウトする

バージョン 2.14.1 以降を使用している場合、クライアントサイドの指標はデフォルトで有効になっています。オプトアウト可能です。

Configuration configuration = BigtableConfiguration.configure("my-project-id", "my-instance-id");
configuration.setBoolean(BigtableOptionsFactory.BIGTABLE_ENABLE_CLIENT_SIDE_METRICS, false);
Connection connection = new BigtableConnection(configuration);

Java

Java 用 Bigtable クライアント ライブラリを使用して Bigtable API を呼び出す場合は、次の操作を行います。

始める前に

省略可: OpenCensus Stats 統合を使用して Bigtable 指標を取得している場合は、アプリケーションの依存関係と StackdriverStatsExporter の変更を元に戻します。理由については、アップグレードのタイミングをご覧ください。

Java 用クライアント ライブラリをインストールして構成する

  1. 最新の Java 用 Bigtable クライアント ライブラリをダウンロードしてインストールします。クライアントサイドの指標を使用するには、バージョン 2.16.0 以降が必要です。
  2. 最新バージョンを使用するように Java クライアント ライブラリの pom.xml ファイルを更新します。pom は次のようになります。

    <dependencyManagement>
        <dependencies>
            <dependency>
                  <groupId>com.google.cloud</groupId>
                  <artifactId>google-cloud-bigtable-bom</artifactId>
                  <version>2.38.0</version>
                  <scope>import</scope>
                  <type>pom</type>
              </dependency>
        </dependencies>
    </dependencyManagement>
    
    <dependencies>
        <dependency>
              <groupId>com.google.cloud</groupId>
              <artifactId>google-cloud-bigtable</artifactId>
        </dependency>
    </dependencies>
    

アプリケーションでクライアントサイドの指標を有効にする

クライアント ライブラリを使用してクライアントを作成する場合は、組み込み指標を有効にします。コードは次のようになります。

  BigtableDataSettings settings = BigtableDataSettings.newBuilder()
              .setProjectId("our-project-2-12")
              .setInstanceId("our-instance-85")
              .setAppProfileId("our-appProfile-06")
              .build();

  BigtableDataSettings.enableBuiltinMetrics();

  try (BigtableDataClient client = BigtableDataClient.create(settings)) {
          // Application logic
  }

カスタム OpenTelemetry インスタンスを設定する

バージョン 2.38.0 以降を使用しており、Cloud Monitoring とカスタムシンクにクライアントサイドの指標を公開する場合は、カスタム OpenTelemetry インスタンスを設定できます。

  SdkMeterProviderBuilder meterProviderBuilder = SdkMeterProvider.builder();

  // register client side metrics on your meter provider
  BuiltinMetricsView.registerBuiltinMetrics("my-project-id", meterProviderBuilder);

  // register other metric reader and views
  meterProviderBuilder.registerMetricReader().registerView();

  // create the OTEL instance
  OpenTelemetry openTelemetry = OpenTelemetrySdk.builder()
          .setMeterProvider(meterProviderBuilder.build())
          .build();

  // Override MetricsProvider in BigtableDataSettings
  BigtableDataSettings settings = BigtableDataSettings.newBuilder()
          .setProjectId("my-project-id")
          .setInstanceId("my-instance-id")
          .setMetricsProvider(CustomOpenTelemetryMetricsProvider.create(openTelemetry))
          .build();

  try (BigtableDataClient client = BigtableDataClient.create(settings)) {
        // Application logic
  }

省略可: クライアントサイドの指標をオプトアウトする

バージョン 2.38.0 以降を使用している場合は、クライアントサイドの指標の使用をオプトアウトできます。

BigtableDataSettings settings = BigtableDataSettings.newBuilder()
        .setProjectId("my-project")
        .setInstanceId("my-instance")
        .setMetricsProvider(NoopMetricsProvider.INSTANCE)
        .build();

Metrics Explorer で指標を表示する

  1. Google Cloud コンソールで、[Metrics Explorer] ページに移動します。

    [Metrics Explorer] に移動

  2. プロジェクトを選択します。

  3. [指標を選択] をクリックします。

  4. bigtable.googleapis.com/client を検索します。

  5. 指標、group by メソッド、ステータスを選択し、Aggregator を選択します。その他のオプションについては、Metrics Explorer 使用時の指標の選択をご覧ください。

クライアントサイドの指標を有効にした後、アプリケーションを 1 分以上実行すると、公開された指標を確認できるようになります。

Bigtable モニタリングで指標を表示する

Bigtable モニタリング ページには、次のクライアントサイド指標のグラフが表示されます。

  • クライアントサイドの読み取りレイテンシ
  • クライアントサイドの書き込みレイテンシ
  • クライアントサイドの読み取り試行レイテンシ
  • クライアントサイドの書き込み試行レイテンシ

[Monitoring] ページでクライアントサイドの指標を表示する手順は次のとおりです。

  1. Google Cloud コンソールで Bigtable インスタンスのリストを開きます。

    インスタンスのリストを開く

  2. 指標を表示するインスタンスをクリックします。

  3. 左側のペインで [モニタリング] をクリックします。Google Cloud コンソールに、インスタンスの一連のグラフが表示されます。

  4. ペインをスクロールして、クライアントサイドの指標を表示します。

  5. 省略可: テーブルレベルで指標を表示するには、[テーブル] をクリックします。

  6. 省略可: 個々のアプリ プロファイルの指標を表示するには、[アプリケーション プロファイル] をクリックします。

詳細については、Bigtable のモニタリングをご覧ください。

次のステップ