A monitoring application for Zeebe. It is designed for developers to
- get in touch with Zeebe and workflow execution (BPMN)
- test workflows manually
- provide insides on how workflows are executed
The application imports the data from Zeebe using the Hazelcast exporter. It aggregates the data and stores it into a (in-memory) database. The data is displayed on server-side rendered HTML pages.
See the upgrade instructions.
The docker image for the worker is published to GitHub Packages.
docker pull ghcr.io/camunda-community-hub/zeebe-simple-monitor:2.4.1
- ensure that a Zeebe broker is running with a Hazelcast exporter (>=
1.0.0
) - forward the Hazelcast port to the docker container (default:
5701
) - configure the connection to the Zeebe broker by setting
zeebe.client.broker.gateway-address
(default:localhost:26500
) - configure the connection to Hazelcast by setting
zeebe.client.worker.hazelcast.connection
(default:localhost:5701
)
If the Zeebe broker runs on your local machine with the default configs then start the container with the following command:
docker run --network="host" ghcr.io/camunda-community-hub/zeebe-simple-monitor:2.4.1
For a local setup, the repository contains a docker-compose file. It starts a Zeebe broker with the Hazelcast exporter and the application.
mvn clean install -DskipTests
cd docker
docker-compose --profile in-memory up
Go to http://localhost:8082
To use PostgreSQL instead of the in-memory database, use the profile postgres
.
docker-compose --profile postgres up
-
Download the latest application JAR (zeebe-simple-monitor-%{VERSION}.jar )
-
Start the application
java -jar zeebe-simple-monitor-{VERSION}.jar
-
Go to http://localhost:8082
The application is a Spring Boot application that uses the Spring Zeebe Starter. The configuration can be changed via environment variables or an application.yaml
file. See also the following resources:
By default, the port is set to 8082
and the database is only in-memory (i.e. not persistent).
zeebe:
client:
broker.gateway-address: 127.0.0.1:26500
security.plaintext: true
worker:
hazelcast:
connection: localhost:5701
connectionTimeout: PT30S
spring:
datasource:
url: jdbc:h2:mem:zeebe-monitor;DB_CLOSE_DELAY=-1
username: sa
password:
driverClassName: org.h2.Driver
jpa:
database-platform: org.hibernate.dialect.H2Dialect
hibernate:
ddl-auto: update
server:
port: 8082
servlet:
context-path: /
allowedOriginsUrls: ""
The context-path or base-path of the application can be changed using the following property:
server:
servlet:
context-path: /monitor/
It is then available under http://localhost:8082/monitor.
To enable Simple Monitor to send CORS header with every HTTP response,
add the allowed origins (;
separated) in the following property:
server:
allowedOriginsUrls: http://localhost:8082;https://monitor.cloud-provider.io:8082
This will then set Access-Control-Allow-Origin
headers in every HTTP response.
You can customize the look & feel of the Zeebe Simple Monitor (aka. white-labeling). For example, to change the logo or alter the background color. The following configurations are available:
- white-label.logo.path=img/logo.png
- white-label.custom.title=Zeebe Simple Monitor
- white-label.custom.css.path=css/custom.css
- white-label.custom.js.path=js/custom.js
For example, using PostgreSQL:
- change the following database configuration settings
- spring.datasource.url=jdbc:postgresql://db:5432/postgres
- spring.datasource.username=postgres
- spring.datasource.password=zeebe
- spring.datasource.driverClassName=org.postgresql.Driver
- spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
- the PostgreSQL database driver is already bundled
See the docker-compose file (profile: postgres
) for a sample configuration with PostgreSQL.
The configuration for using MySql is similar but with an additional setting for the Hibernate naming strategy:
- spring.datasource.url=jdbc:mysql://db:3306/simple_monitor
- spring.datasource.username=root
- spring.datasource.password=zeebe
- spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
- spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL8Dialect
- spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
- the MySql database driver is already bundled
See the docker-compose file (profile: mysql
) for a sample configuration with MySql.
This project adheres to the Contributor Covenant Code of Conduct. By participating, you are expected to uphold this code. Please report unacceptable behavior to code-of-conduct@zeebe.io.