Code Monkey home page Code Monkey logo

zeebe-simple-monitor's Introduction

Zeebe Simple Monitor

License

Compatible with: Camunda Platform 8

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, Kafka exporter or Redis exporter. It aggregates the data and stores it into a database. The data is displayed on server-side rendered HTML pages.

how-it-works

Install

Upgrading from a prior version

See the upgrade instructions.

Docker

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)
  • 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)
  • forward the Hazelcast port to the docker container (default: 5701)
  • if you want to set the Hazelcast clusterName then you need to adjust the Zeebe broker and the Zeebe Simple Monitor alike
    • Hint: this is useful, e.g. when you want to adjust the ringbuffer's size in the Hazelcast cluster (the name is relevant)
    • a) in Zeebe broker, set the environment variable ZEEBE_HAZELCAST_CLUSTER_NAME=dev (default: dev)
    • b) in Zeebe Simple Monitor, change the setting zeebe.client.worker.hazelcast.clusterName (default: dev)

Switch to the Kafka exporter/importer

By default, the Zeebe Simple Monitor imports Zeebe events through Hazelcast, but you can switch to Kafka.

  • Ensure that a Zeebe broker is running with a Kafka exporter (>= 3.1.1)
  • Configure the environment variables in the Zeebe broker:
    • Add spring configuration for the zeebe-kafka-exporter: SPRING_CONFIG_ADDITIONAL_LOCATION: /usr/local/zeebe/config/exporter.yml. Example and details
    • Inject exporter.yml and zeebe-kafka-exporter.jar into the Docker container, for example, using Docker Compose:
      volumes:
        - ./exporter.yml:/usr/local/zeebe/config/exporter.yml
        - ./zeebe-kafka-exporter-3.1.1-jar-with-dependencies.jar:/usr/local/zeebe/lib/zeebe-kafka-exporter.jar
    
    • Set the Kafka internal host: KAFKA_BOOTSTRAP_SERVERS: "kafka:9092"
    • Set the Kafka topic: KAFKA_TOPIC: zeebe
    • In order to import events efficiently and quickly, Zeebe brokers partitions and Kafka topic partitions should be correlated in a special way: reference to the exporter docs
  • Configure the environment variables in the Zeebe Simple Monitor as described in the "Change the default Zeebe importer to Kafka" section

