Skip to content

.NET client for InfluxDB distributed time series database.

License

Notifications You must be signed in to change notification settings

jenshenneberg/InfluxDB.Net

 
 

Repository files navigation

InfluxDB.Net

InfluxDB An open-source distributed time series database with no external dependencies. It is the new home for all of your metrics, events, and analytics.

A Portable .NET library to access the REST API of a InfluxDB database.

Support via Gratipay

Original NuGet
This is a fork of InfluxDB.Net NuGet library which currently seems to be in hibernation. I took whatever was out there (including improvements from other forks) did some refactoring on the codebase and plan on implementing the rest of the InfluxDB API.

Installation
There is a nuget package for this project on nuget.org

Versions of InfluxDB
The currently supported versions of InfluxDB is 0.9 - 1.1. When creating a connection to the database you can specify the version to use, or the auto configuration that starts by determening the version.

####List of supported methods

  • Ping
  • Version
  • CreateDatabase
  • DeleteDatabase
  • DescribeDatabases
  • Write
  • Query
  • CreateClusterAdmin(User user);
  • DeleteClusterAdmin(string name);
  • DescribeClusterAdmins();
  • UpdateClusterAdmin(User user, string name);
  • CreateDatabaseUser(string database, User user);
  • DeleteDatabaseUser(string database, string name);
  • DescribeDatabaseUsers(String database);
  • UpdateDatabaseUser(string database, User user, string name);
  • AuthenticateDatabaseUser(string database, string user, string password);
  • GetContinuousQueries(String database);
  • DeleteContinuousQuery(string database, int id);
  • DeleteSeries(string database, string name);
  • ForceRaftCompaction();
  • Interfaces();
  • Sync();
  • ListServers();
  • RemoveServers(int id);
  • CreateShard(Shard shard);
  • GetShards();
  • DropShard(int id, Shard.Member servers);
  • GetShardSpaces();
  • DropShardSpace(string database, string name);
  • CreateShardSpace(string database, ShardSpace shardSpace);

Ping

var _client = new InfluxDb("http://...:8086", "root", "root");
  Pong pong =await _client.PingAsync();

Version

var _client = new InfluxDb("http://...:8086", "root", "root");
  string version =await  _client.VersionAsync();

Create Database

var _client = new InfluxDb("http://...:8086", "root", "root");
 InfluxDbApiCreateResponse response =await  _client.CreateDatabaseAsync("MyDb");
 //Or
 InfluxDbApiCreateResponse response = await _client.CreateDatabaseAsync(new DatabaseConfiguration
            {
                Name = "MyDb"
            });

Delete Database

var _client = new InfluxDb("http://...:8086", "root", "root");
InfluxDbApiDeleteResponse deleteResponse = await _client.DeleteDatabaseAsync("MyDb");

Describe Databases

var _client = new InfluxDb("http://...:8086", "root", "root");
List<Database> databases = await _client.DescribeDatabasesAsync();

Write

var _client = new InfluxDb("http://...:8086", "root", "root");
Serie serie = new Serie.Builder("testSeries")
                .Columns("value1", "value2")
                .Values(DateTime.Now.Millisecond, 5)
                .Build();
InfluxDbApiResponse writeResponse =await _client.WriteAsync("MyDb", TimeUnit.Milliseconds, serie);

Query

var _client = new InfluxDb("http://...:8086", "root", "root");
 List<Serie> series = await _client.QueryAsync("MyDb", "select * from testSeries"), TimeUnit.Milliseconds);

##Bugs If you encounter a bug, performance issue, or malfunction, please add an Issue with steps on how to reproduce the problem.

##PowerShell Cmdlet The PowerShell Cmdlet can be tested using the script TestInfluxDb.ps1.

Installation
import-module [PATH]\InfluxDb -force

Open

$db = Open-InfluxDb -Uri:"http://...:8086" -User:"root" -Password:"root"

Ping

$pong = Ping-InfluxDb -Connection:$db

Add
Adds a new database.

Add-InfluxDb -Connection:$db -Name:"SomeDatabase"

Write
Not yet implemented

Write-InfluxDb

##License

Code and documentation are available according to the MIT License (see LICENSE).

About

.NET client for InfluxDB distributed time series database.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C# 97.5%
  • PowerShell 1.4%
  • Shell 1.1%