使用 VictoriaMetrics

在配置服务中注册连接

在使用 VictoriaMetrics 前,请先在配置服务中注册连接参数,可参考下图:

xx

上图注册了一个连接,名称是 vm-conn




创建客户端实例

根据“连接名称”创建客户端实例 (示例代码使用了上图中的连接名称)

VictoriaMetricsClient client = VictoriaMetricsClient.Create("vm-conn");

对于SaaS场景,可以采用下面的方式创建VictoriaMetricsClient实例

VictoriaMetricsClient client = VictoriaMetricsClient.CreateTenant("tenantId");




写入数据到 VictoriaMetrics

public static async Task Test_Write()
{
	// 生成要写入的测试数据
	List<RequestCount> list = CreateTestData();

	// 创建VictoriaMetrics的客户端实例,Create方法的参数是一个“连接名称”,它已在配置服务中注册为数据库连接
	VictoriaMetricsClient client = VictoriaMetricsClient.Create("vm-conn");

	// 将测试数据写入VictoriaMetrics
	await client.GetInsertRequest(list).SendAsync();
}

示例代码中数据结构的定义

public sealed class RequestCount
{
	[TagField]
	public string AppName { get; set; }
	[TagField]
	public string HostName { get; set; }

	[ValueField]
	public int Count { get; set; }

	[ValueField]
	public int Error { get; set; }

	[ValueField]
	public int Slow { get; set; }

	[ValueField]
	public int AvgTime { get; set; }

	[TimeField]
	public DateTime CreateTime { get; set; }
}




从 VictoriaMetrics 中查询数据

public static async Task Test_Query()
{
	// VictoriaMetrics 使用的 PromQL 查询
	string query = "RequestCount:Count";
	// 3个查询过滤参数
	DateTime start = DateTime.Now.AddHours(-3);
	DateTime end = DateTime.Now;
    int step = 0;

	// 创建VictoriaMetrics的客户端实例,Create方法的参数是一个“连接名称”,它已在配置服务中注册为数据库连接
	VictoriaMetricsClient client = VictoriaMetricsClient.Create("vm-conn");
	
	// 执行查询,此时返回的结果是JSON格式
	string json = await client.GetQueryRequest(query, start, end, step).GetResultAsync();

	// 将JSON数据转成 DataTable
	DataTable table = client.JsonToDataTable(json);

	Console.WriteLine(table.ToJson(JsonStyle.Indented));
}

说明:

  • VictoriaMetrics的返回结果只有一个数值列
  • JSON转DataTable时,会固定生成 XTime, XValue 这二个列,表示时间和数值




在查询服务中使用 VictoriaMetrics

在查询服务中创建服务接口可参考下图:

xx

说明:

  • 数据源:一定要选择 VictoriaMetrics,连接也要匹配
  • 查询脚本:就是 PromQL 查询
  • StartTime,EndTime,Step 这3个参数是必须的,用于过滤数据
  • 由于PromQL并不支持参数化查询,所以 @db 只是一个占位标记,在执行时会被替换




数据查询服务支持以下返回格式:

  • json (默认值)
  • xml
  • xml2
  • csv
  • excel
  • raw




查询演示

xx

xx

xx