Switch to the Redis exporter/importer

  • Ensure that a Zeebe broker is running with a Redis exporter
  • Adjust the following environment variables in Zeebe:
    - ZEEBE_REDIS_REMOTE_ADDRESS=redis://redis:6379
    - ZEEBE_REDIS_MAX_TIME_TO_LIVE_IN_SECONDS=900
    - ZEEBE_REDIS_DELETE_AFTER_ACKNOWLEDGE=true
    
  • Configure the connection to the Zeebe broker by setting zeebe.client.broker.gateway-address (default: localhost:26500)
  • Configure the connection to Redis by setting zeebe.client.worker.redis.connection (default: redis://localhost:6379)
  • Activate Redis by setting zeebe-importer: redis

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/Kafka/Redis exporter and the application. There are several Docker Compose profiles, setting by a file .env, by passing multiple --profile flags or a comma-separated list for the COMPOSE_PROFILES environment variable:

  • docker compose --profile hazelcast --profile hazelcast_in_memory up
  • COMPOSE_PROFILES=hazelcast,hazelcast_in_memory docker compose up

Existing presets:

  • COMPOSE_PROFILES=hazelcast,hazelcast_in_memory (by default)
  • COMPOSE_PROFILES=kafka,kafka_in_memory
  • COMPOSE_PROFILES=redis,redis_in_memory
  • COMPOSE_PROFILES=hazelcast,hazelcast_postgres,postgres
  • COMPOSE_PROFILES=hazelcast,hazelcast_mysql,mysql

The commands to build and run:

mvn clean install -DskipTests
cd docker
docker-compose up

Go to http://localhost:8082

To change the database see "Change the Database"

To change Zeebe importer see "Change the default Zeebe importer to Kafka" or "Change the default Zeebe importer to Redis"

docker-compose --profile postgres up

Manual

  1. Download the latest application JAR (zeebe-simple-monitor-%{VERSION}.jar )

  2. Start the application java -jar zeebe-simple-monitor-{VERSION}.jar

  3. Go to http://localhost:8082

Configuration

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
        clusterName: dev
        connectionTimeout: PT30S

# Options: hazelcast | kafka
# This config switches importers between the provided
# To use each of them, zeebe must be configured using hazelcast-exporter or kafka-exporter, respectively
# See the examples in docker/docker-compose.yml in services.zeebe and services.zeebe-kafka
zeebe-importer: hazelcast

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

  kafka:
    template:
      default-topic: zeebe
    bootstrap-servers: localhost:9093
    properties:
      request.timeout.ms: 20000
      retry.backoff.ms: 500
    group-id: zeebe-simple-monitor
    consumer:
      auto-offset-reset: earliest
      properties:
        # 1Mb (1*1024*1024), max size of batch
        max.partition.fetch.bytes: 1048576
        # Number of messages in batch received by kafka listener.
        # Works only if their size is less than 'max.partition.fetch.bytes'
        max.poll.records: 1000
    custom:
      # Set equal to number of topic partitions to handle them in parallel
      concurrency: 3
      retry:
        intervalMs: 30000
        max-attempts: 3

server:
  port: 8082
  servlet:
    context-path: /
  allowedOriginsUrls: ""

Change the Context-Path

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.

Cross Origin Requests

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.

Customize the Look & Feel

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

Change the Database

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 for a sample configuration with PostgreSQL. Profiles presets: hazelcast,hazelcast_postgres,postgres

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.MySQLDialect
- spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
  • the MySql database driver is already bundled

See the docker-compose file for a sample configuration with MySql. Profiles presets: hazelcast,hazelcast_mysql,mysql

Change the default Zeebe importer to Kafka

  • set the zeebe-importer (default: hazelcast) configuration property to kafka
  • configure the connection to Kafka by setting spring.kafka.bootstrap-servers (default: localhost:9093)
  • configure the Kafka topic by setting spring.kafka.template.default-topic (default: zeebe)
  • configure custom Kafka properties if necessary:
    • spring.kafka.custom.concurrency (default: 3) is the number of threads for the Kafka listener that will import events from Zeebe
    • spring.kafka.custom.retry.intervalMs (default: 30000) and spring.kafka.custom.retry.max-attempts (default: 3) are the retry configurations for a retryable exception in the listener

Refer to the docker-compose file for a sample configuration with the Kafka importer. Profile presets: kafka,kafka_in_memory

Change the default Zeebe importer to Redis

  • set the zeebe-importer (default: hazelcast) configuration property to redis
  • adjust the importer settings under zeebe.client.worker.redis (complete default values below):
zeebe:
  client:
    broker.gatewayAddress: 127.0.0.1:26500
    security.plaintext: true

    worker:
      redis:
        connection: redis://localhost:6379
        useClusterClient: false
        consumer-group: simple-monitor
        prefix: zeebe
        xread-count: 500
        xread-block-millis: 2000

zeebe-importer: redis

Refer to the docker-compose file for a sample configuration with the Redis importer. Profile presets: redis,redis_in_memory

Please be aware that when connecting to a Redis cluster you must activate the useClusterClient option.

Code of Conduct

This project adheres to the Contributor Covenant Code of Conduct. By participating, you are expected to uphold this code. Please report unacceptable behavior to [email protected].

License

Apache License, Version 2.0

About

screencast

zeebe-simple-monitor's People

Contributors

actions-user avatar berndruecker avatar celanthe avatar chaima-mnsr avatar darox avatar dependabot-preview[bot] avatar dependabot[bot] avatar gasymovrv avatar huksley avatar illpillow avatar imgbot[bot] avatar jaakkoraut avatar jbiblio avatar jwulf avatar menski avatar nhrrsn avatar nitram509 avatar npepinpe avatar olivieralbertini avatar renovate[bot] avatar saig0 avatar schmetzyannick avatar shawnsarwar avatar skayliu avatar slewiskelly avatar thorbenlindhauer avatar vibhuti1402agg avatar vonderbeck avatar xamien avatar zelldon avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

zeebe-simple-monitor's Issues

When process is killed - records get read again

If you do a hard kill of the monitor (e.g. Eclipse Stop Button) the subscriptions to Zeebe are not cleanly closed and the last read offset is not committed. In this case some records are re-read on the next startup.

This will cause duplicate entry exceptions when querying mongo!

Primary key violation in exporter

When I include the exporter in my current broker 0.14.0 and run some samples I get:

0:53:27.888 [exporter] [0.0.0.0:26501-zb-actors-0] ERROR io.zeebe.broker.exporter.simple-monitor - Batch insert failed!
org.h2.jdbc.JdbcBatchUpdateException: Unique index or primary key violation: "PRIMARY_KEY_D ON PUBLIC.ACTIVITY_INSTANCE(ID_) VALUES ('2434e0c1-d6e3-4ccb-a21b-b366d5db1a0b', 67)"; SQL statement:
INSERT INTO ACTIVITY_INSTANCE (ID_, PARTITION_ID_, KEY_, INTENT_, WORKFLOW_INSTANCE_KEY_, ACTIVITY_ID_, SCOPE_INSTANCE_KEY_, PAYLOAD_, WORKFLOW_KEY_, TIMESTAMP_) VALUES ('2434e0c1-d6e3-4ccb-a21b-b366d5db1a0b', 0, 4710, 'ELEMENT_ACTIVATED', 4558, 'ServiceTask_0tnty4a', 4558, '{"orderId":"18","eventType":"OrderPaid"}', 3184, 1544607997368); [23505-197]
        at org.h2.jdbc.JdbcStatement.executeBatch(JdbcStatement.java:792) ~[zeebe-simple-monitor-exporter-0.9.0.jar:0.9.0]
        at io.zeebe.monitor.SimpleMonitorExporter.executeSqlStatementBatch(SimpleMonitorExporter.java:220) ~[zeebe-simple-monitor-exporter-0.9.0.jar:0.9.0]
        at io.zeebe.monitor.SimpleMonitorExporter.batchTimerExecution(SimpleMonitorExporter.java:211) ~[zeebe-simple-monitor-exporter-0.9.0.jar:0.9.0]
        at io.zeebe.util.sched.ActorJob.invoke(ActorJob.java:90) [zb-util-0.14.0.jar:0.14.0]
        at io.zeebe.util.sched.ActorJob.execute(ActorJob.java:53) [zb-util-0.14.0.jar:0.14.0]
        at io.zeebe.util.sched.ActorTask.execute(ActorTask.java:187) [zb-util-0.14.0.jar:0.14.0]
        at io.zeebe.util.sched.ActorThread.executeCurrentTask(ActorThread.java:154) [zb-util-0.14.0.jar:0.14.0]
        at io.zeebe.util.sched.ActorThread.doWork(ActorThread.java:135) [zb-util-0.14.0.jar:0.14.0]
        at io.zeebe.util.sched.ActorThread.run(ActorThread.java:112) [zb-util-0.14.0.jar:0.14.0]

Add button to increase retries

To showcase how to bring failed instances back to live.

Probably uses
client.topicClient().jobClient().newUpdateRetriesCommand(event);
underneath

`Error loading shared library libjli.so` in Docker

On an Ubuntu 18.04 VM in Azure, the simple monitor docker container camunda/zeebe-simple-monitor:latest fails with:

Error loading shared library libjli.so: No such file or directory (needed by /usr/lib/jvm/default-jvm/bin/java)
Error relocating /usr/lib/jvm/default-jvm/bin/java: JLI_Launch: symbol not found

It seems to be this bug: docker-library/openjdk#77.

I followed the guidance in this comment: docker-library/openjdk#77 (comment), and rebuilt the container with a Dockerfile that copies the suggested /etc/ld-musl-x86_64.path file into the container.

Then it worked.

I haven't encountered this issue on Mac OS or on Fedora 29.

Zeebe simple monitor connected to PostgreSQL

As developer, I want to use Zeebe simple monitor, connected to PostgreSQL(or any DB).

Acceptance criteria:

1.In docker-compose.yml in camunda/zeebe-simple-monitor image I can add environment variables:

    environment:
      - spring.datasource.url=jdbc:postgresql://pgdb-zeebe:5432/zeebe
      - spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
      - spring.datasource.username=zeebe
      - spring.datasource.password=zeebe

and volumes:

    volumes:
      - ./lib/postgresql-42.2.5.jar:/usr/local/zeebe/lib/postgresql-42.2.5.jar

and application will start and will connect to postgres zeebe DB

Problem with distributed deployment on multi partitioned broker

After fixing #23 I had some problems with multiple partitions and workflow instances of an distributed deployment.

How to reproduce:

  • Start the broker with 3 partitions configured
  • Deploy any workflow you want
  • Start some workflow instances (I started 1000).
  • Start the simple-monitor
  • First Problem: On the workflow view the deployment is showed three times
  • Second Problem: Clicking on instances view the following exception is thrown:
2018-11-10 13:29:55.102 ERROR 9575 --- [nio-8080-exec-3] o.a.c.c.C.[.[.[/].[dispatcherServlet]    : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.dao.IncorrectResultSizeDataAccessException: query did not return a unique result: 3; nested exception is javax.persistence.NonUniqueResultException: query did not return a unique result: 3] with root cause

javax.persistence.NonUniqueResultException: query did not return a unique result: 3
        at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:123) ~[hibernate-core-5.2.17.Final.jar!/:5.2.17.Final]
        at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:157) ~[hibernate-core-5.2.17.Final.jar!/:5.2.17.Final]
        at org.hibernate.query.internal.AbstractProducedQuery.getSingleResult(AbstractProducedQuery.java:1471) ~[hibernate-core-5.2.17.Final.jar!/:5.2.17.Final]
        at org.hibernate.query.criteria.internal.compile.CriteriaQueryTypeQueryAdapter.getSingleResult(CriteriaQueryTypeQueryAdapter.java:107) ~[hibernate-core-5.2.17.Final.jar!/:5.2.17.Final]
        at org.springframework.data.jpa.repository.query.JpaQueryExecution$SingleEntityExecution.doExecute(JpaQueryExecution.java:214) ~[spring-data-jpa-2.0.7.RELEASE.jar!/:2.0.7.RELEASE]
        at org.springframework.data.jpa.repository.query.JpaQueryExecution.execute(JpaQueryExecution.java:91) ~[spring-data-jpa-2.0.7.RELEASE.jar!/:2.0.7.RELEASE]
        at org.springframework.data.jpa.repository.query.AbstractJpaQuery.doExecute(AbstractJpaQuery.java:136) ~[spring-data-jpa-2.0.7.RELEASE.jar!/:2.0.7.RELEASE]
        at org.springframework.data.jpa.repository.query.AbstractJpaQuery.execute(AbstractJpaQuery.java:125) ~[spring-data-jpa-2.0.7.RELEASE.jar!/:2.0.7.RELEASE]
        at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.doInvoke(RepositoryFactorySupport.java:590) ~[spring-data-commons-2.0.7.RELEASE.jar!/:2.0.7.RELEASE]
        at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.invoke(RepositoryFactorySupport.java:578) ~[spring-data-commons-2.0.7.RELEASE.jar!/:2.0.7.RELEASE]
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185) ~[spring-aop-5.0.6.RELEASE.jar!/:5.0.6.RELEASE]
        at org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor.invoke(DefaultMethodInvokingMethodInterceptor.java:59) ~[spring-data-commons-2.0.7.RELEASE.jar!/:2.0.7.RELEASE]
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185) ~[spring-aop-5.0.6.RELEASE.jar!/:5.0.6.RELEASE]
        at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:294) ~[spring-tx-5.0.6.RELEASE.jar!/:5.0.6.RELEASE]
        at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:98) ~[spring-tx-5.0.6.RELEASE.jar!/:5.0.6.RELEASE]
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185) ~[spring-aop-5.0.6.RELEASE.jar!/:5.0.6.RELEASE]
        at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:139) ~[spring-tx-5.0.6.RELEASE.jar!/:5.0.6.RELEASE]
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185) ~[spring-aop-5.0.6.RELEASE.jar!/:5.0.6.RELEASE]
        at org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodInterceptor.invoke(CrudMethodMetadataPostProcessor.java:135) ~[spring-data-jpa-2.0.7.RELEASE.jar!/:2.0.7.RELEASE]
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185) ~[spring-aop-5.0.6.RELEASE.jar!/:5.0.6.RELEASE]LEASE]
        at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92) ~[spring-aop-5.0.6.RELEASE.jar!/:5.0.6.RELEASE]
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185) ~[spring-aop-5.0.6.RELEASE.jar!/:5.0.6.RELEASE]
        at org.springframework.data.repository.core.support.SurroundingTransactionDetectorMethodInterceptor.invoke(SurroundingTransactionDetectorMethodInterceptor.java:61) ~[spring-data-commons-2.0.7.RELEASE.jar!/:2.0.7.RELEASE]
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185) ~[spring-aop-5.0.6.RELEASE.jar!/:5.0.6.RELEASE]
        at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:212) ~[spring-aop-5.0.6.RELEASE.jar!/:5.0.6.RELEASE]
        at com.sun.proxy.$Proxy84.findByKey(Unknown Source) ~[na:na]
        at io.zeebe.monitor.rest.WorkflowInstanceResource.lambda$getWorkflowInstance$8(WorkflowInstanceResource.java:82) ~[classes!/:0.8.0-SNAPSHOT]
        at java.util.Optional.map(Optional.java:215) ~[na:1.8.0_181]
        at io.zeebe.monitor.rest.WorkflowInstanceResource.getWorkflowInstance(WorkflowInstanceResource.java:60) ~[classes!/:0.8.0-SNAPSHOT]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_181]
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_181]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_181]
        at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_181]
        at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:209) ~[spring-web-5.0.6.RELEASE.jar!/:5.0.6.RELEASE]
        at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136) ~[spring-web-5.0.6.RELEASE.jar!/:5.0.6.RELEASE]
        at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102) ~[spring-webmvc-5.0.6.RELEASE.jar!/:5.0.6.RELEASE]
        at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:877) ~[spring-webmvc-5.0.6.RELEASE.jar!/:5.0.6.RELEASE]
        at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:783) ~[spring-webmvc-5.0.6.RELEASE.jar!/:5.0.6.RELEASE]
        at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-5.0.6.RELEASE.jar!/:5.0.6.RELEASE]
        at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991) ~[spring-webmvc-5.0.6.RELEASE.jar!/:5.0.6.RELEASE]
        at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925) ~[spring-webmvc-5.0.6.RELEASE.jar!/:5.0.6.RELEASE]
        at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974) ~[spring-webmvc-5.0.6.RELEASE.jar!/:5.0.6.RELEASE]
        at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:866) ~[spring-webmvc-5.0.6.RELEASE.jar!/:5.0.6.RELEASE]
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:635) ~[tomcat-embed-core-8.5.31.jar!/:8.5.31]
        at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851) ~[spring-webmvc-5.0.6.RELEASE.jar!/:5.0.6.RELEASE]
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:742) ~[tomcat-embed-core-8.5.31.jar!/:8.5.31]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) ~[tomcat-embed-core-8.5.31.jar!/:8.5.31]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.31.jar!/:8.5.31]
        at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) ~[tomcat-embed-websocket-8.5.31.jar!/:8.5.31]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-8.5.31.jar!/:8.5.31]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.31.jar!/:8.5.31]
        at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99) ~[spring-web-5.0.6.RELEASE.jar!/:5.0.6.RELEASE]
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-5.0.6.RELEASE.jar!/:5.0.6.RELEASE]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-8.5.31.jar!/:8.5.31]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.31.jar!/:8.5.31]
        at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109) ~[spring-web-5.0.6.RELEASE.jar!/:5.0.6.RELEASE]
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-5.0.6.RELEASE.jar!/:5.0.6.RELEASE]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-8.5.31.jar!/:8.5.31]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.31.jar!/:8.5.31]
        at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81) ~[spring-web-5.0.6.RELEASE.jar!/:5.0.6.RELEASE]
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-5.0.6.RELEASE.jar!/:5.0.6.RELEASE]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-8.5.31.jar!/:8.5.31]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.31.jar!/:8.5.31]
        at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200) ~[spring-web-5.0.6.RELEASE.jar!/:5.0.6.RELEASE]
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-5.0.6.RELEASE.jar!/:5.0.6.RELEASE]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-8.5.31.jar!/:8.5.31]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.31.jar!/:8.5.31]
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198) ~[tomcat-embed-core-8.5.31.jar!/:8.5.31]
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) [tomcat-embed-core-8.5.31.jar!/:8.5.31]
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:496) [tomcat-embed-core-8.5.31.jar!/:8.5.31]
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140) [tomcat-embed-core-8.5.31.jar!/:8.5.31]
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81) [tomcat-embed-core-8.5.31.jar!/:8.5.31]
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87) [tomcat-embed-core-8.5.31.jar!/:8.5.31]
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342) [tomcat-embed-core-8.5.31.jar!/:8.5.31]
        at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:803) [tomcat-embed-core-8.5.31.jar!/:8.5.31]
        at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) [tomcat-embed-core-8.5.31.jar!/:8.5.31]
        at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:790) [tomcat-embed-core-8.5.31.jar!/:8.5.31]
        at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1468) [tomcat-embed-core-8.5.31.jar!/:8.5.31]
        at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) [tomcat-embed-core-8.5.31.jar!/:8.5.31]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [na:1.8.0_181]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [na:1.8.0_181]
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-embed-core-8.5.31.jar!/:8.5.31]
        at java.lang.Thread.run(Thread.java:748) [na:1.8.0_181
  • Third problem: If I click on a Instance a similar exception will be thrown

Show exceptions in UI

Whenever there is an exception in the REST API, it is most often not shown in the UI yet, So you have to watch the console

docker compose fails to run zeebe_monitor - missing table [element_instance]

I just pulled the latest code and then tried to start the docker compose by running docker/run.

zeebe_monitor fails to start and I get the following exception:

zeebe_monitor | org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Invocation of init method failed; nested exception is javax.persistence.PersistenceException: [PersistenceUnit: default] Unable to build Hibernate SessionFactory; nested exception is org.hibernate.tool.schema.spi.SchemaManagementException: Schema-validation: missing table [element_instance]

Docker build failure zeebee-simple-monitor-exporter.jar no such file or directory

Hello,
Running
zeebe-simple-monitor-master\docker\local-config> docker build .
gives the following error:
Step 6/7 : COPY zeebe-simple-monitor-exporter.jar /usr/local/zeebe/lib/zeebe-simple-monitor-exporter.jar ERROR: Service 'zeebe' failed to build: COPY failed: stat /var/lib/docker/tmp/docker-builder035627378/zeebe-simple-monitor-exporter.jar: no such file or directory

All the previous steps in the Dockerfile work correctly.
Do I need to generate the jar file before running docker build?

Thanks,
Cristian

Can't connect to Broker

Hi

Env
laptop macbook pro mojave
java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)
go version go1.11.2 darwin/amd64

