Enable Troubleshooting in Self-Hosted Instances

JFrog Platform Administration Documentation

Content Type
Administration / Platform

The Troubleshooting feature for Workers is not enabled by default in Self-Hosted JFrog instances.

To enable Troubleshooting in your Self-Hosted instance, modify these lines in your system.yamlSystem YAML Configuration File file:

worker:
    execution:
        history:
            enabled: true

Note

By default, troubleshooting entries are saved in a log file in the same location as the application logs. However, this is not the recommended mode for the following reasons:

  • Every time the log file reaches a limit, all entries will be erased instead of being truncated.

  • If Worker Service runs over multiple nodes, each node will store its own troubleshooting data, resulting in a lack of consistency.

Instead, we recommend using Redis (or a Redis-like such as Valkey) storage by configuring the Worker Service with the Redis URL under worker.execution.history.storageConfig.url and Redis details under worker.execution.history.storageConfig.params. See below for more details and example.

See the following example of a Troubleshooting configuration:

worker:
    execution:
        history:
            enabled: true
            storageConfig:
                url: "redis://localhost:6379"
                params: "mode=single;password=redispassword;username=redisuser;commandTimeoutMillis=3000;connectionTimeoutMillis=5000"
                maxEntrySizeKb: 300
                trimIntervalMillis: 600000
                maxTrimLength: 200
                streamTtlDurationSeconds: 8640

Parameters

Here is the full description of all parameters under worker.execution.history.storageConfig:

Parameter

Type

Description

Default value

url

String

The URL, must follow the pattern <protocol>://<valid_uri>. The protocol accepts the following values:

  • redis: for Redis storage or Valkey

  • rediss: for Redis/Valkey connection over TLS/SSL

  • file: to store entries in a log file (not recommended for multi-node)

You can use several URIs separated by a comma, and use the same protocol for all. For example:

  • redis://localhost:6379

  • file:///var/logs/,another/path

“file://$JF_PRODUCT_HOME/var/log/”

params

String

Storage connection parameters, separated by a semicolon.

List of parameters:

  • username

  • password

  • mode (single or cluster, does not apply for file mode) (mandatory if using redis/valkey)

  • commandTimeoutMillis

  • connectionTimeoutMillis

  • username default value: "username"

  • password default value: ”password"

  • commandTimeoutMillis default value: 2000

  • connectionTimeoutMillis default value: 10000

maxEntrySizeKb

Integer

The limit in KB beyond which the entry will be truncated (essentially logs and custom data returned by the worker)

130

trimIntervalMillis

Integer

Interval in milliseconds for trimming the history

60000

maxTrimLength

Integer

Maximum number of entries in the history for a single Worker

100

streamTtlDurationSeconds

Integer

Number of seconds the history is kept in the storage such as Redis or Valkey (does not apply for file system storage mode)

1296000