var client = require("../client"); /*section: graph *comment: take a snapshot of a metric query *params: * query: the metric query to use for the snapshot * from: POSIX timestamp for the beginning of the query * to: POSIX timestamp for the end of the query * eventQuery: optional, an event query to overlay event bands on the snapshot * callback: function(err, res) *example: | * ```javascript * var dogapi = require("dogapi"); * var options = { * api_key: "api_key", * app_key: "app_key" * }; * dogapi.initialize(options); * var query = "system.cpu.idle{*}"; * var to = dogapi.now(); * var from = to - 3600; // an hour ago * dogapi.graph.snapshot(query, from, to, function(err, res){ * console.dir(res); * }); * ``` */ function snapshot(query, from, to, eventQuery, callback){ if(arguments.length < 5 && typeof arguments[3] === "function"){ callback = eventQuery; eventQuery = undefined; } var params = { query: { metric_query: query, start: parseInt(from), end: parseInt(to) } }; if(eventQuery){ params.query.event_query = eventQuery; } client.request("GET", "/graph/snapshot", params, callback); } module.exports = { snapshot: snapshot, getUsage: function(){ return [ " dogapi graph snapshot [--events ]" ]; }, getHelp: function(){ return [ "Graph:", " Subcommands:", " snapshot take a snapshot of a graph", " Options:", " --events a query for event bands to add to the snapshot" ]; }, handleCli: function(subcommand, args, callback){ if(args._.length > 5){ var query = args._[4]; var from = parseInt(args._[5]); var to = parseInt(args._[6]); var eventQuery = args["events"]; snapshot(query, from, to, eventQuery, callback); } else { callback("unknown subcommand or arguments try `dogapi graph --help` for help", false); } } };