当前位置: 首页 > 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 UI
      var 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.dtcms.com/a/4031.html

相关文章:

  • WebSocket真实项目总结
  • 12. 机器学习——评价指标
  • 论文导读 | 融合大规模语言模型与知识图谱的推理方法
  • 初始MySQL(五)(自我复制数据,合并查询,外连接,MySQL约束:主键,not null,unique,foreign key)
  • STM32常见符号解释定义(持续更新)
  • HDU 1716:排列2 ← next_permutation()
  • YOLOv8-Seg改进:卷积变体系列篇 | DCNv3可形变卷积基于DCNv2优化 | CVPR2023
  • StackExchange.Redis 高并发下timeout超时问题如何解决?
  • 【万字长文】前端性能优化实践 | 京东云技术团队
  • 【java学习—十三】处理流之四和五:打印流和数据流(4)
  • 平价护眼台灯推荐,好用且性价比高的护眼台灯推荐
  • 聚观早报 |滴滴发布Q3财报;小鹏G9连续销量排行第一
  • VuePress介绍及使用指南
  • 7.jvm对象内存布局
  • MongoDB基础知识~
  • 【Python小程序】浮点矩阵加减法
  • Window安装MongoDB
  • Python 日志记录器logging 百科全书 之 日志回滚
  • 基于python+TensorFlow+Django卷积网络算法+深度学习模型+蔬菜识别系统
  • 【Java】集合(一)单列集合List
  • Windows系统下使用docker部署redis
  • 基于php+thinkphp的网上书店购物商城系统
  • 纯手写 模态框、消息弹框、呼吸灯
  • 文本生成高精准3D模型,北京智源AI研究院等出品—3D-GPT
  • nodejs+vue+python+PHP+微信小程序-安卓- 电影在线订票系统的设计与实现-计算机毕业设计推荐
  • 【Vue 透传Attributes】
  • TensorFlow 的基本概念和使用场景
  • Ubuntu18.04 安装docker教程
  • 离线视频ocr识别
  • Django框架