Skip to content

Go

在本节中,我们将收集系统层面的数据,例如 CPU 和内存使用情况,并将它们发送到本地 GreptimeDB。

准备事项

在开始之前,我们需要在本地安装并运行 GreptimeDB 和 Grafana。

这里我们使用 Docker Compose 来启动 GreptimeDB 和 Grafana。为此,创建一个 docker-compose.yml 文件,内容如下:

yaml
services:
  grafana:
    image: grafana/grafana-oss:9.5.15
    container_name: grafana
    ports:
      - 127.0.0.1:3000:3000

  greptime:
    image: greptime/greptimedb:v0.8.2
    container_name: greptimedb
    ports:
      - 127.0.0.1:4000:4000
      - 127.0.0.1:4001:4001
      - 127.0.0.1:4002:4002
      - 127.0.0.1:4003:4003
    command: "standalone start --http-addr 0.0.0.0:4000 --rpc-addr 0.0.0.0:4001 --mysql-addr 0.0.0.0:4002 --postgres-addr 0.0.0.0:4003"
    volumes:
      - ./greptimedb:/tmp/greptimedb

networks: {}
services:
  grafana:
    image: grafana/grafana-oss:9.5.15
    container_name: grafana
    ports:
      - 127.0.0.1:3000:3000

  greptime:
    image: greptime/greptimedb:v0.8.2
    container_name: greptimedb
    ports:
      - 127.0.0.1:4000:4000
      - 127.0.0.1:4001:4001
      - 127.0.0.1:4002:4002
      - 127.0.0.1:4003:4003
    command: "standalone start --http-addr 0.0.0.0:4000 --rpc-addr 0.0.0.0:4001 --mysql-addr 0.0.0.0:4002 --postgres-addr 0.0.0.0:4003"
    volumes:
      - ./greptimedb:/tmp/greptimedb

networks: {}

然后执行以下命令:

shell
docker-compose up
docker-compose up

注意

接下来的步骤假设你按照上面的文档安装了 GreptimeDB 和 Grafana。

当你成功启动 GreptimeDB 之后,可以使用以下命令验证数据库状态:

shell
curl http://127.0.0.1:4000/status
curl http://127.0.0.1:4000/status

如果数据库正在运行,你将看到类似如下的输出:

json
{
  "source_time": "2024-05-30T07:59:52Z",
  "commit": "05751084e7bbfc5e646df7f51bb7c3e5cbf16d58",
  "branch": "HEAD",
  "rustc_version": "rustc 1.79.0-nightly (f9b161492 2024-04-19)",
  "hostname": "977898bbda4f",
  "version": "0.8.1"
}
{
  "source_time": "2024-05-30T07:59:52Z",
  "commit": "05751084e7bbfc5e646df7f51bb7c3e5cbf16d58",
  "branch": "HEAD",
  "rustc_version": "rustc 1.79.0-nightly (f9b161492 2024-04-19)",
  "hostname": "977898bbda4f",
  "version": "0.8.1"
}

写入数据

使用下面的命令收集系统指标数据,例如 CPU 和内存使用情况,并将其发送到 GreptimeCloud。一旦成功发送,这些指标就可以在 GreptimeCloud 控制台中查看。 该 Demo 基于 OTLP/http 采集并发送数据,源代码位于 GitHub.

shell
go run github.com/GreptimeCloudStarters/quick-start-go@latest -endpoint=http://localhost:4000/v1/otlp/v1/metrics
go run github.com/GreptimeCloudStarters/quick-start-go@latest -endpoint=http://localhost:4000/v1/otlp/v1/metrics

使用 Grafana 可视化数据

添加数据源

你可以在 http://localhost:3000 访问 Grafana 并使用 admin 作为用户名和密码登录。

GreptimeDB 可以作为 Prometheus 数据源配置在 Grafana 中。 点击 Add data source 按钮,选择 Prometheus 作为类型。

add-prometheus-data-source

填写以下信息:

  • Name: GreptimeDB
  • Prometheus server URL in HTTP: http://greptimedb:4000/v1/prometheus
  • Custom HTTP headers: 点击 Add header, 填写 header x-greptime-db-name 和 value public,即数据库的名称。

grafana-prometheus-config.jpg

点击 Save & Test 按钮,确保数据源配置成功。

关于使用 Prometheus 作为 GreptimeDB 数据源的更多信息,请参考 Grafana-Prometheus

创建仪表盘

在 Grafana 中创建一个新的仪表盘,点击 Create your first dashboard 按钮。 然后,点击 Add visualization,选择 GreptimeDB 作为数据源。

Metric 下拉列表中选择一个指标,然后点击 Run query 查看指标数据。 当你查看数据并确认无误后,点击 Save 保存面板。

grafana-create-panel-with-selecting-metric

你还可以使用 PromQL 创建面板。 点击 Query 标签页右侧的 code 按钮,切换到 PromQL 编辑器。 然后输入一个 PromQL 语句,例如 system_memory_usage{state="used"},点击 Run query 查看指标数据。

grafana-create-panel-with-promql

注意

GreptimeDB 兼容大部分 PromQL,但是有一些限制。请参考 PromQL 限制 文档获取更多信息。

下一步

恭喜你已经快速体验了 GreptimeDB 的基础功能! 现在,你可以通过访问 用户指南文档 来探索更多 GreptimeDB 的功能。