I successfully do the get started section of zeebe with the go tutorial (https://docs.zeebe.io/go-client/get-started.html) until it says to use the zeebe-simple-monitor

I run in docker the zeebe version 0.12.1

CONTAINER ID        IMAGE                  COMMAND                  CREATED             STATUS              PORTS                                       NAMES
748a4823930d        camunda/zeebe:latest   "tini -- /usr/local/โ€ฆ"   32 hours ago        Up 37 minutes       0.0.0.0:26500->26500/tcp, 26501-26504/tcp   zeebe

I got an error with the version 0.7.0 (zeebe-simple-monitor)

Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Invocation of init method failed; nested exception is javax.persistence.PersistenceException: [PersistenceUnit: default] Unable to build Hibernate SessionFactory; nested exception is org.hibernate.tool.schema.spi.SchemaManagementException: Schema-validation: missing table [activity_instance]

So I tried java -jar zeebe-simple-monitor-0.6.0.jar

I can connect to localhost:8080
I set the broker connection to localhost:26500
but It doesn't connect to the broker.
When I check to the zeebe container logs :

2018-11-03T21:15:00.857594400Z Nov 03, 2018 9:15:00 PM io.grpc.netty.NettyServerTransport notifyTerminated
2018-11-03T21:15:00.857665600Z INFO: Transport failed
2018-11-03T21:15:00.857685200Z io.netty.handler.codec.http2.Http2Exception: HTTP/2 client preface string missing or corrupt. Hex dump for received bytes: 120000000000000000000000020000000000000000000000
2018-11-03T21:15:00.857702600Z 	at io.netty.handler.codec.http2.Http2Exception.connectionError(Http2Exception.java:85)
2018-11-03T21:15:00.857728300Z 	at io.netty.handler.codec.http2.Http2ConnectionHandler$PrefaceDecoder.readClientPrefaceString(Http2ConnectionHandler.java:318)
2018-11-03T21:15:00.859263700Z 	at io.netty.handler.codec.http2.Http2ConnectionHandler$PrefaceDecoder.decode(Http2ConnectionHandler.java:251)
2018-11-03T21:15:00.859288900Z 	at io.netty.handler.codec.http2.Http2ConnectionHandler.decode(Http2ConnectionHandler.java:450)
2018-11-03T21:15:00.859313000Z 	at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:489)
2018-11-03T21:15:00.859354500Z 	at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:428)
2018-11-03T21:15:00.859378900Z 	at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:265)
2018-11-03T21:15:00.859402900Z 	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
2018-11-03T21:15:00.859427000Z 	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
2018-11-03T21:15:00.859450900Z 	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
2018-11-03T21:15:00.859474800Z 	at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1434)
2018-11-03T21:15:00.859498700Z 	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
2018-11-03T21:15:00.859533000Z 	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
2018-11-03T21:15:00.859557300Z 	at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:965)
2018-11-03T21:15:00.859581300Z 	at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:163)
2018-11-03T21:15:00.859605200Z 	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:646)
2018-11-03T21:15:00.859629100Z 	at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:581)
2018-11-03T21:15:00.859655400Z 	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:498)
2018-11-03T21:15:00.859679400Z 	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:460)
2018-11-03T21:15:00.859703300Z 	at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:884)
2018-11-03T21:15:00.859727200Z 	at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
2018-11-03T21:15:00.859751000Z 	at java.lang.Thread.run(Thread.java:748)
2018-11-03T21:15:00.859774700Z

