Java

In this section, we will collect system metric data, such as CPU and memory usage, and sends them to local GreptimeDB.

Prerequisites

Before trying GreptimeDB, we need to have GreptimeDB and Grafana installed and running locally.

  • GreptimeDB is used for storing and querying data.
  • Grafana is used for visualizing data.

Here we use Docker Compose to start GreptimeDB and Grafana. To do this, create a docker-compose.yml file with the following content:

yaml

  1. services:
  2. grafana:
  3. image: grafana/grafana-oss:9.5.15
  4. container_name: grafana
  5. ports:
  6. - 3000:3000
  7. greptime:
  8. image: greptime/greptimedb:latest
  9. container_name: greptimedb
  10. ports:
  11. - 4000:4000
  12. - 4001:4001
  13. - 4002:4002
  14. - 4003:4003
  15. - 4004:4004
  16. - 4242:4242
  17. 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 --opentsdb-addr 0.0.0.0:4242"
  18. volumes:
  19. - ./greptimedb:/tmp/greptimedb
  20. networks: {}

Then run the following command:

shell

  1. docker-compose up

NOTE

The following steps assume that you have followed the documentation above, which uses Docker Compose to install GreptimeDB and Grafana.

Write Data

Use the following command to collect JVM runtime metrics, such as CPU and memory usage, and send them to GreptimeDB. This demo is based on OpenTelemetry OTLP/http. The source code is available on GitHub.

shell

  1. curl -L https://github.com/GreptimeCloudStarters/quick-start-java/releases/latest/download/greptime-quick-start-java-all.jar \
  2. --output quick-start.jar && java -jar quick-start.jar -e http://localhost:4000/v1/otlp/v1/metrics

Visualize Data with Grafana

Add Data Source

You can access Grafana at http://localhost:3000. Use admin as both the username and password to log in.

GreptimeDB can be configured as a Prometheus data source in Grafana. Click the Add data source button and select Prometheus as the type.

add-prometheus-data-source

Fill in the following information:

  • Name: GreptimeDB
  • Prometheus server URL in HTTP: http://greptime:4000/v1/prometheus?db=public

grafana-prometheus-config.jpg

Then click Save & Test button to test the connection.

For more information on using Prometheus as a data source for GreptimeDB, please refer to Grafana-Prometheus.

Create a Dashboard

To create a new dashboard in Grafana, click the Create your first dashboard button on the home page. Then, click Add visualization and select GreptimeDB as the data source.

To view the metric data on the panel page, select a metric from the Metric drop-down list in the Query tab, and then click Run query. Once you have reviewed the data, click Save to save the panel.

grafana-create-panel-with-selecting-metric

You can also use PromQL to create panels. Click the code button on the right side of the Query tab to switch to the PromQL editor. Then, enter a PromQL statement, such as system_memory_usage{state="used"}, and click Run query to view the metric data.

grafana-create-panel-with-promql

NOTE

GreptimeDB is compatible with most of PromQL, but there are some limitations. Please refer to the PromQL Limitations documentation for more information.

Next Steps

Congratulations on quickly experiencing the basic features of GreptimeDB! Now, you can explore more of GreptimeDB’s features by visiting the User Guide documentation.