nscale-aws-analyzer

Analyze your AWS deployment!

nscale-aws-analyzer

Analyze your AWS deployment done by nscale.

##Installation The nscale-aws-analyzer module can be installed in a variety of ways depending on usage.

###Directly within nscale If you are deploying nscale to aws, a simple change to nscale's config file is all that is needed. In the modules section under analysis, set the value of require to nscale-aws-analyzer; nscale will will handle requiring the module.

{
  ...
  
  "modules": {
    "protocol": {
      "require": "nscale-protocol"
    },
    
    ...
    
    "analysis": {
      "require": "nscale-aws-analyzer"
    }
  }
  
  ...
}

###As a global module To use as a stand alone node module simply install globally from NPM. The module can then be used by pointing it to a valid config file. Note, npm may require administrator permission to install global modules.

[sudo] npm install nscale-aws-analyzer -g
nscale-aws-analyzer ./path/to/config.json

###Embeded in your own project As well as globally, nscale-aws-analyzer can also be installed locally in a project via NPM. Simply require nscale-aws-analyzer. And call analyze to get the results in JSON format.

[sudo] npm install nscale-aws-analyzer --save
'use strict';
 
var fs = require('fs');
var analyzer = require('nscale-aws-analyzer');
 
var configFile = process.argv[2];
var config = JSON.parse(fs.readFileSync(configFile, 'utf8'));
 
analyzer.analyze(config, null, function(errresult) {
  if (err) {
    process.exit(1);
  }
  
  console.log(JSON.stringify(result, null, 2));
  process.exit(0);
  });

Regardless of installation method, a particular set of fields are required to be present in the config file. A sample config can be found in the test directory, it is the same as listed below.

{
  "systemId": "4624e815-f814-4802-89b4-e33340a6af46",
  "namespace": "nsd",
  "name": "nsd-test",
  "accessKeyId": "aws-key-id",
  "secretAccessKey": "aws-access-key",
  "region": "aws-region",
  "user": "awsuser",
  "identityFile": "path/to/pem/file",
  "instanceFilter": "filter"
}

Copyright (c) 2014 Nearform and other contributors

Licensed under the Artistic License 2.0