设置客户端指标

本页面介绍了如何安装、设置和使用 Bigtable 客户端指标。

以下客户端库的用户可以使用客户端指标:

如需查看概览,请参阅客户端指标概览。如需查看指标的详细列表,请参阅客户端指标说明

添加或确认服务账号权限

如需向服务账号添加 IAM 权限,请完成以下操作:

  1. 在 Google Cloud 控制台中,前往 IAM 页面。

    转到 IAM

  2. 选择您在其中创建 Bigtable 集群的项目。

  3. 搜索要向其添加权限的服务账号。

  4. 点击修改主账号

  5. 点击“添加其他角色”。

  6. 搜索“monitoring metric writer”,然后选择结果。

  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++ 客户端库

使用常见的 C++ 构建系统(例如 CMake 或 Bazel)集成该库。如需了解详情,请参阅构建和安装

为了让 Bigtable 客户端库收集客户端指标,您的项目必须包含 OpenTelemetry 和 Cloud Monitoring 的依赖项。OpenTelemetry 为客户端库提供了创建、插桩和记录指标的框架,而 Cloud Monitoring 库则提供了将这些指标导出或发布到 Cloud Monitoring 的功能。

在应用中启用客户端指标

自 2.40.0 版起,C++ 版 Bigtable 客户端库默认启用客户端指标。

如果您的项目中同时包含 OpenTelemetry 和 Cloud Monitoring 依赖项,系统会自动收集指标。这些指标不收取额外费用。

可选:选择停用客户端指标

您可以在创建数据连接时将 EnableMetricsOption 设置为 false,以选择停用客户端指标。

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 客户端库默认启用客户端指标。如需选择不接收,请在 ClientConfig 中传递 NoopMetricsProvider

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.xbigtable-hbase-2.x:用于由您控制依赖项的独立应用。
    • bigtable-hbase-1.x-hadoopbigtable-hbase-2.x-hadoop:在 Hadoop 环境中使用。
    • bigtable-hbase-1.x-shadedbigtable-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.xbigtable-hbase-2.x

如果您使用 HBase 客户端库和 bigtable-hbase-1.xbigtable-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 统计数据集成来获取 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
    

在应用中启用客户端指标

自版本 4.0.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 监控

后续步骤