Skip to content

Instantly share code, notes, and snippets.

@ritalin
Created March 7, 2016 05:04
Show Gist options
  • Save ritalin/9267a7becece099f81c2 to your computer and use it in GitHub Desktop.
Save ritalin/9267a7becece099f81c2 to your computer and use it in GitHub Desktop.
InfluxdbのHTTP APIをPoweshellから叩く例

Enter file contents here## create database

@{ q = "create database mydb" } | Invoke-WebRequest -Method Get -Uri "http://localhost:8086/query"

write data

write single data

"cpu_load_short,ost=server_01,region=us-west value=0.54 1434055562000000000" | Invoke-WebRequest -Method Post -Uri http://localhost:8086/write?db=mydb

write multiplee data

$series = @(
    "cpu_load_short,host=server_02 value=0.67"
    "cpu_load_short,host=server_02,region=us-west value=0.55 1422568543702900257"
    "cpu_load_short,direction=in,host=server_01,region=us-west value=2.0 1422568543702900257"
)

# \r\nではなく\nで連結する必要があることに注意
$series -join "`n" | Invoke-WebRequest -Method Post -Uri http://localhost:8086/write?db=mydb

writing from file

$series = @(
    "cpu_load_short,host=server_02 value=0.78"
    "cpu_load_short,host=server_02,region=us-west value=0.56 1422568543702900357"
    "cpu_load_short,direction=in,host=server_01,region=us-west value=2.1 1422568543702900357"
)

[IO.File]::WriteAllText((Resolve-Path cpu_data.txt), ($series -join "`n"))

# Out-Fileだと最後に\r\n付与されるため、失敗する。ツライ
Invoke-WebRequest -Method Post -Uri http://localhost:8086/write?db=mydb -Infile cpu_data.txt

Querying data

Single query

$params = @{
    db = "mydb"
#    pretty = $true #Invoke-RestMethodを使う限りにおいては、なくても困らない
    q = "SELECT value FROM cpu_load_short WHERE region='us-west'"
}

$response = $params | Invoke-RestMethod -Method Get -Uri http://localhost:8086/query
$response | ConvertTo-Json -Depth 5

Multiple queries

$params = @{
    db = "mydb"
    q = @(
        "SELECT value FROM cpu_load_short WHERE region='us-west'"
        "SELECT count(value) FROM cpu_load_short WHERE region='us-west'"
    ) -join ";"
}
$response = $params | Invoke-RestMethod -Method Get -Uri http://localhost:8086/query
$response | ConvertTo-Json -Depth 5

Timestamp format

$params = @{
    db = "mydb"
    epoch="s" # h,m,s,ms,u,ns
    q = "SELECT value FROM cpu_load_short WHERE region='us-west'"
}
$response = $params | Invoke-RestMethod -Method Get -Uri http://localhost:8086/query
$response | ConvertTo-Json -Depth 5

Large chunk size

$params = @{
    db = "mydb"
    chunk_size=20000
    q = "SELECT value FROM cpu_load_short WHERE region='us-west'"
}
$response = $params | Invoke-RestMethod -Method Get -Uri http://localhost:8086/query
$response | ConvertTo-Json -Depth 5
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment