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

このページでは、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. 検索結果で、[Cloud Monitoring API] をクリックします。

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

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

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

C++

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

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

CMake や Bazel などの一般的な C++ ビルドシステムを使用してライブラリを統合します。詳細については、ビルドとインストールをご覧ください。

Bigtable クライアント ライブラリでクライアントサイドの指標を収集するには、プロジェクトに OpenTelemetry と Cloud Monitoring の依存関係を含める必要があります。OpenTelemetry は、クライアント ライブラリが指標を作成、計測、記録するためのフレームワークを提供します。一方、Cloud Monitoring ライブラリは、これらの指標を Cloud Monitoring にエクスポートまたはパブリッシュする機能を提供します。

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

バージョン 2.40.0 以降の C++ 用 Bigtable クライアント ライブラリでは、クライアントサイドの指標がデフォルトで有効になっています。

OpenTelemetry と Cloud Monitoring の両方の依存関係がプロジェクトで使用可能な場合、指標は自動的に収集されます。これらの指標に対して追加料金は発生しません。

オプション: クライアントサイドの指標をオプトアウトする

データ接続を作成するときに EnableMetricsOptionfalse に設定すると、クライアントサイド指標の使用をオプトアウトできます。

auto options = Options{}.set<EnableMetricsOption>(false);
TableResource resource("my-project", "my-instance", "my-table");
Table table(MakeDataConnection(std::move(options)), std::move(resource));

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();

Node.js

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

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

  1. 最新の Node.js 用 Bigtable クライアント ライブラリをダウンロードしてインストールします。

    クライアントサイドの指標を使用するには、バージョン 6.2.0 以降が必要です。package.json ファイルは次のようになります。

    {
      "dependencies": {
        "@google-cloud/bigtable": "^6.2.0"
      }
    }
    
  2. プロジェクトで Node.js モジュールを再インストールします。

    rm -rf node_modules
    rm package-lock.json
    npm i
    

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

バージョン 6.4.0 以降の Node.js 用 Bigtable クライアント ライブラリでは、クライアントサイドの指標がデフォルトで有効になっています。

オプション: クライアントサイドの指標をオプトアウトする

クライアントサイドの指標の使用をオプトアウトできます。

const bigtable = new Bigtable({metricsEnabled: false});

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 モニタリング ページには、次のクライアントサイド指標のグラフが表示されます。

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

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

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

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

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

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

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

  5. オプション: テーブルレベルで指標を表示するには、[テーブル] をクリックします。

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

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

次のステップ