diff --git a/index.html b/index.html new file mode 100644 index 0000000..a7cdbb5 --- /dev/null +++ b/index.html @@ -0,0 +1,553 @@ + + + + + + + + + + +Jump To Top +
+
+
+

Node Dogapi

+ +
+
+
+
+

event

+ +
+

create(title, text, properties, callback)

+
+

create a new event

+

Parameters:

+
+
title
+

the title of the event

+
+
text
+

the body of the event

+
+
properties
+

an optional object continaing any of the following additional optional properties

+
    +
  • date_happened: POSIX timestamp of when it happened
  • +
  • priority: "normal" or "low" [defualt: "normal"]
  • +
  • host: the host name to associate with the event
  • +
  • tags: array of "tag:value"'s to associate with the event
  • +
  • alert_type: "error", "warning", "info" or "success" [defualt: "info"]
  • +
  • aggregation_key: an arbitrary string used to aggregate like events
  • +
  • source_type_name: options: "nagios", "hudson", "jenkins", "user", "my apps", "feed", "chef", "puppet", "git", "bitbucket", "fabric", "capistrano"
  • +
+
+
callback
+

function(err, res)

+
+
+
+
+
 var dogapi = require("dogapi");
+ var options = {
+   api_key: "api_key",
+   app_key: "app_key"
+ };
+ dogapi.initialize(options);
+ var title = "some new event";
+ var text = "IT HAPPENED!";
+ dogapi.event.create(title, text, function(err, res){
+   console.dir(res);
+ });
+ title = "another event";
+ text = "IT HAPPENED AGAIN!";
+ var properties = {
+   tags: ["some:tag"],
+   alert_type: "error"
+ };
+ dogapi.event.create(title, text, properties, function(err, res){
+   console.dir(res);
+ });
+
+
+
+
+

get(eventId, callback)

+
+

get event details from the provided event id

+

Parameters:

+
+
eventId
+

the id of the event to fetch

+
+
callback
+

function(err, res)

+
+
+
+
+
 var dogapi = require("dogapi");
+ var options = {
+   api_key: "api_key",
+   app_key: "app_key"
+ };
+ dogapi.initialize(options);
+ dogapi.event.get(10005, function(err, res){
+   console.dir(res);
+ });
+
+
+
+
+

query(start, end, parameters, callback)

+
+

query the event stream

+

Parameters:

+
+
start
+

POSIX timestamp for start of query

+
+
end
+

POSIX timestamp for end of query

+
+
parameters
+

optional parameters to use for the query

+
    +
  • priority: "low" or "normal"
  • +
  • sources: comma separated list of sources (e.g. "jenkins,user")
  • +
  • tags: comma separated list of tags (e.g. "tag:value1,tag:value2")
  • +
+
+
callback
+

function(err, res)

+
+
+
+
+
 var dogapi = require("dogapi");
+ var options = {
+   api_key: "api_key",
+   app_key: "app_key"
+ };
+ dogapi.initialize(options);
+ var now = parseInt(new Date().getTime() / 1000);
+ var then = now - 3600; // an hour ago
+ var parameters = {
+   tags: "some:tag",
+   sources: "jenkins"
+ };
+ dogapi.event.query(then, now, parameters, function(err, res){
+   console.dir(res);
+ });
+
+
+
+
+
+
+

metric

+ +
+

send(metric, points, extra, callback)

+
+

submit a new metric

+

Parameters:

+
+
metric
+

the metric name

+
+
points
+

single datapoint or array of [timestamp, datapoint], if a single point +is given "now" is used as the timestamp

+
+
extra
+

optional, object which can contain the following keys

+
    +
  • host: the host source of the metric
  • +
  • tags: array of "tag:value"'s to use for the metric
  • +
  • metric_type: which metric type to use ("gauge" or "counter") [default: gauge]
  • +
+
+
callback
+

function(err, res)

+
+
+
+
+
 var dogapi = require("dogapi");
+ var options = {
+   api_key: "api_key",
+   app_key: "app_key"
+ };
+ dogapi.initialize(options);
+ dogapi.metric.send("my.metric", 1000, function(err, results){
+   console.dir(results);
+ });
+ var now = parseInt(new Date().getTime() / 1000);
+ dogapi.metric.send("my.metric", [now, 1000], function(err, results){
+   console.dir(results);
+ });
+
+
+
+
+

send_all(metrics, callback)

+
+

send a list of metrics

+

Parameters:

+
+
metrics
+

an array of metrics where each element is an object with the following keys

+
    +
  • metric: the name of the metric
  • +
  • points: a single datapoint or an array of [timestamp, datapoint] (same as dogapi.metric.send)
  • +
  • tags: an array of "tag:value"'s
  • +
  • host: the source hostname to use for the metrics
  • +
  • metric_type: the type of metric to use ("gauge" or "counter") [default: gauge]
  • +
+
+
callback
+

function(err, res)

+
+
+
+
+
 var dogapi = require("dogapi");
+ var options = {
+   api_key: "api_key",
+   app_key: "app_key"
+ };
+ dogapi.initialize(options);
+ var now = parseInt(new Date().getTime() / 1000);
+ var metrics = [
+   {
+     metric: "my.metric",
+     points: [now, 1000],
+     tags: ["tag:value"]
+   },
+   {
+     metric: "another.metric",
+     points: 1000
+   }
+ ];
+ dogapi.metric.send_all(metrics, function(err, results){
+   console.dir(results);
+ });
+
+
+
+
+

