Skip to main content

Advanced configuration

Config.json

The config.json is the primary configuration file that holds all required settings in order to run an Exivity instance or node successfully.

The config.json is divided into several sections related to the individual Exivity software components (i.e. database, mq, etc) and is typically created and modified by the installer. However, in some situations such as multi-node setups, it is required to change this configuration file in order to support different workloads on different nodes. Also, when migrating to a different PostgreSQL database or RabbitMQ cluster, it would be required to change the database or mq related settings in the config.jsonconfiguration file.

info

The file can be found in your installation folder at: \Exivity\home\system\config.json

db

The db section contains the settings for the PostgreSQL database engine where the Exivity database is hosted:

"db": {
"driver": "postgres",
"parameters": {
"host": "localhost",
"port": "5432",
"sslmode": "disable",
"dbname": "exdb",
"user": "postgres",
"password": "secretpassword",
"connect_timeout": "10",
"target_session_attrs": "read-write"
}
}

mq

The mq section contains the settings for the RabbitMQ message engine:

"mq": {
"servers": [
{
"host": "localhost",
"port": 5672,
"secure": false
}
],
"user": "guest",
"password": "guest",
"vhost": "/",
"nodeID": "mqnode01",
"redialPeriod": 5
}

griffon

The griffonsection contains settings for the Exivity Job Manager:

"griffon": {
"heartbeatPeriod": 5,
"TTL": 10
}

chronos

The chronos section stores information related to the Exivity Scheduling Service:

    "chronos": {
"heartbeatPeriod": 5,
"TTL": 60
}

merlin

The merlin section contains all parameters related to backend components:

    "merlin": {
"reservedCPU": 1,
"heartbeatPeriod": 5,
"programs": {
"extract": {
"path": "bin\\use.exe",
"queue": "EXTRACT",
"CPU": 0.25,
"RAM": 100,
"params": "${params}"
},
"transform": {
"path": "bin\\transcript.exe",
"queue": "TRANSFORM",
"CPU": 0.5,
"RAM": 250
},
"report": {
"path": "bin\\edify.exe",
"queue": "REPORT",
"CPU": 1,
"RAM": 500
},
"horizon": {
"path": "bin\\horizon.exe",
"queue": "BUDGET",
"CPU": 0.5,
"RAM": 50
},
"execute": {
"path": "${program}",
"queue": "EXECUTE",
"CPU": 0.25,
"RAM": 100
},
"proximity": {
"path": "server\\php\\php.exe",
"queue": "PROXIMITY",
"CPU": 0.5,
"RAM": 1000
},
"pigeon": {
"path": "server\\php\\php.exe",
"queue": "PIGEON",
"CPU": 0.25,
"RAM": 250
},
"workflow_ended": {
"path": "server\\php\\php.exe",
"queue": "WORKFLOW_EVENT",
"topic": "evt.workflow_status.griffon.#",
"params": "common\\pigeon\\pigeon.phar event:post workflow_ended `${payload}`",
"CPU": 0.25,
"RAM": 250
},
"report_published": {
"path": "server\\php\\php.exe",
"queue": "REPORT_PUBLISHED",
"topic": "evt.report_published.proximity.#",
"params": "common\\pigeon\\pigeon.phar event:post report_published `${payload}`",
"CPU": 0.25,
"RAM": 250
}
}
}