Java
Host metrics 是指从运行应用程序的主机的操作系统收集的指标,这些指标包括 CPU、内存、磁盘和网络使用情况。 了解主机指标至关重要,因为它可以帮助你识别可能影响应用程序整体性能的潜在问题或瓶颈。 在本教程中,我们将 向你展示如何收集 Host metrics,将它们发送到 GreptimeDB 并进行数据可视化。
创建服务
为了充分体验 GreptimeCloud 的强大功能,你需要创建一个包含身份验证数据库的服务。打开 GreptimeCloud 控制台,注册并登录。然后单击 New Service
按钮并配置以下内容:
- Service Name: 服务名称。
- Description: 有关该服务的更多信息。
- Region: 选择数据库所在的区域。
- Plan: 选择要使用的定价计划。
现在创建服务,准备向其写入一些数据。
写入数据
准备
示例 Demo
在本节中,我们将创建一个快速开始的 Demo,并展示收集 JVM runtime metrics 并发送到 GreptimeDB 的核心代码。该 Demo 基于OTLP/HTTP。你可以在 GitHub 上获取整个 Demo 以作参考。
首先创建一个名为 quick-start-java
的新目录来托管我们的项目,然后使用 IDEA 在该目录中创建一个新项目。选择 Java 作为语言,Gradle 作为构建系统,JDK 17 作为项目 SDK,Groovy 作为 Gradle DSL,然后点击 Create 按钮。
在 build.gradle 中安装所需的包:
dependencies {
implementation 'io.opentelemetry:opentelemetry-api:1.28.0'
implementation 'io.opentelemetry:opentelemetry-sdk:1.28.0'
implementation 'io.opentelemetry:opentelemetry-exporter-otlp:1.28.0'
implementation 'io.opentelemetry:opentelemetry-semconv:1.28.0-alpha'
implementation 'io.opentelemetry.instrumentation:opentelemetry-runtime-metrics:1.26.0-alpha'
}
安装完依赖后,编写代码创建一个 Metric Exporter 对象,用于将 metrics 发送到 GreptimeDB。 请参考 GreptimeDB 或 GreptimeCloud 中的 OTLP 集成文档获取 exporter 的相关配置。
String endpoint = String.format("https://%s/v1/otlp/v1/metrics", dbHost);
String auth = username + ":" + password;
String b64Auth = new String(Base64.getEncoder().encode(auth.getBytes()));
OtlpHttpMetricExporter exporter = OtlpHttpMetricExporter.builder()
.setEndpoint(endpoint)
.addHeader("X-Greptime-DB-Name", db)
.addHeader("Authorization", String.format("Basic %s", b64Auth))
.setTimeout(Duration.ofSeconds(5))
.build();