Monitor everything

Monitor everything you care about.
It’s easy to monitor your server at the System and App level. With few lines of code, your can also monitor you own code.

It doesn’t matter how you collect, aggregate and send your metrics to us. The only requirement is to send it to your InfluxDB. You can send your data directly to InfluxDB throw your code or using any aggregation tools such as CollectD, StatsdD, FluentD, Riemann, Shinken, Nagios or any other tools.

Be creative!
We just need the data in InfluxDB to detect anomalies.

GET STARTED

layers monitoring

Code monitoring

You can send your metrics directly to InfluxDB
or throw any aggregation tools such as CollectD, StatsD, Nagios…

InfluxDB influxDB = InfluxDBFactory.connect("https://db.anomaly.io:8086", "myLogin", "myPassword");

Serie login = new Serie.Builder("server01.web.signup")
            .columns("success", "timeTaken", "country")
            .values(true, 8013, "FR")
            .build();

Serie pageview = new Serie.Builder("server01.web.pageview")
            .columns("current", "from", "loadTime")
            .values("/product?id=1", "/home", 201)
            .values("/product?id=2", "/home", 342)
            .build();

this.influxDB.write(dbName, TimeUnit.MILLISECONDS, login, pageview);
from influxdb import InfluxDBClient

json_body = [
    {
        "name": "server01.web.signup",
        "timestamp": "2015-05-10T23:00:00Z",
        "fields": {
            "success": true,
            "timeTaken": 8012,
            "country" : "FR"
        }
    },
    {
        "name": "server01.web.pageview",
        "timestamp": "2015-05-10T23:00:00Z",
        "fields": {
            "current": "/product?id=1",
            "from": "/home",
            "loadTime" : 201
        }
    },
    {
        "name": "server01.web.pageview",
        "timestamp": "2015-05-10T23:00:00Z",
        "fields": {
            "current": "/product?id=2",
            "from": "/home",
            "loadTime" : 342
        }
    }
]

client = InfluxDBClient('https://db.anomaly.io', 8086, 'myLogin', 'myPassword', 'myDb')

client.write_points(json_body)
influxdb = new InfluxDB({
  "host" :"https://db.anomaly.io",
  "port" :"8086",
  "username" :"myLogin",
  "password" :"myPassword",
  "database" :"myDb"
});

json_body = [
    {
        name: "server01.web.signup",
        columns: ["success", "timeTaken", "country"],
        points: [true, 8012, "FR"]
    },
    {
        name: "server01.web.pageview",
        columns: ["current", "from", "loadTime"],
        points: [
            ["/product?id=1", "/product?id=2", 201],
            ["/product?id=2", "/home", 342]
        ]
    },
];

influxdb.writeSeries(json_body)
NSString *post = @"{
  'name':'server01.web.signup',
  'columns':['success', 'timeTaken', 'country'],
  'points':[[true, 8013, 'FR']]
}";
NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
NSString *postLength = [NSString stringWithFormat:@"%lu", (unsigned long)[post length]];

NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:@"http://db.anomaly.io:8086/db/myDb/series?u=myLogin&p=myPassword"]];

[request setHTTPMethod:@"POST"];
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
[request setHTTPBody:postData];
require 'influxdb'
influxdb = InfluxDB::Client.new 'myDb', host: 'db.anomaly.io', :username => 'myLogin', :password => 'myPassword'

signup = {
  :success => true,
  :timeTaken => 8012,
  :country => 'FR'
}
influxdb.write_point('server01.web.signup', signup)

pageview1 = {
  :current => '/product?id=1',
  :from => '/product?id=2',
  :loadTime => 201
}
pageview2 = {
  :current => '/product?id=2',
  :from => '/home',
  :loadTime => 342
}
influxdb.write_point('server01.web.pageview', pageview1)
influxdb.write_point('server01.web.pageview', pageview2)
var client = new InfluxDBClient("db.anomaly.io", 8086, "myLogin", "myPassword", "myDb");

var signup = new Serie { Name = "server01.web.signup", ColumnNames = new[] { "success", "timeTaken", "country" } };
signup.Points.Add(new object[] { true, 8013, "FR" });

var pageview = new Serie { Name = "server01.web.pageview", ColumnNames = new[] { "current", "from", "loadTime" } };
pageview.Points.Add(new object[] { "/product?id=1", "/home", 201 });
pageview.Points.Add(new object[] { "/product?id=2", "/home", 342 });

var series = new List { signup, pageview };
client.Insert(series);

$client = new \crodas\InfluxPHP\Client('db.anomaly.io' ,8086,'myLogin' ,'myPassword' );
$db = $client->myDb;

