Clone this wiki locally
Edda Configuration is done via an edda.properties file located at the server root. The file name and location can be overridden with the system property -Dedda.properties=file-path. Here is the document under source control with the defaults listed.
In the documentation below $account refers to any value found in the edda.accounts property. If edda.accounts is unset then the configuration options without $account are relevent and configuration options like edda.$accounts.setting will be read as edda.setting.
$collectionName refers to any of the collections that Edda currently crawls:
aws.addresses aws.alarms aws.autoScalingGroups aws.buckets aws.images aws.instances aws.launchConfigurations aws.loadBalancers aws.reservedInstances aws.scalingPolicies aws.securityGroups aws.snapshots aws.tags aws.volumes group.autoScalingGroups view.instances view.loadBalancerInstances view.simpleQueues
Edda can be configured to poll collections for any number of (comma separated) accounts. Per account configuration options are available below. The default is unset.
This sets the region for the collections that Edda will be polling. For AWS this setting will determine which AWS Endpoint Edda communicates with. The default is unset.
See edda.region. If multiple accounts are being used then you can set the region per account. This could be useful it you intend to poll multiple regions from a single Edda instance. For example if
edda.accounts=prod.us-east-1,prod.eu-west-1 then you would want to set the region specifically for each account as:
The access key for AWS account. If unset Edda will attempt to access the AWS Account using the Default AWS Credential Provider Chain.
See edda.aws.accessKey. Allow for per-account AWS credential settings.
The secret key for AWS account. If accessKey is set then secretKey must also be set.
See edda.aws.secretKey. Allow for per-account AWS credential settings.
The time periond in milliseconds for how frequent secondary edda servers should reload their in-memory cache of "live" resources. Not used if Edda running in stand-alone mode. Default value is 30000 (30 seconds).
See edda.collection.cache.refresh. If you want change the cache refresh rate for a specific account you can set this.
See edda.collection.cache.refresh. If you want change the cache refresh rate for a specific account and specific collection you can set this. You might want to increase the default value if a collection is especially large, or decrease the value if the collection is small.
The time periond in milliseconds for how frequent the primary edda servers should crawl the AWS APIs looking for changed resources. Default value is 60000 (1 minute).
See edda.collection.refresh. If you want change the crawl frequency for a specific account you can change this value.
See edda.collection.refresh. If you want change the crawl frequency for a specific account and specific collection you can change this value.
This boolean value is used to ease the load on your data store upon startup. The default value is false. The jitter cases the initial load of the collection to be staggered randomly over a time period of 2 x edda.collection.cache.refresh. You might want to set this to true for development or if you collections are small enough that the data store has no problem loading them all simultaneously.
You can disable all collections for a specific account by setting this value to false. The default value is true.
You can disable a specific collection for an account by setting this value to false. The default value is true.
Edda polls some API's via java client libraries which return Java Beans. We serialize the Beans to a JSON blob before persisting the data to the data store. This setting is a regular express that determines which properties of the bean to serialize. The default value is [^a-zA-Z0-9_]. Any Bean properties not matching this regular expression will be ignored.
AWS provides the ability to add custom tags to many resources that Edda will poll. Sometimes those tags are frequently changing (like tags with timestamp values) which will cause Edda to persist a ton of data that is of little use. If there are tags that you need Edda to ignore you can set this property to a comma separated list of tag names where the value will be automatically replced with [EDDA_SUPPRESSED]. The default value is unset.
AWS APIs for resources that support tagging have an odd quirk ... if Amazon is experiencing load problems with their API servers they will silently drop all tag information from the responses. Until this problem can be fixed by AWS we have this special setting to allow us to handle this degraded response. If you routinely use tags on your AWS resources you should set this value to true, which will cause crawl results that are missing any tags to be ignored. The default value is false.
See edda.crawler.abortWithoutTags. Apply setting to a specific account.
See edda.crawler.abortWithoutTags. Apply setting to a specific account and specific collection.
Boolean value to enable or disable crawlers for an account. The default value is true.
Boolean value to enable or disable a crawler for a specific account and specific collection. The default value is true.
Elector options control how leader election is done in Edda.
The time period in milliseconds for how frequently an election should be run to determine a new leader. The default value is 10000 (10 seconds).
The Mongo Elector uses MongoDB's atomic write capabilities to determine leadership. For this to work every Edda instance in a cluster will attempt to write to a single record in a specific collection. This values lets you customize the collection name. The default value is sys.monitor.
If Mongo Elector is being used, leaders that have not updated MongoDB within a timeout period will automatically loose leadership and a new leader will be chosen. The default value is 30000 (30 seconds). We recommend the value be 3x edda.elector.refresh.
The Mongo Elector will use a unique id to identify each candidate in the election and it gets this unique id from an environment variable. The default value is to use the AWS Instance ID for a unique name, and that value is assumed to be in the EC2_INSTANCE_ID environment variable. If the unique name is in a different environment variable then change this setting.
Options for how to connect to MongoDB. You can customize the connections per account or even per collection to be able to spread out the load on MongoDB between more instances.
The network address:port for where the MongoDB server is running. The default is localhost:27017. If you are running a MongoDB replication set, then set this value to a comma separated list of all the addresses of the replication set.
See edda.mongo.address. Set the address for a specific account.
See edda.mongo.address. Set the address for a specific account and collection.
Specify the name of the database in the MondoDB server to use. The default value is edda.
See edda.mongo.database. Set the database name to use for a specific account.
See edda.mongo.database. Set the database name to use for a specific account and collection.
Specify the user name to use when connecting to the MongoDB server. The default is unset.
See edda.mongo.user. Set the user for a specific account.
See edda.mongo.user. Set the user for a specific account
Specify the password to use when connecting to the MongoDB server. The default is unset.
See edda.mongo.password. Set the password for a specific account.
See edda.mongo.password. Set the password for a specific account and collection.