Any help would be appreciated.

new payload is not been updated after resolving an incident

Hello,
I've created a dummy task that does nothing.
The first time I've created an instance with the payload { "test": 1 }
The task handler is coded to fail so I can see an incident.
After that I've clicked on resolve and put the payload { "test": 2 }
This time the task handler is coded to complete.
After refreshing the instance screen, the payload is completed but the payload is back to { "test": 1 }
I've put some logs and it seems the new payload on the resolve screen is never sent to the task handler.

Migrate simple monitor to use an Zeebe exporter

At the moment the simple monitor use a topic subscription to import events from Zeebe. As topic subscriptions are deprecated the simple monitor should use a Zeebe exporter to retrieve the events.

There are currently two solutions discussed:

  1. Creating a MongoDB exporter camunda/camunda#1331
  2. Migrating the simple monitor to use a relation database over JDBC for example

If we continue with option 2 the search records feature might not work anymore. Which could be replaced by using kibana + elasticsearch exporter.

With the JDBC approach we could support simple dev/demo setups (i.e. filebased sqlite database) and cluster setups (i.e. dedicated MySQL/Postgres).

zeebe_monitor exited with code 1

Windows 10, with Minikube, when I start docker-compose up from simple-monitor folder, zeebe monitor can not be started. I see following exception on the console.
version: zeebe-broker-0.19.0-alpha3

