c# - InfluxDB 2 入门示例不向桶中插入任何数据
问题描述
安装 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 的工作方式在你有多个存储桶之前并不是很清楚,然后更明显的是,在写入(或读取)列中突出显示的存储桶是令牌将具有写入(或读)许可。
推荐阅读
- f# - 在 F# 中,在换行符处将文本拆分为小于特定大小的块
- c# - 如何在 ListView 的调整大小窗口中出现 VerticalScrollBar?
- html - GMAIL 中的“邮件预览”显示替代文字
- git - 如何修复对远程分支的“陈旧”引用?
- sql - 当值在连续时间内不改变时合并行
- azure - 具有环回地址且无连接的 Azure VM 网卡
- typescript - 在打字稿中抽象出泛型类型参数
- javascript - 使用函数时在 Sequelize 中分组
- python - 在 Django 中检索由不同用户创建的模型对象
- python - 如何在谷歌云中部署 Flask ML 模型