| @ -0,0 +1,73 @@ | |||||
| 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 = from - 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 <query> <from> <to> [--events <event-query>]" | |||||
| ]; | |||||
| }, | |||||
| getHelp: function(){ | |||||
| return [ | |||||
| "Graph:", | |||||
| " Subcommands:", | |||||
| " snapshot <query> <from> <to> take a snapshot of a graph", | |||||
| " Options:", | |||||
| " --events <event-query> 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); | |||||
| } | |||||
| } | |||||
| }; | |||||