zeebe_monitor | 2019-07-14 04:06:09.742 ERROR 1 --- [ main] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Exception during pool initialization.
zeebe_monitor |
zeebe_monitor | org.h2.jdbc.JdbcSQLException: Database "/opt/h2-data/zeebe-monitor" not found, and IFEXISTS=true, so we cant auto-create it [90146-197]
zeebe_monitor | at org.h2.engine.SessionRemote.done(SessionRemote.java:623) ~[h2-1.4.197.jar!/:na]
zeebe_monitor | at org.h2.engine.SessionRemote.initTransfer(SessionRemote.java:142) ~[h2-1.4.197.jar!/:na]
zeebe_monitor | at org.h2.engine.SessionRemote.connectServer(SessionRemote.java:447) ~[h2-1.4.197.jar!/:na]
zeebe_monitor | at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:332) ~[h2-1.4.197.jar!/:na]
zeebe_monitor | at org.h2.jdbc.JdbcConnection.(JdbcConnection.java:124) ~[h2-1.4.197.jar!/:na]
zeebe_monitor | at org.h2.jdbc.JdbcConnection.(JdbcConnection.java:103) ~[h2-1.4.197.jar!/:na]
zeebe_monitor | at org.h2.Driver.connect(Driver.java:69) ~[h2-1.4.197.jar!/:na]
zeebe_monitor | at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:136) ~[HikariCP-3.2.0.jar!/:na]
zeebe_monitor | at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:369) ~[HikariCP-3.2.0.jar!/:na]
zeebe_monitor | at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:198) ~[HikariCP-3.2.0.jar!/:na]
zeebe_monitor | at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:467) [HikariCP-3.2.0.jar!/:na]
zeebe_monitor | at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:541) [HikariCP-3.2.0.jar!/:na]
zeebe_monitor | at com.zaxxer.hikari.pool.HikariPool.(HikariPool.java:115) [HikariCP-3.2.0.jar!/:na]
zeebe_monitor | at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:112) [HikariCP-3.2.0.jar!/:na]
zeebe_monitor | at org.springframework.jdbc.datasource.DataSourceUtils.fetchConnection(DataSourceUtils.java:157) [spring-jdbc-5.1.4.RELEASE.jar!/:5.1.4.RELEASE]
zeebe_monitor | at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:115) [spring-jdbc-5.1.4.RELEASE.jar!/:5.1.4.RELEASE]
zeebe_monitor | at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:78) [spring-jdbc-5.1.4.RELEASE.jar!/:5.1.4.RELEASE]
zeebe_monitor | at org.springframework.jdbc.support.JdbcUtils.extractDatabaseMetaData(JdbcUtils.java:319) [spring-jdbc-5.1.4.RELEASE.jar!/:5.1.4.RELEASE]
zeebe_monitor | at org.springframework.jdbc.support.JdbcUtils.extractDatabaseMetaData(JdbcUtils.java:356) [spring-jdbc-5.1.4.RELEASE.jar!/:5.1.4.RELEASE]
zeebe_monitor | at org.springframework.boot.autoconfigure.orm.jpa.DatabaseLookup.getDatabase(DatabaseLookup.java:73) [spring-boot-autoconfigure-2.1.2.RELEASE.jar!/:2.1.2.RELEASE]
zeebe_monitor | at org.springframework.boot.autoconfigure.orm.jpa.JpaProperties.determineDatabase(JpaProperties.java:142) [spring-boot-autoconfigure-2.1.2.RELEASE.jar!/:2.1.2.RELEASE]
zeebe_monitor | at org.springframework.boot.autoconfigure.orm.jpa.JpaBaseConfiguration.jpaVendorAdapter(JpaBaseConfiguration.java:112) [spring-boot-autoconfigure-2.1.2.RELEASE.jar!/:2.1.2.RELEASE]
zeebe_monitor | at org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaConfiguration$$EnhancerBySpringCGLIB$$4636b476.CGLIB$jpaVendorAdapter$8() [spring-boot-autoconfigure-2.1.2.RELEASE.jar!/:2.1.2.RELEASE]
zeebe_monitor | at org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaConfiguration$$EnhancerBySpringCGLIB$$4636b476$$FastClassBySpringCGLIB$$1ada2605.invoke() [spring-boot-autoconfigure-2.1.2.RELEASE.jar!/:2.1.2.RELEASE]
zeebe_monitor | at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:244) [spring-core-5.1.4.RELEASE.jar!/:5.1.4.RELEASE]
zeebe_monitor | at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:363) [spring-context-5.1.4.RELEASE.jar!/:5.1.4.RELEASE]
zeebe_monitor | at org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaConfiguration$$EnhancerBySpringCGLIB$$4636b476.jpaVendorAdapter() [spring-boot-autoconfigure-2.1.2.RELEASE.jar!/:2.1.2.RELEASE]
zeebe_monitor | at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_212]
zeebe_monitor | at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_212]
zeebe_monitor | at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_212]
zeebe_monitor | at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_212]
zeebe_monitor | at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154) [spring-beans-5.1.4.RELEASE.jar!/:5.1.4.RELEASE]
zeebe_monitor | at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:622) [spring-beans-5.1.4.RELEASE.jar!/:5.1.4.RELEASE]
zeebe_monitor | at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:456) [spring-beans-5.1.4.RELEASE.jar!/:5.1.4.RELEASE]
zeebe_monitor | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1288) [spring-beans-5.1.4.RELEASE.jar!/:5.1.4.RELEASE]
zeebe_monitor | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1127) [spring-beans-5.1.4.RELEASE.jar!/:5.1.4.RELEASE]
zeebe_monitor | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:538) [spring-beans-5.1.4.RELEASE.jar!/:5.1.4.RELEASE]
zeebe_monitor | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:498) [spring-beans-5.1.4.RELEASE.jar!/:5.1.4.RELEASE]
zeebe_monitor | at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:320) [spring-beans-5.1.4.RELEASE.jar!/:5.1.4.RELEASE]
zeebe_monitor | at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) ~[spring-beans-5.1.4.RELEASE.jar!/:5.1.4.RELEASE]
zeebe_monitor | at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:318) [spring-beans-5.1.4.RELEASE.jar!/:5.1.4.RELEASE]
zeebe_monitor | at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) [spring-beans-5.1.4.RELEASE.jar!/:5.1.4.RELEASE]
zeebe_monitor | at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:277) ~[spring-beans-5.1.4.RELEASE.jar!/:5.1.4.RELEASE]
zeebe_monitor | at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1244) ~[spring-beans-5.1.4.RELEASE.jar!/:5.1.4.RELEASE]
zeebe_monitor | at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1164) ~[spring-beans-5.1.4.RELEASE.jar!/:5.1.4.RELEASE]
zeebe_monitor | at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:857) [spring-beans-5.1.4.RELEASE.jar!/:5.1.4.RELEASE]
zeebe_monitor | at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:760) [spring-beans-5.1.4.RELEASE.jar!/:5.1.4.RELEASE]
zeebe_monitor | at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:509) [spring-beans-5.1.4.RELEASE.jar!/:5.1.4.RELEASE]
zeebe_monitor | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1288) [spring-beans-5.1.4.RELEASE.jar!/:5.1.4.RELEASE]
zeebe_monitor | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1127) [spring-beans-5.1.4.RELEASE.jar!/:5.1.4.RELEASE]
zeebe_monitor | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:538) [spring-beans-5.1.4.RELEASE.jar!/:5.1.4.RELEASE]
zeebe_monitor | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:498) [spring-beans-5.1.4.RELEASE.jar!/:5.1.4.RELEASE]
zeebe_monitor | at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:320) [spring-beans-5.1.4.RELEASE.jar!/:5.1.4.RELEASE]
zeebe_monitor | at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) ~[spring-beans-5.1.4.RELEASE.jar!/:5.1.4.RELEASE]
zeebe_monitor | at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:318) [spring-beans-5.1.4.RELEASE.jar!/:5.1.4.RELEASE]
zeebe_monitor | at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) [spring-beans-5.1.4.RELEASE.jar!/:5.1.4.RELEASE]
zeebe_monitor | at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:277) ~[spring-beans-5.1.4.RELEASE.jar!/:5.1.4.RELEASE]
zeebe_monitor | at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1244) ~[spring-beans-5.1.4.RELEASE.jar!/:5.1.4.RELEASE]
zeebe_monitor | at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1164) ~[spring-beans-5.1.4.RELEASE.jar!/:5.1.4.RELEASE]
zeebe_monitor | at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:857) [spring-beans-5.1.4.RELEASE.jar!/:5.1.4.RELEASE]
zeebe_monitor | at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:760) [spring-beans-5.1.4.RELEASE.jar!/:5.1.4.RELEASE]
zeebe_monitor | at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:509) [spring-beans-5.1.4.RELEASE.jar!/:5.1.4.RELEASE]
zeebe_monitor | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1288) [spring-beans-5.1.4.RELEASE.jar!/:5.1.4.RELEASE]
zeebe_monitor | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1127) [spring-beans-5.1.4.RELEASE.jar!/:5.1.4.RELEASE]
zeebe_monitor | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:538) [spring-beans-5.1.4.RELEASE.jar!/:5.1.4.RELEASE]
zeebe_monitor | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:498) [spring-beans-5.1.4.RELEASE.jar!/:5.1.4.RELEASE]
zeebe_monitor | at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:320) [spring-beans-5.1.4.RELEASE.jar!/:5.1.4.RELEASE]
zeebe_monitor | at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) ~[spring-beans-5.1.4.RELEASE.jar!/:5.1.4.RELEASE]
zeebe_monitor | at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:318) [spring-beans-5.1.4.RELEASE.jar!/:5.1.4.RELEASE]
zeebe_monitor | at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) [spring-beans-5.1.4.RELEASE.jar!/:5.1.4.RELEASE]
zeebe_monitor | at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1083) ~[spring-context-5.1.4.RELEASE.jar!/:5.1.4.RELEASE]
zeebe_monitor | at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:853) ~[spring-context-5.1.4.RELEASE.jar!/:5.1.4.RELEASE]
zeebe_monitor | at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:546) ~[spring-context-5.1.4.RELEASE.jar!/:5.1.4.RELEASE]
zeebe_monitor | at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:142) ~[spring-boot-2.1.2.RELEASE.jar!/:2.1.2.RELEASE]
zeebe_monitor | at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:775) ~[spring-boot-2.1.2.RELEASE.jar!/:2.1.2.RELEASE]
zeebe_monitor | at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:397) ~[spring-boot-2.1.2.RELEASE.jar!/:2.1.2.RELEASE]
zeebe_monitor | at org.springframework.boot.SpringApplication.run(SpringApplication.java:316) ~[spring-boot-2.1.2.RELEASE.jar!/:2.1.2.RELEASE]
zeebe_monitor | at org.springframework.boot.SpringApplication.run(SpringApplication.java:1260) ~[spring-boot-2.1.2.RELEASE.jar!/:2.1.2.RELEASE]
zeebe_monitor | at org.springframework.boot.SpringApplication.run(SpringApplication.java:1248) ~[spring-boot-2.1.2.RELEASE.jar!/:2.1.2.RELEASE]
zeebe_monitor | at io.zeebe.monitor.ZeebeSimpleMonitorApp.main(ZeebeSimpleMonitorApp.java:49) ~[classes!/:0.14.0]
zeebe_monitor | at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_212]
zeebe_monitor | at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_212]
zeebe_monitor | at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_212]
zeebe_monitor | at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_212]
zeebe_monitor | at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48) ~[zeebe-simple-monitor.jar:0.14.0]
zeebe_monitor | at org.springframework.boot.loader.Launcher.launch(Launcher.java:87) ~[zeebe-simple-monitor.jar:0.14.0]
zeebe_monitor | at org.springframework.boot.loader.Launcher.launch(Launcher.java:50) ~[zeebe-simple-monitor.jar:0.14.0]
zeebe_monitor | at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:51) ~[zeebe-simple-monitor.jar:0.14.0]
zeebe_monitor |
zeebe_monitor | 2019-07-14 04:06:09.749 WARN 1 --- [ main] o.s.b.a.orm.jpa.DatabaseLookup : Unable to determine jdbc url from datasource
zeebe_monitor |
zeebe_monitor | org.springframework.jdbc.support.MetaDataAccessException: Could not get Connection for extracting meta-data; nested exception is org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is org.h2.jdbc.JdbcSQLNonTransientConnectionException: Database "/opt/h2-data/zeebe-monitor" not found, and IFEXISTS=true, so we cant auto-create it [90146-199]
zeebe_monitor | at org.h2.message.DbException.getJdbcSQLException(DbException.java:617)
zeebe_monitor | at org.h2.message.DbException.getJdbcSQLException(DbException.java:427)

