Using #PowerShell to talk to #InfluxDB #InfluxData

In my last post, I released several PowerShell modules to talk to several CI/CD tools. This includes InfluxDB a time-series database which is part of the TICK stack by InfluxData for storing and analyzing monitoring data.

Installation

As mentioned in my original announcement of the PowerShell modules for CI/CD tools, they all require two base modules called Helpers and WebRequest which can be installed right before InfluxDb:

Install-Module -Name Helpers, WebRequest, InfluxDb -Scope CurrentUser -AllowClobber

If you need to make this work through a proxy, tell WebRequest to do so for you:

$ProxyPreference = 'Proxy'
$ProxyServer = 'http://1.2.3.4:3128'

Configuration

Before the cmdlets contained in the module can be used to talk to InfluxDB, the modules needs to know where the server lives and how to authenticate against it:

Set-InfluxDbServer -Server influxdb.mydomain.com -User myuser -Token mytoken

Usage

Let’s first take a look at the cmdlets contained in the module:

PS> Get-Command -Module InfluxDb

CommandType     Name                                               Version    Source
-----------     ----                                               -------    ------
Function        Add-InfluxDbPrivilege                              0.5.14     InfluxDb
Function        Get-InfluxDbDatabase                               0.5.14     InfluxDb
Function        Get-InfluxDbField                                  0.5.14     InfluxDb
Function        Get-InfluxDbMeasurement                            0.5.14     InfluxDb
Function        Get-InfluxDbPrivilege                              0.5.14     InfluxDb
Function        Get-InfluxDbUser                                   0.5.14     InfluxDb
Function        New-InfluxDbDatabase                               0.5.14     InfluxDb
Function        New-InfluxDbUser                                   0.5.14     InfluxDb
Function        Remove-InfluxDbDatabase                            0.5.14     InfluxDb
Function        Remove-InfluxDbPrivilege                           0.5.14     InfluxDb
Function        Remove-InfluxDbUser                                0.5.14     InfluxDb
Function        Set-InfluxDbServer                                 0.5.14     InfluxDb

By using the cmdlets show above, you can analyze the databases, measurements and fields as well as the users and their privileges. But they also help adding databases, users and privileges.

The following example creates a database as well as a new user with full access to it:

PS> New-InfluxDbDatabase -Database MyNewDb
PS> New-InfluxDbUser -User MyNewUser -Password MyPassword
PS> Add-InfluxDbPrivilege -Database MyNewDb -User MyNewUser -Privilege All

Although it is really nifty to create all this from the console instead of writing the low-level statements directly against InfluxDB, it still requires three cmdlets to be executes. When I create a new database in InfluxDB, I usually create two new dedicated users - a reader and a writer - to accompany the database. Therefore, I added the appropriate parameters to New-InfluxDbDatabase to make this really easy:

New-InfluxDbDatabase -Database MySecondNewDb -ReaderUser MyDbReader -ReaderPassword MyReadPw -WriterUser MyDbWriter -WriterPassword MyWritePw

If you have feedback please let create an issue.

Feedback is always welcome! If you'd like to get in touch with me concerning the contents of this article, please use Twitter.