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 your 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 through your code or using aggregation tools such as CollectD, StatsdD, FluentD, Riemann, Shinken, Nagios or any others.

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 through aggregation tools such as CollectD, StatsD, Nagios and more.

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 the metrics.

System Monitoring

Again, the only requirement is having the metrics in InfluxDB.
You can use any monitoring tools to collect and send them.

Detect anomaly and monitor your metrics now.

Sign up for Anomaly today.

GET STARTED