spring.jpa.hibernate.ddl-auto should be update

i down zeebe-simple-monitor-app-0.10.0.jar and run via

java -jar  zeebe-simple-monitor-app-0.10.0.jar

however,exception is happen:

Caused by: org.hibernate.tool.schema.spi.SchemaManagementException: Schema-validation: missing table [activity_instance]
        at org.hibernate.tool.schema.internal.AbstractSchemaValidator.validateTable(AbstractSchemaValidator.java:121) ~[hibernate-core-5.2.17.Final.jar!/:5.2.17.Final]
        at org.hibernate.tool.schema.internal.GroupedSchemaValidatorImpl.validateTables(GroupedSchemaValidatorImpl.java:42) ~[hibernate-core-5.2.17.Final.jar!/:5.2.17.Final]

i found that config in application.properties file is:

spring.jpa.hibernate.ddl-auto=validate

i think use 'update' is more reasonable

Adjust to Zeebe 0.10.0 deployment changes

With Zeebe 0.9.0 the deployment changed that it is not distributed to every partition but keep globally on the system topic. That's why simple monitor now is not able to show any XML diagrams. These have now be fetched from the system topic and will not be part of a topic subscription on the topic itself.

For reference: camunda/camunda@9e57514

Deployment key from Java is +1

When I deploy a workflow model from a Java client, I get an incremented key nr with respect to what is seen in the monitor

schermafbeelding 2019-02-13 om 12 22 13

schermafbeelding 2019-02-13 om 12 21 46

deployment issue

Hi,
I couldn't able to deploy new instance manually from zeebe monitor gui,
throwing error, time out. If anybody the answer please help me here, I am new in zeebe.

Thanks & Regards,
Ravi Kumar

JDBC URL should be configurable via Environment Variable

It should be possible to configure the JDBC URL for the H2 connection via Environment variable. This would allow to startup H2 as separate instance and connect to it. This is important for scenarios where you want to restart every component independently

The monitor can work with multiple topics

Since Zeebe v0.4.0, the client can create topics and deploy workflows to different topics. Currently, the monitor works only with the default topic (which may not exist).

AT:

  • I can create a new topic
  • I can deploy workflows to a given topic
  • I can see which topics are created

Migrate to Zeebe 0.15.0

With Zeebe 0.15.0, the lifecycle of the events has changed. We need to adopt the changed in order to show the correct state of the instance.

Can't create instances

Using jar file and regular broker 0.15 (no docker) I can deploy a workflow (demoProcess) but can't create instances. After this issue I can't deploy new workflows either, see log of broker:

