Archimedes Server Profile
Archimedes is a passive application monitoring server built on Drupal but designed to facilitate any web based application. Archimedes achieves passive application monitoring by installing an Archimedes client on your web hosted application. In Drupal's case, it's installing the Archimedes Client module.
The Client collects up information about the application and sends it back to the server where the server reads it in and creates or updates the site node that represents that client on the server.
Archimedes currently collects these metrics
- Site Data size
- Site Root size
- Database details
- Database size
- Site instance Metrics
- Environment (Production, Staging, Development)
- Associated users
- Git hash
- Git remotes
- Unique Identifier
- Software specific
- Modules, themes, etc
Some of the features of Archimedes
- HTTP or SMTP communication with the server. Permits Archimedes to monitor sites behind firewalls without requiring firewall exemptions.
- RSA key encryption. All data collected by clients is encrypted in transit with the server's public RSA key.
Clone this profile repo, then run
drush make with the file
build-archimedes.make from within it.
drush make path/to/archimedes_server_profile/build-archimedes.make /path/to/archimedes.example.org
@TODO: It should be possible to do this by pointing
drush make at
the URL for a raw .make file?
This will build your Archimedes Server codebase. Now you can run
Drupal installation by visiting the site or from the CLI using
When using the web installer, you will be prompted also for the "Server Domain" - this is the URL which your Archimedes client sites will report status to if submitting over HTTP.
To install via CLI, set the site URL using
drush -y site-install archimedes_server_profile \ --db-url=mysql://test_archimedes:password@localhost/test_archimedes \ --email@example.com \ --site-name='Archimedes' \ -l https://test-archimedes.fudev.co.nz \ site_information.archimedes_server_url_domain=https://test-archimedes.fudev.co.nz
Setting up client sites
You're done! OK, you're not, but your Archimedes server should have reported in its own initial module status to itself, so you have a taste ready to go.
To install additional client sites, add the Archimedes library and module to the site, and configure it by visiting the Archimedes settings screen (Reports > Archimedes > Settings).
Here you'll need to copy the settings from your Archimedes server to your client. For HTTP submission, you need the Submission URL and the Server Public Key.
Configuring client sites
Base URL - If submitting updates from Archimedes, you can use
drush arch-send to push an update out from the client site. For this
to work, Drush needs to know the location of the site (either
$base_url in settings.php or use
-l parameter to
Environment - You should set your site environment to enable Archimedes to discern between copies of sites.
drush vset environment production
Additional data - Archimedes has an unexposed variable,
archimedes_use_unsafe_collection, which if set to TRUE on a site
will enable additional data collection there.
drush vset archimedes_use_unsafe_collection 1
@TODO: Document how to submit over email, currently unexplored.
When a site is configured, it will push its reports to the Archimedes Server daily. The Archimedes Server processes these reports and imports them to new nodes/node revisions when cron runs. Because your reports depend on cron happening on two sites, you may see some delays if you don't configure cron to account for this.