diff --git a/lib/api/index.js b/lib/api/index.js index b44f52b..cc8c06a 100644 --- a/lib/api/index.js +++ b/lib/api/index.js @@ -8,6 +8,7 @@ var api = { metric: require("./metric"), monitor: require("./monitor"), screenboard: require("./screenboard"), + search: require("./search"), serviceCheck: require("./serviceCheck"), tag: require("./tag"), timeboard: require("./timeboard"), diff --git a/lib/api/search.js b/lib/api/search.js new file mode 100644 index 0000000..f0cba2f --- /dev/null +++ b/lib/api/search.js @@ -0,0 +1,53 @@ +var client = require("../client"); + +/*section: search + *comment: | + * search for metrics and hosts from the past 24 hours + *params: + * query: the seach query to perform (e.g. "app1" or "hosts:app1" or "metrics:response") + * 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 = "app"; + * dogapi.search.search(query, function(err, res){ + * console.dir(res); + * }); + * ``` + */ +function search(query, callback){ + var params = { + query: { + q: query + } + }; + client.request("GET", "/search", params, callback); +} + +module.exports = { + search: search, + getUsage: function(){ + return [ + " dogapi search " + ]; + }, + getHelp: function(){ + return [ + "Search:", + " Subcommands:", + " search search for hosts and metrics from the last 24 hours" + ]; + }, + handleCli: function(subcommand, args, callback){ + if(subcommand === "search"){ + search(args[""], callback); + } else { + callback("unknown subcommand or arguments try `dogapi search --help` for help", false); + } + } +};