Skip to main content
Version: 1.1

Configuration

Operate is a Spring Boot application. This means every way to configure a Spring Boot application can be applied.

By default, the configuration for Operate is stored in a YAML file (application.yml). All Operate-related settings are prefixed with camunda.operate. The following parts are configurable:

Configurations

Webserver

Operate supports customizing the context-path using default Spring configuration.

Example for application.yml: server.servlet.context-path: /operate

Example for environment variable: SERVER_SERVLET_CONTEXT_PATH=/operate

The default context-path is /.

Elasticsearch

Operate stores and reads data in/from Elasticsearch.

Settings to connect

Operate supports basic authentication for Elasticsearch.

Set the appropriate username/password combination in the configuration to use it.

Either set host and port (deprecated) or url (recommended).

NameDescriptionDefault value
camunda.operate.elasticsearch.clusterNameCluster name of Elasticsearchelasticsearch
camunda.operate.elasticsearch.urlURL of Elasticsearch REST APIhttp://localhost:9200
camunda.operate.elasticsearch.usernameUsername to access Elasticsearch REST API-
camunda.operate.elasticsearch.passwordPassword to access Elasticsearch REST API-

A snippet from application.yml

camunda.operate:
elasticsearch:
# Cluster name
clusterName: elasticsearch
# Url
url: http://localhost:9200

Zeebe broker connection

Operate needs a connection to the Zeebe Broker to start the import and execute user operations.

Settings to connect

NameDescriptionDefault value
camunda.operate.zeebe.gatewayAddressGateway address that points to Zeebe as hostname and port.localhost:26500
note

Currently, Operate does not support TLS communication with Zeebe.

A snippet from application.yml

camunda.operate:
zeebe:
# Gateway host and port
gatewayAddress: localhost:26500

Zeebe Elasticsearch exporter

Operate imports data from Elasticsearch indices created and filled in by the Zeebe Elasticsearch Exporter.

Therefore, settings for this Elasticsearch connection must be defined and must correspond to the settings on the Zeebe side.

Settings to connect and import

NameDescriptionDefault value
camunda.operate.zeebeElasticsearch.clusterNameCluster name of Elasticsearchelasticsearch
camunda.operate.zeebeElasticsearch.urlURL of Zeebe Elasticsearch REST APIhttp://localhost:9200
camunda.operate.zeebeElasticsearch.prefixIndex prefix as configured in Zeebe Elasticsearch exporterzeebe-record
camunda.operate.zeebeElasticsearch.usernameUsername to access Elasticsearch REST API-
camunda.operate.zeebeElasticsearch.passwordPassword to access Elasticsearch REST API-

A snippet from application.yml:

camunda.operate:
zeebeElasticsearch:
# Cluster name
clusterName: elasticsearch
# Url
url: http://localhost:9200
# Index prefix, configured in Zeebe Elasticsearch exporter
prefix: zeebe-record

Operation executor

Operations are user operations, like cancellation of process instance(s) or updating the variable value.

Operations are executed in a multi-threaded manner.

NameDescriptionDefault value
camunda.operate.operationExecutor.threadsCountHow many threads should be used.3

A snippet from application.yml

camunda.operate:
operationExecutor:
threadsCount: 3

Monitoring Operate

Operate includes Spring Boot Actuator inside. This provides the number of monitoring possibilities.

Operate uses the following Actuator configuration by default:

# Disable default health indicators
# https://docs.spring.io/spring-boot/docs/current/reference/html/production-ready-features.html#production-ready-health-indicators
management.health.defaults.enabled: false
# enable Kubernetes health groups:
# https://docs.spring.io/spring-boot/docs/current/reference/html/production-ready-features.html#production-ready-kubernetes-probes
management.health.probes.enabled: true
# enable health check, metrics and loggers endpoints
management.endpoints.web.exposure.include: health,prometheus,loggers

With this configuration, the following endpoints are available for use out of the box:

<server>:8080/actuator/prometheus Prometheus metrics

<server>:8080/actuator/health/liveness Liveness probe

<server>:8080/actuator/health/readiness Readiness probe

Versions before 0.25.0

In versions before 0.25.0, management endpoints look different. Therefore, we recommend reconfiguring for next versions.

NameBefore 0.25.0Starting with 0.25.0
Readiness/api/check/actuator/health/readiness
Liveness/actuator/health/actuator/health/liveness

Logging

Operate uses the Log4j2 framework for logging. In the distribution archive, as well as inside a Docker image, config/log4j2.xml logging configuration files are included and can be further adjusted to your needs:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN" monitorInterval="30">
<Properties>
<Property name="LOG_PATTERN">%clr{%d{yyyy-MM-dd HH:mm:ss.SSS}}{faint} %clr{%5p} %clr{${sys:PID}}{magenta} %clr{---}{faint} %clr{[%15.15t]}{faint} %clr{%-40.40c{1.}}{cyan} %clr{:}{faint} %m%n%xwEx</Property>
</Properties>
<Appenders>
<Console name="Console" target="SYSTEM_OUT" follow="true">
<PatternLayout pattern="${LOG_PATTERN}"/>
</Console>
<Console name="Stackdriver" target="SYSTEM_OUT" follow="true">
<StackdriverJSONLayout/>
</Console>
</Appenders>
<Loggers>
<Logger name="io.camunda.operate" level="info" />
<Root level="info">
<AppenderRef ref="${env:OPERATE_LOG_APPENDER:-Console}"/>
</Root>
</Loggers>
</Configuration>

By default, ConsoleAppender is used.

JSON logging configuration

You can choose to output logs in JSON format (Stackdriver compatible). To enable it, define the environment variable OPERATE_LOG_APPENDER like this:

OPERATE_LOG_APPENDER=Stackdriver

Change logging level at runtime

Operate supports the default scheme for changing logging levels as provided by Spring Boot.

The log level for Operate can be changed by following the Setting a Log Level section.

Set all Operate loggers to DEBUG

curl 'http://localhost:8080/actuator/loggers/io.camunda.operate' -i -X POST \
-H 'Content-Type: application/json' \
-d '{"configuredLevel":"debug"}'

An example of application.yml file

The following snippet represents the default Operate configuration, which is shipped with the distribution. This can be found inside the config folder (config/application.yml) and can be used to adjust Operate to your needs.

# Operate configuration file

camunda.operate:
# Set operate username and password.
# If user with <username> does not exists it will be created.
# Default: demo/demo
#username:
#password:
# ELS instance to store Operate data
elasticsearch:
# Cluster name
clusterName: elasticsearch
# Url
url: http://localhost:9200
# Zeebe instance
zeebe:
# Gateway address to zeebe
gatewayAddress: localhost:26500
# ELS instance to export Zeebe data to
zeebeElasticsearch:
# Cluster name
clusterName: elasticsearch
# url
url: http://localhost:9200
# Index prefix, configured in Zeebe Elasticsearch exporter
prefix: zeebe-record