本文档介绍了如何将 OpenTelemetry 收集器与
otlphttp 导出器和 Telemetry (OTLP) API (
telemetry.googleapis.com) 搭配使用,后者实现了 OpenTelemetry Line 协议。
通过将 otlphttp 导出器与 Telemetry API 结合使用,您可以将 OTLP 指标注入到 Cloud Monitoring 中。
OTLP 端点支持所有 OTLP 协议,包括 http/protobuf、http/json 和 grpc。如需了解详情,请参阅
协议支持。
您还可以直接从使用 SDK 的应用向 Telemetry API 发送指标。如需了解详情,请参阅 使用 SDK 从应用发送指标。
如果您使用的是 Google Kubernetes Engine,则可以按照 适用于 GKE 的 Managed OpenTelemetry 中的说明操作,而无需 手动部署和配置使用 Telemetry API 的 OpenTelemetry 收集器。
只有在使用 OpenTelemetry 收集器 0.140.0 或更高版本时,OTLP for Prometheus 指标才有效。
Telemetry API 中的指标和标签名称
本部分介绍了使用 Telemetry API 注入到 Cloud Monitoring 中的指标的命名惯例和要求:
指标名称和标签键不支持完整的 UTF-8。
- 不符合正则表达式
[a-zA-Z][a-zA-Z0-9_:./-]*的指标名称将被拒绝。指标名称中允许使用的特殊字符仅限于集合_:./-中的字符。 - 包含不符合正则表达式
[a-zA-Z_][a-zA-Z0-9_.]*的属性(即标签键)的 DataPoint 将被拒绝。标签键中允许使用的特殊字符仅限于集合_.中的字符。标签值中允许使用所有特殊字符。
为防止指标因这些原因而被拒绝,您可以设置 处理器,以便为您转换指标名称和属性 ,方法是使用
replace_pattern函数。- 不符合正则表达式
重要提示:查询包含冒号 (
:) 和下划线 (_) 以外的特殊字符的指标名称和标签键时,您需要根据 PromQL 的 UTF-8 规范,将它们用大括号 ({}) 和引号 (") 括起来。例如,以下查询是有效的:{"my.metric.name"}{"my.metric.name", "label.key.KEY"="value"}
Telemetry API 指标和 Cloud Monitoring
本部分介绍了使用 Telemetry API 和 otlphttp 导出器注入的指标如何与 Cloud Monitoring 交互:
INT64型指标和DOUBLE型指标之间可能会发生值类型冲突,尤其是当您之前 发送过target_info指标时。如果您遇到此类冲突,请删除INT64指标描述符。您可以使用此 Golang 脚本从指标范围中删除所有INT64型target_info指标。在查询指数直方图时保留
le标签可能会返回意外结果。更典型的histogram_quantile(.99, sum by (le) (metric))查询预计可以正常运行。在某些情况下(例如增量非常稀疏),增量指标可能无法正确查询。
协议支持
OTLP 端点支持所有 OTLP 协议,包括 http/protobuf、http/json 和 grpc。从 OpenTelemetry 收集器导出时,您可以使用任何协议。不过,由于大多数 SDK 导出器都不支持动态令牌刷新,因此我们建议您在直接从 SDK 导出时,仅使用 gRPC OTLP 导出器,而不要使用 HTTP 导出器。如需了解详情,请参阅
使用 SDK 从应用发送指标。
结算
OTLP 指标的结算将计入“Prometheus Samples Ingested”SKU 下,该 SKU 与 Google Cloud Managed Service for Prometheus 中的指标所用的 SKU 相同。 如需了解详情,请参阅结算页面。
限制和配额
使用 Telemetry API 注入指标时,需遵守 Telemetry API 指标限制。
此外,所有标准 Cloud Monitoring 和 Google Cloud Managed Service for Prometheus 指标 配额和限制 均适用。例如,指标的标签数量不得超过 200 个。
Telemetry API 注入的指标的默认配额为每分钟 60,000 个请求。 在每个请求最多批次大小 200 个点的情况下,这相当于每秒 200,000 个样本的有效默认配额。您可以申请增加配额。
后续步骤
- 如需查看有关如何使用 Telemetry API 部署和使用 OpenTelemetry 收集器的分步说明,请参阅 部署和使用收集器
- 如需了解如何从使用 SDK 的应用向 Telemetry API 发送指标,请参阅 使用 SDK 从应用发送指标。
- 如需了解如何将 OpenTelemetry 收集器和 Telemetry API 与 OpenTelemetry 零代码插桩搭配使用,请参阅 使用 OpenTelemetry 零代码插桩(适用于 Java)。
- 如需了解如何从
其他导出器迁移到
otlphttp导出器,请参阅迁移到 OTLP 导出器。 - 如需详细了解 Telemetry API,请参阅 Telemetry (OTLP) API 概览。