-
Notifications
You must be signed in to change notification settings - Fork 16
Configuration Details
Sea Yo edited this page Mar 2, 2016
·
29 revisions
Eywa looks at /etc/eywa/eywa.yml
for configurations by default. You can pass any file location you want by appending -conf=<your file location>
at the time of starting your service:
eywa serve -conf="my/file/location" &
Here is a table of configs for Eywa:
name | description | defaults |
---|---|---|
service.host | Host name that Eywa will be binding to. | localhost |
service.api_port | Port that Eywa will be listening to for API's. | 8080 |
service.device_port | Port that Eywa will be accepting connections from devices. | 8081 |
service.pid_file | File that records the current running Eywa's pid. (Not recommended to change) | /var/eywa/eywa.pid |
security.dashboard.username | Dashboard username. Change it for production use. | root |
security.dashboard.password | Password for the dashboard user. Change it for production use. | waterISwide |
security.dashboard.token_expiry | Settings for token to expire. | 24 hours |
security.dashboard.aes.key | AES key for encrypting auth tokens. You need to change it to 16 bytes string. | abcdefg123456789 |
security.dashboard.aes.iv | AES iv for pairing with AES key. You need to change it to 16 bytes string. | 123456789abcdefg |
security.ssl.certfile | Location of SSL certificate file. Leave it blank if you don't want to use SSL. | |
security.ssl.keyfile | Location of SSL key file. Leave it blank if you don't want to use SSL. | |
websocket_connections.registry | Registry which stores the information about the connections. So far we only support in-memory registry. Redis, Dynamo, or Other key-value stores will be supported soon. | memory |
websocket_connections.nshards | Number of shards that tracks websocket connections. Tune this with respect to number of your cpu cores. Suggested value is from 2 x nproc to 3 x nproc. | 8 |
websocket_connections.init_shard_size | Initial size of each shard. Increase this if you have more than 10k devices to get connected at the time of starting Eywa. | 1024 |
websocket_connections.request_queue_size | Each websocket connection can queue up some requests. Increasing this size if you have bursts of requests going into one single connection and that connection won't be able to consume quickly. Any request that gets backlogged beyond this size, will be dropped and returned as failure. | 8 |
websocket_connections.timeouts.write | If the request to the client takes more than this value, connection will be considered dead. | 4 seconds |
websocket_connections.timeouts.read | Websocket clients need to regularly Ping Eywa in order to keep the connection alive. Tune this parameter if your client pings less often than per 5 min. | 5 minutes |
websocket_connections.timeouts.request | If the requests are not sent successfully within this value, request will be considered failure. The cause can either be connection slowness or too many requests are queued up. Connection won't be considered dead as oppose to websocket_connections.timeouts.write . |
4 seconds |
websocket_connections.timeouts.response | For some requests that require clients' response, the requester waits for this amount of time. Increase it if you know you local network is slow. | 16 seconds |
websocket_connections.buffer_sizes.read | The buffer size for reading from the client. | 1024 bytes |
websocket_connections.buffer_sizes.write | The buffer size for writing to the client. | 1024 bytes |
indices.disable | Turn this on if you don't want to index your data. | false |
indices.host | The Elasticsearch host. | |
indices.port | The Elasticsearch port. | |
indices.number_of_shards | The number of shards of time series data. The default value may gave you enough performance already. | |
indices.number_of_replicas | The number of replicas of time series data. If you are running with micro services separately and you need data redundancy, increase this value. But indexing latency will be introduced. | |
indices.ttl_enabled | Enable the data retention. By default, it is disabled. | |
indices.ttl | The time series data retention period. | |
database.db_type | The type of database, default: sqlite3. MySql or Postgres will be supported soon. | |
database.db_file | The database file for sqlite3. | |
logging.eywa.filename | The log filename for Eywa's main logger. | |
logging.eywa.maxsize | The maxsize of the main logger. If it goes beyond this size, Eywa will try to rotate it. | |
logging.eywa.maxage | The number of days to retain old log files based on the timestamp encoded in their filename. | |
logging.eywa.maxbackups | The maximum number of old log files to retain. | |
logging.eywa.level | Log level of Eywa's main logger. | |
logging.eywa.buffer_size | Buffer size of Eywa's main logger. Before it's filled, logs won't be flushed to disk. | |
logging.indices.filename | The log filename for Eywa's indexing logger. | |
logging.indices.maxsize | The maxsize of the indexing logger. If it goes beyond this size, Eywa will try to rotate it. | |
logging.indices.maxage | The number of days to retain old log files based on the timestamp encoded in their filename. | |
logging.indices.maxbackups | The maximum number of old log files to retain. | |
logging.indices.level | Log level of Eywa's indexing logger. | |
logging.indices.buffer_size | Buffer size of Eywa's indexing logger. Before it's filled, logs won't be flushed to disk. | |
logging.database.filename | The log filename for Eywa's database logger. | |
logging.database.maxsize | The maxsize of the database logger. If it goes beyond this size, Eywa will try to rotate it. | |
logging.database.maxage | The number of days to retain old log files based on the timestamp encoded in their filename. | |
logging.database.maxbackups | The maximum number of old log files to retain. | |
logging.database.level | Log level of Eywa's database logger. | |
logging.database.buffer_size | Buffer size of Eywa's database logger. Before it's filled, logs won't be flushed to disk. |