$db->insert('server01.web.signup', ['success' => true, 'timeTaken' => 8013, 'country' => 'FR']);

$db->insert('server01.web.pageview', ['current' => '/product?id=1', 'from' => '/home', 'loadTime' => 201]);
$db->insert('server01.web.pageview', ['current' => '/product?id=2', 'from' => '/home', 'loadTime' => 201]);
client, err := influxdb.NewClient(&influxdb.ClientConfig{
	Host:     "db.anomaly.io:8086",
	Username: "myLogin",
	Password: "myPassword",
	Database: "myDb",
})

signup := &influxdb.Series{
    Name: "server01.web.signup",
    Columns: []string{"success", "timeTaken", "country"},
    Points: [][]interface{}{
        []interface{}{true, 8013, "FR"},
    },
}

pageview := &influxdb.Series{
    Name: "server01.web.pageview",
    Columns: []string{"current", "from", "loadTime"},
    Points: [][]interface{}{
        []interface{}{ "/product?id=1", "/home", 201 },
        []interface{}{ "/product?id=2", "/home", 342 },
    },
}
client.WriteSeriesWithTimePrecision([]*influxdb.Series{signup, pageview}, "s");
#include <influxdb/influxdb.h>

s_influxdb_client *client = influxdb_client_new("db.anomaly.io:8086", "myLogin", "myPassword", "myDb", 0);

s_influxdb_series *series = influxdb_series_create("server01.web.signup", NULL);

char **signup = malloc(sizeof (char *) * 4);
influxdb_series_add_colums(series, "success");
influxdb_series_add_colums(series, "timeTaken");
influxdb_series_add_colums(series, "country");
signup[0] = strdup("true");
signup[1] = strdup("8013");
signup[2] = strdup("FR");
influxdb_series_add_points(series, signup);

influxdb_write_serie(client, series);
val influxDB = InfluxDBFactory.connect("https://db.anomaly.io:8086", "myLogin", "myPassword");

val login = new Serie.Builder("server01.web.signup")
            .columns("success", "timeTaken", "country")
            .values(true, 8013, "FR")
            .build();

val pageview = new Serie.Builder("server01.web.pageview")
            .columns("current", "from", "loadTime")
            .values("/product?id=1", "/home", 201)
            .values("/product?id=2", "/home", 342)
            .build();

influxDB.write(dbName, TimeUnit.MILLISECONDS, login, pageview);
library(influxdb)

signup <- data.frame(signup=c(true, 8013, "FR"), signupName=c("success","timeTaken","country"))
pageview1 <- data.frame(pageview=c("/product?id=1", "/home", 201), pageviewName=c("current","from", "loadTime"))
pageview2 <- data.frame(pageview=c("/product?id=2", "/home", 342), pageviewName=c("current","from", "loadTime"))
all <- structure(list(signup, pageview1, pageview2), names=c("server01.web.signup", "server01.web.pageview", "server01.web.pageview"))

influxdb_write("db.anomaly.io", 8086, "myLogin", "myPassword", "myDb", all)
use InfluxDB;

my $ix = InfluxDB->new(
    host     => 'db.anomaly.io',
    port     => 8086,
    username => 'myLogin',
    password => 'myPassword',
    database => 'myDb'
);

$ix->write_points(
    data => {
        name    => "server01.web.signup",
        columns => [qw(success timeTaken country)],
        points  => [
            [true, 8013, "FR"]
        ],
    },
);

$ix->write_points(
    data => {
        name    => "server01.web.pageview",
        columns => [qw(current from loadTime)],
        points  => [
            [ "/product?id=1", "/home", 201 ],
            [ "/product?id=2", "/home", 342 ],
        ],
    },
);
curl -X POST -d '[{"name":"server01.web.signup","columns":["success", "timeTaken", "country"],"points":[[true, 8013, "FR"]]}]' 'https://db.anomaly.io:8086/db/myDb/series?u=myLogin&p=myPassword'

curl -X POST -d '[{"name":"server01.web.pageview","columns":["current", "from", "loadTime"],"points":[[ "/product?id=1", "/home", 201 ], [ "/product?id=2", "/home", 342 ],]}]' 'https://db.anomaly.io:8086/db/myDb/series?u=myLogin&p=myPassword'

App monitoring

The only requirement is to send your metrics to InfluxDB.
You can use any monitoring tools to collect and send your apps metrics to InfluxDB.

System monitoring

The only requirement is to send your metrics to InfluxDB.
You can use any monitoring tools to collect and send your system metrics to InfluxDB.

Detect anomaly and monitor your metrics now.

Sign up for Anomaly today.

GET STARTED