tree: 207202dac40ed15498b9ff8c626c18ff9a5345e4 [path history] [tgz]
  1. .env
  2. compose-all.sh
  3. docker-compose-freon.yaml
  4. docker-compose.yaml
  5. docker-config
  6. init.sh
  7. prometheus.yml
  8. README.md
hadoop-dist/src/main/compose/ozoneperf/README.md

Compose files for local performance tests

This directory contains docker-compose definition for an ozone cluster where all the metrics are saved to a prometheus instance.

Prometheus follows a pull based approach where the metrics are published on a HTTP endpoint.

Our current approach:

  1. A Java agent activates a prometheus metrics endpoint in every JVM instance (use init.sh to download the agent)

  2. The Java agent publishes all the jmx parameters in prometheus format AND register the endpoint address to the consul.

  3. Prometheus polls all the endpoints which are registered to consul.

How to use

First of all download the required Java agent with running ./init.sh

After that you can start the cluster with docker-compose:

docker-compose up -d

After a while the cluster will be started. You can check the ozone web ui-s:

https://localhost:9874 https://localhost:9876

You can also scale up the datanodes:

docker-compose scale datanode=3

Freon (Ozone test generator tool) is not part of docker-compose by default, you can activate it using compose-all.sh instead of docker-compose:

compose-all.sh up -d

Now Freon is running. Let's try to check the metrics from the local Prometheus:

http://localhost:9090/graph

Example queries:

Hadoop_OzoneManager_NumKeyCommits
rate(Hadoop_OzoneManager_NumKeyCommits[10m])
rate(Hadoop_Ozone_BYTES_WRITTEN[10m])