首页 > 编程语言 >绝望的C#:看得出,很多官方库也没经过大脑——InfluxDB.Client(这可是官方库哦)

绝望的C#:看得出,很多官方库也没经过大脑——InfluxDB.Client(这可是官方库哦)

时间:2024-04-10 19:58:05浏览次数:26  
标签:name point C# 代码 InfluxDB Field 官方 value immutableSortedDictionary

初级代码游戏的专栏介绍与文章目录-CSDN博客

我的github:codetoys,所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。

这些代码大部分以Linux为目标但部分代码是纯C++的,可以在任何平台上使用。


        今天尝试使用influxdb。用的官方C#客户端InfluxDB.Client,代码也是来自官方教程。

        首先呢,下载安装都挺好,按名字搜索嘛,然后就是复制粘贴官方代码,就在web管理界面上嘛。(这篇是吐槽,不是新手教程)

        编译,发现函数参数顺序不正确:

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);现在的版本是point在第一个
}

        这种小调整嘛,可以理解,随手就改过来了嘛。

        然后执行代码,挺好,一切正常。

        然后就要写我自己的业务代码了,我一行数据好多字段的,要在循环里面加,大概就是这样:

var point = PointData
  .Measurement("mem")
  .Tag("host", "host1")
  //.Field("used_percent", 23.43234543)这句就不要了
  .Timestamp(DateTime.UtcNow, WritePrecision.Ns);

foreach(...)
{
    point.Field(name,value);在这里添加每个字段
}

using (var writeApi = client.GetWriteApi())
{
  writeApi.WritePoint(bucket, org, point);
}

        小意思,是吧?然后这个代码就死活不工作了,插不了任何数据。

        考虑会不会是我添加的tag和field有问题啊,各种替换啊,替换到测试代码正确,正式代码就是不行。具体就略了,大家都是程序员,很懂这种状态。

        最后去看了看相关调用的源代码:

	public PointData Field(string name, string value)
	{
		return PutField(name, value);
	}
	private PointData PutField(string name, object value)
	{
		Arguments.CheckNonEmptyString(name, "Field name");
		ImmutableSortedDictionary<string, object> immutableSortedDictionary = _fields;
		if (immutableSortedDictionary.ContainsKey(name))
		{
			immutableSortedDictionary = immutableSortedDictionary.Remove(name);
		}

		immutableSortedDictionary = immutableSortedDictionary.Add(name, value);
		return new PointData(_measurementName, Precision, _time, _tags, immutableSortedDictionary);无语了,这里竟然是返回一个新对象!
	}

        额滴个神啊!Field()调用最后竟然是返回一个新对象!


(吐槽结束)

标签:name,point,C#,代码,InfluxDB,Field,官方,value,immutableSortedDictionary
From: https://blog.csdn.net/2301_77171572/article/details/137608073

相关文章

  • 开启mmu后,call和jalr的区别
    在我写虚拟内存时遇到一些问题,jalrt0就是可以的,而callmain则没办法成功而且这里默认main是偏移前的地址,怪哉!!!让我们看看jalr和call(伪指令!!!)然后在链接后看看main的地址,主要看程序中main是不是偏移悬着的心也死了!!!查看一下ucore也有类似的问题,看看他们怎么解释  太......
  • WPF 读取和存储RichTextBox的文档内容
    在编辑RichTextBox内容时,我们看不到其文档的源码内容,因为我们没有像在Web开发中那样有浏览器自带的翻译功能可以使用(相关内容http://blog.sina.com.cn/s/blog_685790700100l61i.html)。将会用到两个对象 System.Windows.Markup命名空间下的XamlWriter对象和XamlReader对象。htt......
  • c++11实现线程池
    c++11实现线程池c++线程库thread创建线程和同步的方式jion,detach#include<iostream>#include<thread>voidprintf_hw(std::strings){ std::cout<<s<<"\n";}intmain(){ std::threada(printf_hw,"nihao"); //a.join();//同步 a.de......
  • 【ARM Coresight SOC-600 -- ETF 介绍】
    请阅读【ARMCoresightSoC-400/SoC-600专栏导读】文章目录SOCETFSOCETFREGISTERScss600_tmc_etfRAMReadDataregister(RRD)css600_tmc_etfRAMReadPointerregister(RRP)css600_tmc_etfRAMWritePointerregister(RWP)css600_tmc_etfRAMWriteDatar......
  • C语言—指针变量作函参改错
    下面程序用于将6个数按输入时顺序的逆序进行排列。找出其中错误,并改正之。#include<stdio.h>voidSwap(int*x,int*y){    int*temp;    temp=x;    x=y;        y=temp;}voidSort(char*p,intm){  inti;  charchange,......
  • [C++] 小游戏 斗破苍穹 2.10.1 版本 zty出品
    目录前言先赞后看 养成习惯正文后记前言   大家好,今天zty(<-痧蔽)带来的是斗破苍穹2.10.1版本本版本为战斗更新加入了四个新怪物和四个新装备并且修复了许多bug,希望大家喜欢,今天的赞不多要要50个就够了先赞后看 养成习惯正文#include<stdio.h>#inc......
  • pycharm安装教程
    pycharm安装教程pycharm安装教程启动PyCharm安装自定义安装路径安装选项选择开始菜单目录安装中安装完成启动PyCharmPyCharm设置中文重启IDE应用IDE配置PyCharm新建项目项目命名目录自定义环境选择Python解释器创建完成进入PyCharm新建临时文件选择类型键入代码运行代......
  • 【QT入门】 Qt自定义控件与样式设计之QCheckBox qss实现按钮开关
    往期回顾【QT入门】Qt自定义控件与样式设计之QPushButton常用qss-CSDN博客【QT入门】Qt自定义控件与样式设计之QPushButton实现鼠标悬浮按钮弹出对话框-CSDN博客【QT入门】Qt自定义控件与样式设计之QComboBox样式表介绍-CSDN博客 【QT入门】Qt自定义控件与样式设计之......
  • 3 突破编程_前端_SVG(rect 矩形)
    1rect元素的基本属性和用法在SVG中,<rect>元素用于创建矩形。<rect>元素有一些基本的属性,可以用来定义矩形的形状、位置、颜色等。以下是这些属性的详细解释:x和y:这两个属性定义矩形左上角的位置。x是矩形左上角到SVG画布左边缘的水平距离,y是矩形左上角到SVG画......
  • 运维系列(亲测有效):利用 PHPStuday 2018 集成化工具对Apache进行站点域名管理
    利用PHPStuday2018集成化工具对Apache进行站点域名管理利用PHPStuday2018集成化工具对Apache进行站点域名管理利用PHPStuday2018集成化工具对Apache进行站点域名管理第一步:第二步:第三步:第四步:第五步:利用PHPStuday2018集成化工具对Apache进行站点域......