安装 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 查询执行返回一个空的表列表。
- 我是否需要在存储桶内创建一些东西,或者以某种方式为其分配一个与数据点形状相对应的结构?
- 是否有某种我省略的保存、刷新或提交?
- 在我看来,该查询意味着“上一小时记录的命名存储桶中的所有内容”,对吗?