Exception in thread "0.0.0.0:26501-zb-actors-0" java.lang.NoSuchMethodError: io.zeebe.exporter.record.value.WorkflowInstanceRecordValue.getScopeInstanceKey()J
	at io.zeebe.monitor.SimpleMonitorExporter.exportActivityInstance(SimpleMonitorExporter.java:389)
	at io.zeebe.monitor.SimpleMonitorExporter.exportWorkflowInstanceRecord(SimpleMonitorExporter.java:342)
	at io.zeebe.monitor.SimpleMonitorExporter.export(SimpleMonitorExporter.java:266)
	at io.zeebe.broker.exporter.stream.ExporterStreamProcessor$RecordExporter.executeSideEffects(ExporterStreamProcessor.java:230)
	at io.zeebe.logstreams.processor.StreamProcessorController.executeSideEffects(StreamProcessorController.java:320)
	at io.zeebe.util.sched.ActorJob.invoke(ActorJob.java:87)
	at io.zeebe.util.sched.ActorJob.execute(ActorJob.java:53)
	at io.zeebe.util.sched.ActorTask.execute(ActorTask.java:187)
	at io.zeebe.util.sched.ActorThread.executeCurrentTask(ActorThread.java:154)
	at io.zeebe.util.sched.ActorThread.doWork(ActorThread.java:135)
	at io.zeebe.util.sched.ActorThread.run(ActorThread.java:112)```

Migrate to new variable concept

As of Zeebe 0.15.0, the current payload concept is replaced by a variable-scope concept. There are new variable events to track when a variable is created or changed. We need to export the variable events and use them in the web-app to show the variables of a given scope.

Show event payload nicer

Currently the payload is a JsonObject which is auto serialized in a way, making the JSON hard to read. Adjust this by either configure the serialization or maybe serialize the whole response message yourself

Startup fails with more then one partition

If I start the exporter with more then one partition configured one exporter fails because the h2 file already exists. The exporter should allow to be used with more then one partition and just handle that the file already exists.

21:06:55.567 [0.0.0.0:26501-zb-actors-1] ERROR io.zeebe.util.actor - Actor failed in phase 'STARTED'. Continue with next job.
java.lang.RuntimeException: java.nio.file.FileSystemAlreadyExistsException
	at io.zeebe.monitor.SimpleMonitorExporter.createTables(SimpleMonitorExporter.java:150) ~[zeebe-simple-monitor-exporter-0.7.0.jar:0.7.0]
	at io.zeebe.monitor.SimpleMonitorExporter.open(SimpleMonitorExporter.java:125) ~[zeebe-simple-monitor-exporter-0.7.0.jar:0.7.0]
	at io.zeebe.broker.exporter.stream.ExporterStreamProcessor.onRecovered(ExporterStreamProcessor.java:120) ~[zeebe-broker-core-0.12.0.jar:0.12.0]
	at io.zeebe.logstreams.processor.StreamProcessorController.onRecovered(StreamProcessorController.java:272) ~[zb-logstreams-0.12.0.jar:0.12.0]
	at io.zeebe.logstreams.processor.StreamProcessorController.onActorStarted(StreamProcessorController.java:144) ~[zb-logstreams-0.12.0.jar:0.12.0]
	at io.zeebe.util.sched.ActorJob.invoke(ActorJob.java:87) ~[zb-util-0.12.0.jar:0.12.0]
	at io.zeebe.util.sched.ActorJob.execute(ActorJob.java:53) [zb-util-0.12.0.jar:0.12.0]
	at io.zeebe.util.sched.ActorTask.execute(ActorTask.java:187) [zb-util-0.12.0.jar:0.12.0]
	at io.zeebe.util.sched.ActorThread.executeCurrentTask(ActorThread.java:154) [zb-util-0.12.0.jar:0.12.0]
	at io.zeebe.util.sched.ActorThread.doWork(ActorThread.java:135) [zb-util-0.12.0.jar:0.12.0]
	at io.zeebe.util.sched.ActorThread.run(ActorThread.java:112) [zb-util-0.12.0.jar:0.12.0]
Caused by: java.nio.file.FileSystemAlreadyExistsException
	at com.sun.nio.zipfs.ZipFileSystemProvider.newFileSystem(ZipFileSystemProvider.java:113) ~[zipfs.jar:1.8.0_192]
	at java.nio.file.FileSystems.newFileSystem(FileSystems.java:326) ~[?:1.8.0_192]
	at java.nio.file.FileSystems.newFileSystem(FileSystems.java:276) ~[?:1.8.0_192]
	at io.zeebe.monitor.SimpleMonitorExporter.createTables(SimpleMonitorExporter.java:141) ~[zeebe-simple-monitor-exporter-0.7.0.jar:0.7.0]
	... 10 more

Exception on missing column in simple monitor

When I start the broker 0.14.0 with the exporter enabled and then start simple monitor I get:

Schema-validation: missing column [created_] in table [incident]

2018-12-12 10:42:20.680 ERROR 9172 --- [ main] o.s.boot.SpringApplication : Application run failed

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Invocation of init method failed; nested exception is javax.persistence.PersistenceException: [PersistenceUnit: default] Unable to build Hibernate SessionFactory; nested exception is org.hibernate.tool.schema.spi.SchemaManagementException: Schema-validation: missing column [created_] in table [incident]

Remove table creation from INFO log

The creation of tables should not be logged on INFO level - but DEBUG - otherwise the first thing you see when starting up next generation Zeebe is always SQL - which is exactly not what you want to see :-)

10:26:01.100 [exporter] [0.0.0.0:26501-zb-actors-0] INFO  io.zeebe.broker.exporter.simple-monitor - Create tables:
DROP INDEX IF EXISTS WORKFLOW_KEY_INDEX;
DROP INDEX IF EXISTS WORKFLOW_INSTANCE_WORKFLOW_KEY_INDEX;
...

missing spring dependency ?

running the monitor on Ubuntu 18.04LTS with openjdk-11-jre-headless:amd64 10.0.2+13-1ubuntu0.18.04.4 results in the following error:

[..]
Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2019-01-04 17:03:51.703 ERROR 4697 --- [ main] o.s.boot.SpringApplication : Application run failed

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException
[..]

Adding this dependency to app/pom.xml:

javax.xml.bind jaxb-api 2.3.0

fixes the issue for me but I'm not a java person so please advise if there's a better solution for this.

Can't call back to Broker in docker-compose

This builds on the excellent work in #25.

Deploying a workflow or cancelling a workflow instance results in an "io Error" in the UI.

With the docker-compose stack, the Simple Monitor cannot cancel workflow instances or deploy workflows without switching the network_mode to "host". This is because the Simple Monitor expects the broker to be accessible at "localhost:26500".

However, changing to host mode networking is not possible on Mac or Windows because reasons (2nd class Docker citizens).

I've written a one-line patch that correctly environmentalises the broker connection string in docker-compose to allow the Simple Monitor to communicate with the broker over the Docker network.

Docker compose fails with 0.15.0

After running $ docker/run I see the following error. If you start and configure the broker manually everything works as expected. ๐Ÿค”

zeebe_broker | 06:04:44.863 [zb-stream-processor] [172.19.0.3:26501-zb-actors-1] ERROR io.zeebe.util.actor - Actor failed in phase 'STARTING'. Discard all job                                                                                                                                                                 s and stop immediatly.                                                                                                                                                                                                                                  
zeebe_broker | java.lang.RuntimeException: Unexpected error occurred trying to open the database                                                                                                                                                                                                                               
zeebe_broker |  at io.zeebe.db.impl.rocksdb.ZeebeRocksDbFactory.open(ZeebeRocksDbFactory.java:84) ~[zb-db-0.15.0.jar:0.15.0]                                                                                                                                                                                                   
zeebe_broker |  at io.zeebe.db.impl.rocksdb.ZeebeRocksDbFactory.createDb(ZeebeRocksDbFactory.java:50) ~[zb-db-0.15.0.jar:0.15.0]                                                                                                                                                                                               
zeebe_broker |  at io.zeebe.db.impl.rocksdb.ZeebeRocksDbFactory.createDb(ZeebeRocksDbFactory.java:30) ~[zb-db-0.15.0.jar:0.15.0]                                                                                                                                                                                               
zeebe_broker |  at io.zeebe.logstreams.state.StateSnapshotController.openDb(StateSnapshotController.java:98) ~[zb-logstreams-0.15.0.jar:0.15.0]                                                                                                                                                                                
zeebe_broker |  at io.zeebe.logstreams.processor.StreamProcessorController.onActorStarting(StreamProcessorController.java:135) ~[zb-logstreams-0.15.0.jar:0.15                                                                                                                                                                 .0]                                                                                                                                                                         
zeebe_broker |  at io.zeebe.util.sched.ActorJob.invoke(ActorJob.java:87) ~[zb-util-0.15.0.jar:0.15.0]                                                                                                                                                                                                                          
zeebe_broker |  at io.zeebe.util.sched.ActorJob.execute(ActorJob.java:53) [zb-util-0.15.0.jar:0.15.0]                                                                                                                                                                                                                          
zeebe_broker |  at io.zeebe.util.sched.ActorTask.execute(ActorTask.java:187) [zb-util-0.15.0.jar:0.15.0]                                                                                                                                                                                                                       
zeebe_broker |  at io.zeebe.util.sched.ActorThread.executeCurrentTask(ActorThread.java:154) [zb-util-0.15.0.jar:0.15.0]                                                                                                                                                                                                        
zeebe_broker |  at io.zeebe.util.sched.ActorThread.doWork(ActorThread.java:135) [zb-util-0.15.0.jar:0.15.0]                                                                                                                                                                                                                    
zeebe_broker |  at io.zeebe.util.sched.ActorThread.run(ActorThread.java:112) [zb-util-0.15.0.jar:0.15.0]                                                                                                                                                                                                                       
zeebe_broker | Caused by: org.rocksdb.RocksDBException: You have to open all column families. Column families not opened: incidentStateJobIncident, incidentSt                                                                                                                                                                 ateWorkflowInstanceIncident, incidentStateIncident, wf-sub-by-sent-time, wf-sub-by-key, msg-sub-by-messageName-and-correlation-Key, timerInstanceStateDueDates                                                                                                                                                                 , timerInstanceStateTimers, elementInstanceStateTokenParentChild, elementInstanceStateTokenEvents, elementInstanceStateElementInstanceKey, elementInstanceStat                                                                                                                                                                 eElementParentChild, workflowStateWorkflowVersion, workflowPersistenceCacheWorkflows, workflowPersistenceCacheWorkflowsByIdAndVersion, workflowPersistenceCach                                                                                                                                                                 eLatestWorkflow, deploymentsStatePendingDeployment, jobStateJobs, jobStateStates, jobStateActivatable, jobStateDeadlines, messageStateMessageKey, messageState                                                                                                                                                                 Messages, messageStateDeadlines, messageStateMessageIds, correlatedMessages, msg-sub-by-key, msg-sub-by-sent-time                                                                                                                                                                                                              
zeebe_broker |  at org.rocksdb.RocksDB.open(Native Method) ~[rocksdbjni-5.17.2.jar:?]                                                                                                                                                                                                                                          
zeebe_broker |  at io.zeebe.db.impl.rocksdb.ZeebeRocksDb.openZbDb(ZeebeRocksDb.java:78) ~[zb-db-0.15.0.jar:0.15.0]                                                                                                                                                                                                             
zeebe_broker |  at io.zeebe.db.impl.rocksdb.ZeebeRocksDbFactory.open(ZeebeRocksDbFactory.java:77) ~[zb-db-0.15.0.jar:0.15.0]                                                                                                                                                                                                   
zeebe_broker |  ... 10 more                                                                                                                                                                                                                                                 
zeebe_broker | 06:04:44.874 [service-controller] [172.19.0.3:26501-zb-actors-1] ERROR io.zeebe.servicecontainer - Service failed to start while in AwaitStartS                                                                                                                                                                 tate                                                                                                                                                                            
zeebe_broker | java.lang.RuntimeException: Unexpected error occurred trying to open the database                                                                                                                                                                                                                               
zeebe_broker |  at io.zeebe.db.impl.rocksdb.ZeebeRocksDbFactory.open(ZeebeRocksDbFactory.java:84) ~[zb-db-0.15.0.jar:0.15.0]                                                                                                                                                                                                   
zeebe_broker |  at io.zeebe.db.impl.rocksdb.ZeebeRocksDbFactory.createDb(ZeebeRocksDbFactory.java:50) ~[zb-db-0.15.0.jar:0.15.0]                                                                                                                                                                                               
zeebe_broker |  at io.zeebe.db.impl.rocksdb.ZeebeRocksDbFactory.createDb(ZeebeRocksDbFactory.java:30) ~[zb-db-0.15.0.jar:0.15.0]                                                                                                                                                                                               
zeebe_broker |  at io.zeebe.logstreams.state.StateSnapshotController.openDb(StateSnapshotController.java:98) ~[zb-logstreams-0.15.0.jar:0.15.0]                                                                                                                                                                                
zeebe_broker |  at io.zeebe.logstreams.processor.StreamProcessorController.onActorStarting(StreamProcessorController.java:135) ~[zb-logstreams-0.15.0.jar:0.15                                                                                                                                                                 .0]                                                                                                                                                                         
zeebe_broker |  at io.zeebe.util.sched.ActorJob.invoke(ActorJob.java:87) [zb-util-0.15.0.jar:0.15.0]                                                                                                                                                                                                                           
zeebe_broker |  at io.zeebe.util.sched.ActorJob.execute(ActorJob.java:53) [zb-util-0.15.0.jar:0.15.0]                                                                                                                                                                                                                          
zeebe_broker |  at io.zeebe.util.sched.ActorTask.execute(ActorTask.java:187) [zb-util-0.15.0.jar:0.15.0]                                                                                                                                                                                                                       
zeebe_broker |  at io.zeebe.util.sched.ActorThread.executeCurrentTask(ActorThread.java:154) [zb-util-0.15.0.jar:0.15.0]                                                                                                                                                                                                        
zeebe_broker |  at io.zeebe.util.sched.ActorThread.doWork(ActorThread.java:135) [zb-util-0.15.0.jar:0.15.0]                                                                                                                                                                                                                    
zeebe_broker |  at io.zeebe.util.sched.ActorThread.run(ActorThread.java:112) [zb-util-0.15.0.jar:0.15.0]                                                                                          

split in starter and application

when running a spring-zeebe application, I would like to integrate this via starter into my app instead of running an additional app. (see camunda-bpm-spring-boot-web starter).

This requires:

  • webjar lib for resources
  • sb starter lib for backend

application uses both libs

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.