Guest User

Untitled

a guest
Jun 22nd, 2017
23
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.66 KB | None | 0 0
  1. var mysql = require('mysql');
  2. var async = require('async');
  3. var request = require('request');
  4.  
  5. var host = "whosting-mariadb-10-1-19-c1.c3uahxgwxkrq.us-east-1.rds.amazonaws.com";
  6. var database = "56686_aniversariocorona";
  7. var user = "whostingmaster";
  8. var password = "d5291XeU76*V";
  9. var elasticsearch = 'http://search-qinsights-aabzxfibr4meoriwcbjzo62oai.us-east-1.es.amazonaws.com';
  10. var indexname = "system-whosting-database-metrics";
  11. var AWS_CLIENT_ID = process.env.AWS_ACCESS_KEY_ID;
  12. var AWS_CLIENT_SECRET = process.env.AWS_SECRET_ACCESS_KEY;
  13. var AWS_SESSION_TOKEN = process.env.AWS_SESSION_TOKEN
  14.  
  15. var dbclient;
  16.  
  17. exports.handler = function (event, context) {
  18.  
  19. async.waterfall([
  20.  
  21. // create database connection
  22. function (cb) {
  23. //console.log("\n** 1. create connection.");
  24. dbclient = mysql.createConnection({
  25. host: host,
  26. user: user,
  27. password: password,
  28. database: database,
  29. });
  30.  
  31. dbclient.connect(cb);
  32. },
  33.  
  34. // run query
  35. function (results, cb) {
  36. var query = "SELECT table_schema 'DB', sum( data_length + index_length ) / 1024 / 1024 'Size' FROM information_schema.TABLES GROUP BY table_schema;"
  37. dbclient.query(query, cb);
  38. },
  39.  
  40. // format
  41. function (rows, fields, callback)
  42. {
  43. var body = [];
  44. rows.forEach(function (row) {
  45. var data = {"Database": rows.DB, "Size in MB": row.Size}
  46. console.log(JSON.stringify(data, null, 2));
  47. body.push(JSON.stringify(data));
  48. });
  49.  
  50. var options = {
  51. url: elasticsearch + "/_bulk",
  52. body: body.join("\n\r") + "\n\r",
  53. headers: {
  54. "Content-Type": "application/x-ndjson"
  55. },
  56. aws: {
  57. key: AWS_CLIENT_ID,
  58. secret: AWS_CLIENT_SECRET,
  59. session: AWS_SESSION_TOKEN,
  60. sign_version: 4
  61. }
  62. }
  63.  
  64. request.post(options, function (error, response, body) {
  65. callback(JSON.parse(body));
  66. });
  67. callback(null);
  68. }
  69.  
  70.  
  71. ],
  72. // waterfall cleanup function
  73. function (err, results) {
  74. if (err) {
  75. console.log("Aw, there was an error: ");
  76. console.log(err);
  77. } else {
  78. console.log("All operations completed without error.");
  79. }
  80.  
  81. dbclient.end();
  82. });
  83.  
  84. };
Add Comment
Please, Sign In to add comment