InfluxDB 2 入门示例不向桶中插入任何数据
InfluxDB 2 introductory sample does not insert any data into the bucket
安装 InfluxDB 后,2 它会显示一个网站,其中包含各种语言的示例代码。创建了一个存储桶和一个具有 RW 权限的令牌并选择了它们后,可以使用带有适当魔术字符串的代码片段。把它们放在一起我有这个:
using System;
using System.Threading.Tasks;
using InfluxDB.Client;
using InfluxDB.Client.Api.Domain;
using InfluxDB.Client.Writes;
namespace gen
{
class Program
{
static async Task Main(string[] args)
{
// init
const string token = "uaKktnduBm_ranBVaG3y8vU-AAN ... w==";
const string bucket = "SystemMonitor";
const string org = "pdconsec";
var client = InfluxDBClientFactory.Create("http://10.1.1.182:8086", token.ToCharArray());
// write using data point (doesn't require model class)
var point = PointData
.Measurement("mem")
.Tag("host", "host1")
.Field("used_percent", 23.43234543)
.Timestamp(DateTime.UtcNow, WritePrecision.Ns);
using (var writeApi = client.GetWriteApi())
{
writeApi.WritePoint(bucket, org, point);
}
// Flux query
var query = $"from(bucket: \"{bucket}\") |> range(start: -1h)";
var tables = await client.GetQueryApi().QueryAsync(query, org);
}
}
}
这些片段展示了三种不同的方式来编写相同的数据。这三个方法都执行得很顺利,但是桶中没有数据出现,所以我将这里的代码简化为只有一种写入方法。它运行顺利,但桶中什么也没有出现。逐步执行显示 Flux 查询执行返回一个空表列表。
- 我是否需要在桶内创建一些东西或以某种方式为其分配一个与数据点形状相对应的结构?
- 是否有我遗漏的某种保存、刷新或提交?
- 在我看来,该查询的意思是“过去一小时内记录的指定存储桶中的所有内容”,对吗?
在调试控制台上出现一条错误消息。您必须向后滚动才能看到此消息。当应用程序加载时,它被埋没在通常大量的程序集加载信息中。
The batch item wasn't processed successfully because: InfluxDB.Client.Core.Exceptions.ForbiddenException: insufficient permissions for write
at InfluxDB.Client.WriteApi.<>c__DisplayClass9_2.<.ctor>b__21(RetryAttempt attempt)
at System.Reactive.Linq.ObservableImpl.SelectMany`2.ObservableSelector._.OnNext(TSource value) in /_/Rx.NET/Source/src/System.Reactive/Linq/Observable/SelectMany.cs:line 869
所以为什么我的令牌没有写权限?我以为我指定了 RW。重新审视令牌创建,似乎必须单击写入权限以突出显示它,以便将其分配给正在创建的令牌。
在这个例子中,
创建的令牌只有对 SystemMonitor 存储桶的写入权限,因为该存储桶仅在写入列中突出显示。
这个 UI 的工作方式并不是很清楚,直到你有一个以上的存储桶,然后更明显的是写入(或读取)列中突出显示的存储桶就是这些存储桶令牌将对其具有写入(或读取)权限。
安装 InfluxDB 后,2 它会显示一个网站,其中包含各种语言的示例代码。创建了一个存储桶和一个具有 RW 权限的令牌并选择了它们后,可以使用带有适当魔术字符串的代码片段。把它们放在一起我有这个:
using System;
using System.Threading.Tasks;
using InfluxDB.Client;
using InfluxDB.Client.Api.Domain;
using InfluxDB.Client.Writes;
namespace gen
{
class Program
{
static async Task Main(string[] args)
{
// init
const string token = "uaKktnduBm_ranBVaG3y8vU-AAN ... w==";
const string bucket = "SystemMonitor";
const string org = "pdconsec";
var client = InfluxDBClientFactory.Create("http://10.1.1.182:8086", token.ToCharArray());
// write using data point (doesn't require model class)
var point = PointData
.Measurement("mem")
.Tag("host", "host1")
.Field("used_percent", 23.43234543)
.Timestamp(DateTime.UtcNow, WritePrecision.Ns);
using (var writeApi = client.GetWriteApi())
{
writeApi.WritePoint(bucket, org, point);
}
// Flux query
var query = $"from(bucket: \"{bucket}\") |> range(start: -1h)";
var tables = await client.GetQueryApi().QueryAsync(query, org);
}
}
}
这些片段展示了三种不同的方式来编写相同的数据。这三个方法都执行得很顺利,但是桶中没有数据出现,所以我将这里的代码简化为只有一种写入方法。它运行顺利,但桶中什么也没有出现。逐步执行显示 Flux 查询执行返回一个空表列表。
- 我是否需要在桶内创建一些东西或以某种方式为其分配一个与数据点形状相对应的结构?
- 是否有我遗漏的某种保存、刷新或提交?
- 在我看来,该查询的意思是“过去一小时内记录的指定存储桶中的所有内容”,对吗?
在调试控制台上出现一条错误消息。您必须向后滚动才能看到此消息。当应用程序加载时,它被埋没在通常大量的程序集加载信息中。
The batch item wasn't processed successfully because: InfluxDB.Client.Core.Exceptions.ForbiddenException: insufficient permissions for write
at InfluxDB.Client.WriteApi.<>c__DisplayClass9_2.<.ctor>b__21(RetryAttempt attempt)
at System.Reactive.Linq.ObservableImpl.SelectMany`2.ObservableSelector._.OnNext(TSource value) in /_/Rx.NET/Source/src/System.Reactive/Linq/Observable/SelectMany.cs:line 869
所以为什么我的令牌没有写权限?我以为我指定了 RW。重新审视令牌创建,似乎必须单击写入权限以突出显示它,以便将其分配给正在创建的令牌。
在这个例子中,
创建的令牌只有对 SystemMonitor 存储桶的写入权限,因为该存储桶仅在写入列中突出显示。
这个 UI 的工作方式并不是很清楚,直到你有一个以上的存储桶,然后更明显的是写入(或读取)列中突出显示的存储桶就是这些存储桶令牌将对其具有写入(或读取)权限。