query(from, to, query, callback)

+
+

make a metric query

+

Parameters:

+
+
from
+

POSIX timestamp for start of query

+
+
to
+

POSIX timestamp for end of query

+
+
query
+

the string query to perform (e.g. "system.cpu.idle{*}by{host}")

+
+
callback
+

function(err, res)

+
+
+
+
+
 var dogapi = require("dogapi");
+ var options = {
+   api_key: "api_key",
+   app_key: "app_key"
+ };
+ dogapi.initialize(options);
+ var now = parseInt(new Date().getTime() / 1000);
+ var then = now - 3600; // one hour ago
+ var query = "system.cpu.idle{*}by{host}";
+ dogapi.metric.query(then, now, query, function(err, res){
+   console.dir(res);
+ });
+
+
+
+
+
+
+

tag

+ +
+

get_all(source, callback)

+
+

get all host tags

+

Parameters:

+
+
source
+

optional, only show tags for a particular source [default: null]

+
+
callback
+

function callback(err, res)

+
+
+
+
+
var dogapi = require("dogapi");
+var options = {
+  api_key: "api_key",
+  app_key: "app_key"
+};
+dogapi.initialize(options);
+dogapi.tag.get_all(function(err, results){
+  console.dir(results);
+});
+
+
+
+
+

get(hostname, options, callback)

+
+

get the host tags for a provided host name or host id

+

Parameters:

+
+
hostname
+

the hostname or host id

+
+
options
+

optional, an object of options for the query allowing the following

+
    +
  • source: the source of the tags (e.g. chef, puppet, users, etc) [default: null]
  • +
  • by_source: whether or not to group the results by source [default: false]
  • +
+
+
callback
+

function callback(err, res)

+
+
+
+
+
var dogapi = require("dogapi");
+var options = {
+  api_key: "api_key",
+  app_key: "app_key"
+};
+dogapi.initialize(options);
+dogapi.tag.get("host.name", function(err, results){
+  console.dir(results);
+});
+
+
+
+
+

create(hostname, tags, source, callback)

+
+

assign new host tags to the provided host name or host id

+

Parameters:

+
+
hostname
+

the hostname or host id

+
+
tags
+

list of <tag>:<value> tags to assign to the server

+
+
source
+

optional, the source of the tags (e.g. chef, puppet, etc) [default: users]

+
+
callback
+

function callback(err, res)

+
+
+
+
+
var dogapi = require("dogapi");
+var options = {
+  api_key: "api_key",
+  app_key: "app_key"
+};
+dogapi.initialize(options);
+dogapi.tag.create("host.name", ["role:webserver"], function(err, results){
+  console.dir(results);
+});
+
+
+
+
+

update(hostname, tags, source, callback)

+
+

update the host tags for the provided host name or host id

+

Parameters:

+
+
hostname
+

the hostname or host id

+
+
tags
+

list of <tag>:<value> tags to assign to the server

+
+
source
+

optional, the source of the tags (e.g. chef, puppet, etc) [default: users]

+
+
callback
+

function callback(err, res)

+
+
+
+
+
var dogapi = require("dogapi");
+var options = {
+  api_key: "api_key",
+  app_key: "app_key"
+};
+dogapi.initialize(options);
+dogapi.tag.update("host.name", function(err, results){
+  console.dir(results);
+});
+
+
+
+
+

delete_tags(hostname, source, callback)

+
+

delete the host tags for the provided host name or host id

+

Parameters:

+
+
hostname
+

the hostname or host id

+
+
source
+

optional, the source of the tags (e.g. chef, puppet, etc) [default: users]

+
+
callback
+

function callback(err, res)

+
+
+
+
+
var dogapi = require("dogapi");
+var options = {
+  api_key: "api_key",
+  app_key: "app_key"
+};
+dogapi.initialize(options);
+dogapi.tag.delete("host.name", function(err, results){
+  console.dir(results);
+});
+
+
+
+
+
+
+

client

+ +
+

client()

+
+

the constructor for client object

+
+ +
+
+

request(method, path, params, callback)

+
+

used to make a raw request to the datadog api

+

Parameters:

+
+
method
+

http method GET, POST, PUT, DELETE

+
+
path
+

the api url path e.g. /tags/hosts

+
+
params
+

an object which allows the keys query or body

+
+
callback
+

function to call on success/failure callback(err, result)

+
+
+
+
+
var dogapi = require("dogapi");
+var options = {
+  api_key: "api_key",
+  app_key: "app_key"
+};
+dogapi.initialize(options);
+dogapi.client.request("GET", "/url/path", {}, function(err, results){
+  console.dir(results);
+});
+
+
+
+
+
+
+

dogapi

+ +
+

initialize(options)

+
+

Parameters:

+
+
options
+

An object which allows you to override the default set parameters for interacting +with the datadog api. The available options are.

+
    +
  • api_key: your api key
  • +
  • app_key: your app key
  • +
  • api_version: the version of the api [default: v1]
  • +
  • api_host: the host to call [default: api.datadoghq.com]
  • +
+
+
+
+
+
var dogapi = require("dogapi");
+var options = {
+  api_key: "<API_KEY_HERE>",
+  app_key: "<APP_KEY_HERE>"
+};
+dogapi.initialize(options);
+dogapi.event.create(...);
+
+
+
+
+
+Fork me on GitHub