YAML config questions

Hello all,

I’ve looked through the documentation surrounding the yaml config files and i have a few questions.

  1. Are the config files name specific? I’ve seen in the documentation to give it a name like manager or database but it wasn’t explicitly said that i could or could not give them other names. For example, could i name my manager.yml myconfig.yml instead?
  2. Is having the EventStore.Manager executable a requirement for being able to use config files? I set up a 3 node cluster using the documentation for only having database nodes (OSS), but I encounter problems on start up of the application. The version I’m using is the 4.1 hotfix. in my case i just pass “–config config.yml” to the commandline when starting it.
  3. Is there documentation available to troubleshoot errors in config files? I got an error but it was so generic i couldn’t really understand what it didn’t like. error is below:
    "An invalid configuration file has been specified.

(Line: 2, Col: 6, Idx: 18) - (Line: 2, Col: 6, Idx: 18): Mapping values are not allowed in this context."

This is what has lead me to ask Questions 1 and 2 in reference to question 3.

No need for the manager, we also just stick it in the same folder as the EventStore.ClusterNode.exe and use --config “configuration.yaml”. Make sure you’re using the “Config file YAML” keys from https://eventstore.org/docs/server/command-line-arguments/index.html. Here is an example of ours (make sure every node has the same yaml unless you have a good reason to differentiate them),

IntTcpHeartbeatInterval: 5000

IntTcpHeartbeatTimeout: 5000

ExtTcpHeartbeatInterval: 5000

ExtTcpHeartbeatTimeout: 5000

GossipIntervalMs: 2000

GossipTimeoutMs: 2500

CommitTimeoutMs: 3000

PrepareTimeoutMs: 3000

``

Just to add, the error you are getting sounds invalid YAML.

Hi Austin,

I suggest changing these settings as a good rule of thumb is to set the interval half of the timeout as follow:

IntTcpHeartbeatInterval: 2500

IntTcpHeartbeatTimeout: 5000

ExtTcpHeartbeatInterval: 2500

ExtTcpHeartbeatTimeout: 5000

GossipIntervalMs: 2000

GossipTimeoutMs: 4000

You should also apply interval and timeouts on client side. C# example:

yourclientconfig.SetHeartbeatInterval(TimeSpan.FromSeconds(3)).SetHeartbeatTimeout(TimeSpan.FromSeconds(6))

Riccardo

Thank you all for the insight. I’ll double check my YAML.

It took me a good bit however I eventually figured out where the issues in the yaml were.

thank you all again.