设置客户端指标
本页面介绍了如何安装、设置和使用 Bigtable 客户端指标。
以下客户端库的用户可以使用客户端指标:
- 适用于 C++ 的 Bigtable 客户端库
- Java 版 Bigtable 客户端库
- Java 版 Bigtable HBase 客户端
- Go 版 Bigtable 客户端库
- Node.js 版 Bigtable 客户端库
如需查看概览,请参阅客户端指标概览。如需查看指标的详细列表,请参阅客户端指标说明。
添加或确认服务账号权限
如需向服务账号添加 IAM 权限,请完成以下操作:
- 在 Google Cloud 控制台中,前往 IAM 页面。 
- 选择您在其中创建 Bigtable 集群的项目。 
- 搜索要向其添加权限的服务账号。 
- 点击修改主账号。 
- 点击“添加其他角色”。 
- 搜索“monitoring metric writer”,然后选择结果。 
- 点击保存。 
启用 Cloud Monitoring API
- 在 Google Cloud 控制台中,前往 API 和服务页面。 
- 选择您在其中创建 Bigtable 集群的项目。 
- 点击启用 API 和服务。 
- 搜索 - Monitoring。
- 在搜索结果中,点击 Cloud Monitoring API。 
- 如果显示 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 客户端库
- 下载并安装最新的 Java 版 Bigtable HBase 客户端。如需启用客户端指标,您必须使用 2.6.4 或更高版本。 
- 创建一个空的 Maven 项目。 
- 确定适合您的使用情形的制品依赖项。 - 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 环境中使用。
 
- 更新 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.x或- bigtable-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 统计数据集成来获取 Bigtable 指标,请还原应用中的依赖项和 StackdriverStatsExporter 更改。如需了解原因,请参阅何时升级。
安装并配置 Java 版客户端库
- 下载并安装最新的 Java 版 Bigtable 客户端库。 您必须拥有 2.16.0 或更高版本才能使用客户端指标。
- 更新 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 版客户端库
- 下载并安装最新的 Node.js 版 Bigtable 客户端库。 - 您必须拥有 6.2.0 或更高版本才能使用客户端指标。您的 - package.json文件应类似于以下内容:- { "dependencies": { "@google-cloud/bigtable": "^6.2.0" } }
- 在项目中,重新安装 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 中查看指标
- 在 Google Cloud 控制台中,前往 Metrics Explorer 页面。 
- 选择项目。 
- 点击选择指标。 
- 搜索 - bigtable.googleapis.com/client。
- 选择指标、 - group by方法和状态,然后选择聚合器 (Aggregator)。如需了解更多选项,请参阅使用 Metrics Explorer 时选择指标。
启用客户端指标后,让应用运行至少 1 分钟,然后再检查是否有任何已发布的指标。
在 Bigtable 监控中查看指标
Bigtable 监控页面上会显示以下客户端指标的图表:
- 客户端读取延迟时间
- 客户端写入延迟时间
- 客户端读取尝试延迟时间
- 客户端写入尝试延迟时间
如需在监控页面上查看客户端指标,请按以下步骤操作:
- 在 Google Cloud 控制台中打开 Bigtable 实例列表。 
- 点击要查看其指标的实例。 
- 在左侧窗格中,点击监控。 Google Cloud 控制台会显示实例的一系列图表。 
- 滚动浏览窗格,查看客户端指标。 
- 可选:如需在表格级层查看指标,请点击表格。 
- 可选:如需查看单个应用配置文件的指标,请点击应用配置文件。 
如需了解详情,请参阅 Bigtable 监控。