-
Notifications
You must be signed in to change notification settings - Fork 4
Tutorial 3: Running ChronoLog with Docker(single node)
If you’re looking for the easiest way to run ChronoLog, this is it. ChronoLog’s Docker image provides a ready-to-use installation, so you can skip the manual setup and jump straight into using it.
Let’s get started! 🚀
Docker is a tool that allows you to run applications inside lightweight, isolated environments called containers. This means you don’t have to worry about dependencies or system configurations—everything is pre-packaged and ready to go.
For a deeper dive, check out:
Before continuing, let’s verify that Docker is properly installed on your system
docker --version
If you see a version number, you’re good to go!
First, pull the pre-built ChronoLog image from Docker Hub:
docker pull gnosisrc/chronolog:latest
This downloads the latest ChronoLog image to your local machine, ensuring you have the most up-to-date version.
Next, launch the ChronoLog container:
docker run -it --rm --name chronolog-instance gnosisrc/chronolog:latest
This command:
- Starts a new ChronoLog container.
-
Runs it in interactive mode (
-it
), opening a terminal session inside the container. -
Removes the container (
--rm
) when it stops, so it doesn’t persist unnecessarily. -
Assigns a name (
--name chronolog-instance
) for easier reference.
Once executed, you should see a welcome message. At this point, you are inside the ChronoLog container.
Open a new terminal window (outside the Docker container) and run:
docker ps
You should see a container named chronolog-instance
. For example:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
bfbc93af1d50 gnosisrc/chronolog:latest "/bin/bash" X seconds ago Up X seconds chronolog-instance
This indicates your ChronoLog container is up and running successfully! 🚀
With the ChronoLog environment set up, it’s time to deploy the system. We’ll use the ChronoLog single-node deployment script to start all necessary components.
Inside the container, navigate to the deployment scripts directory:
cd /home/grc-iit/chronolog_repo/deploy
Execute the deployment script to start the ChronoLog system:
./local_single_user_deploy.sh -d -w /home/grc-iit/chronolog_install/Release
This command will deploy a basic ChronoLog architecture, including:
- One ChronoVisor (log controller)
- One ChronoKeeper (log store manager)
- One ChronoGrapher (query and indexing service)
- One ChronoPlayer (stream processor)
To ensure all components are properly deployed, run the following command:
pgrep -la chrono
You should see an active process for each ChronoLog component:
/home/grc-iit/chronolog_install/Release/bin/chronovisor_server --config /home/grc-iit/chronolog_install/Release/conf/visor_conf.json
/home/grc-iit/chronolog_install/Release/bin/chrono_grapher --config /home/grc-iit/chronolog_install/Release/conf/grapher_conf_1.json
/home/grc-iit/chronolog_install/Release/bin/chrono_player --config /home/grc-iit/chronolog_install/Release/conf/player_conf_1.json
/home/grc-iit/chronolog_install/Release/bin/chrono_keeper --config /home/grc-iit/chronolog_install/Release/conf/keeper_conf_1.json
If all four processes appear, your ChronoLog deployment is successfully running! 🚀
With the ChronoLog environment set up and all components deployed, it’s time to test the system by running a client and analyzing its performance.
Run the following command to start the client admin with multiple MPI processes:
LD_LIBRARY_PATH=~/chronolog_install/Release/lib \
/home/grc-iit/chronolog_repo/.spack-env/view/bin/mpiexec -n 4 \
~/chronolog_install/Release/bin/client_admin \
--config ~/chronolog_install/Release/conf/default_conf.json \
-h 2 -t 2 -a 100 -s 100 -b 100 -n 100 -p
This command:
- Launches the ChronoLog client.
- Uses 4 MPI processes for parallel execution (
-n 4
). - Runs a performance test with specific parameters (
-h 2 -t 2 -a 100 -s 100 -b 100 -n 100 -p
).
Once executed, the client will create Chronicles, Stories, and Events, simulating real workloads to evaluate system performance.
Once you’re done using ChronoLog, exit the container:
exit
Then stop the running instance (if it wasn’t started with --rm
):
docker stop chronolog-instance
And if you want to remove it completely:
docker rm chronolog-instance
Now that you have ChronoLog running in Docker, you’re ready to:
✅ Explore different ChronoLog deployment options by checking the Deployment Guide.
✅ Discover the potential of ChronoLog Clients: Basic Client, Interactive Client, Scripted Client & Python Client.
✅ Start building your own applications on top of ChronoLog.
In our next tutorial, we’ll show you how to run ChronoLog in a multi-node setup, so stay tuned! 🚀