当前位置: 首页 > news >正文

C#使用时序数据库 InfluxDB

一、安装

https://docs.influxdata.com/influxdb/v2/install/?t=Windows

image.png

解压后使用cmd运行

image.png
访问 localhost:8086

配置

第一次登入会初始化
image.png

配置登入账号

image.png

保存TOKEN

这个TOKEN用于后期代码链接访问数据库,忘记了只能删除重新生成

image.png
点击QUCK START进入管理页面
image.png
image.png

默认配置文件

windows:在用户文件夹下 C:\Users\Administrator.influxdbv2
linux: /etc/influxdb/influxdb.conf

二、C#调用

Load Data>Sources 选择c# 查看配置示例

image.png

创建一个控制台程序

安装InfluxDB客户端
image.png

创建链接
using System.Linq;
using System.Threading.Tasks;
using InfluxDB.Client;
using InfluxDB.Client.Api.Domain;
using InfluxDB.Client.Core;
using InfluxDB.Client.Writes;namespace Examples
{public class Examples{public static async Task Main(string[] args){// You can generate an API token from the "API Tokens Tab" in the UIvar token = Environment.GetEnvironmentVariable("INFLUX_TOKEN")!;const string bucket = "Test";const string org = "CC";using var client = new InfluxDBClient("http://127.0.0.1:8086", token);}}
}
写入数据

image.png

//方式一、使用WriteRecord
const string data = "mem,host=host1 used_percent=23.43234543";
using (var writeApi = client.GetWriteApi())
{writeApi.WriteRecord(data,bucket, org, WritePrecision.Ns );
}//方式二、使用WritePoint
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(point,bucket, org);
}//方式三、使用实体类
var mem = new Mem { Host = "host1", UsedPercent = 23.43234543, Time = DateTime.UtcNow };using (var writeApi = client.GetWriteApi())
{writeApi.WriteMeasurement( mem,bucket, org, WritePrecision.Ns);
}[Measurement("mem")]
private class Mem
{[Column("host", IsTag = true)] public string Host { get; set; }[Column("used_percent")] public double? UsedPercent { get; set; }[Column(IsTimestamp = true)] public DateTime Time { get; set; }
}
最终测试代码
// See https://aka.ms/new-console-template for more information
using InfluxDB.Client;
using InfluxDB.Client.Api.Domain;
using InfluxDB.Client.Writes;Console.WriteLine("Hello, World!");
Environment.SetEnvironmentVariable("INFLUX_TOKEN", "O9I2Kpeg...kLPSrQLWhTiJCQPWy6HJFjN9hK33UoLnG34vfFdqZ5KmoDLS-kkw==");var token = Environment.GetEnvironmentVariable("INFLUX_TOKEN")!;
const string bucket = "Test";
const string org = "CC";using (var client = new InfluxDBClient("http://localhost", token))
{using (var writeApi = client.GetWriteApi()){while (true){var randon = new Random();var point = PointData.Measurement("mem").Tag("host", "host1").Field("used_percent", randon.Next(10, 100)) //可以添加多个字段.Field("memory_percent",randon.Next(0,10)).Timestamp(DateTime.UtcNow, WritePrecision.Ns);writeApi.WritePoint(point, bucket, org);Thread.Sleep(2000);}}
}
在管理页面查看数据

image.png
image.png

http://www.lryc.cn/news/229567.html

相关文章:

  • 正则表达式:验证中英文长度限制16个字符(8个中文),支持中文字母数字或者下划线
  • kafka和rocketMq的区别
  • Git推送本地代码到远程仓库
  • OncePerRequestFilter详解
  • Accelerate 0.24.0文档 二:DeepSpeed集成
  • 【系统架构设计】架构核心知识: 2.3 UML图
  • 2023年09月青少年软件编程(C语言)等级考试试卷(三级)
  • SQLite3 数据库学习(一):数据库和 SQLite 基础
  • 上机4KNN实验4
  • 产品经理如何保持核心竞争力?学会这些方法
  • 终知人生苦短,何必自我为难
  • C++阶段复习‘‘‘‘总结?【4w字。。。】
  • 嵌入式行业算青春饭吗?
  • 【C++】非类型模板参数 | array容器 | 模板特化 | 模板为什么不能分离编译
  • 解决 Django 开发中的环境配置问题:Windows 系统下的实战指南20231113
  • C语言仅凭自学能到什么高度?
  • Python爬虫过程中DNS解析错误解决策略
  • vue devtools 调试工具安装配置
  • kube-bench-CIS基准的自动化扫描工具学习
  • springboot(ssm 拍卖行系统 在线拍卖平台 Java(codeLW)
  • go语言rpc初体验
  • 嵌入式LINUX——环境搭建 windows、虚拟机、开发板 互ping
  • 评论:AlexNet和CaffeNet有何区别?
  • 什么是 IT 资产管理(ITAM),以及它如何简化业务
  • git快速上传代码
  • stable diffusion comfyui的api使用教程
  • Swift中的strong, weak, unowned
  • Linux命令——ssh
  • 在qml中,text如何左对齐,对齐方式有哪些?如何换行?
  • 【Rust 易学教程】第 1 天:Rust 基础,基本语法