docker安装victoriametrics

docker安装victoriametrics

  • 1、单机版安装
  • 2、victoriametrics增删改查
    • 2.1 、插入数据
      • 2.1.1 组装数据插入victoriametrics(java代码插入)
      • 2.1.2 Prometheus数据插入victoriametrics
      • 2.1.3 官网push到victoriametrics写法
    • 2.2 、查询
      • 2.2.1 、Instant query(即时查询)
      • 2.2.2 、Range query(范围查询)
      • 2.2.3 、在vmui查询
      • 2.2.4、victoriametrics返回的resultType
    • 2.3、什么是series?series个数计算
    • 2.4、MetricsQL
      • 2.4.1、过滤
      • 2.4.2、查询指定时间内数据其他写法
      • 2.4.3、聚合函数
    • 2.5、修改

1、单机版安装

拉取镜像

docker pull victoriametrics/victoria-metrics

创建容器

docker run  --restart=always  -d -v /data/victoria-metrics-data:/victoria-metrics-data \
-p 8428:8428 --name=vm victoriametrics/victoria-metrics

然后可以访问:

http://ip:8428
#我的本机访问地址
http://192.168.52.128:8428

2、victoriametrics增删改查

2.1 、插入数据

2.1.1 组装数据插入victoriametrics(java代码插入)

一般,我们都会自己写代码采集数据,然后组装手动推送到victoriametrics,
这种方式也是用的最多的。

注意下面的参数和url都要加上单引号,如果不加,在服务器执行curl时插入不成功也不报错。

#指定时间戳写法(用的最多的写法)
curl -d 'cpu_usage_vm{name="bar",age="女"} 559.6 1733321837' -X POST 'http://localhost:8428/api/v1/import/prometheus'
#默认当前时间戳插入
curl -d 'cpu_usage_vm{name="bar",age="女"} 5.6' -X POST 'http://localhost:8428/api/v1/import/prometheus'

java代码实现插入

引入pom

        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>4.6.5</version>
        </dependency>
import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse;
import cn.hutool.http.Method;
public class Test{
    public static void main(String[] args) throws Exception {
        for (int i = 1; i < 100; i++) {
            String body = "cpu_usage_vm{name=\"bar\",age=\"女\"} " + (i + 0.6) + " " + System.currentTimeMillis() / 1000;
            HttpRequest request = HttpRequest.get("http://192.168.52.128:8428/api/v1/import/prometheus");
            request.body(body);
            System.out.println(body);
            request.setMethod(Method.POST);
            HttpResponse execute = request.execute();
            System.out.println(execute.body());
            //每隔一秒插入一条数据
            Thread.sleep(1000);
        }
    }
  }

2.1.2 Prometheus数据插入victoriametrics

victoriametrics可以用作 Prometheus 的长期存储,也就是Prometheus 拉取的数据,存入到victoriametrics里。
Prometheus 配置如下:
remote_write:
  - url: http://<victoriametrics-addr>:8428/api/v1/write

2.1.3 官网push到victoriametrics写法

#对应官网push数据的写法
curl -d '{"metric":{"__name__":"foo","job":"node_exporter"},"values":[0,1,2],"timestamps":[1733298568000,1733298569000,1733298570000]}' -X POST 'http://localhost:8428/api/v1/import'

2.2 、查询

2.2.1 、Instant query(即时查询)

参考官网给出的即使查询问:点击进入官网

语法:

GET | POST /api/v1/query?query=...&time=...&step=...&timeout=...

eg:

curl  'http://192.168.52.128:8428/prometheus/api/v1/query?query=cpu_usage_vmc&step=1m'

参数解释

1、query --MetricsQL expression.
2、time --以秒精度的时间戳查询。缺省当前时间戳。时间参数可以以多种允许的格式指定,具体去官网查下。
3、timeout --查询超时时间。例如,timeout=5s。5秒查不到数据,就超时取消查询。
4、step --数据点之间的间隔,必须从范围查询返回。step缺省默认5m。
查询在start、start+step、start+2*step、结束时间戳处执行。
step不好理解,下面举例讲解:
  4.1、插入以下数据:
cpu_usage_vmc{name="zg",age="男"} 99 1733405421
cpu_usage_vmc{name="zg",age="男"} 31 1733405361
cpu_usage_vmc{name="zg",age="男"} 66 1733405301
cpu_usage_vmc{name="zg",age="男"} 69 1733405241
cpu_usage_vmc{name="zg",age="男"} 49 1733405181
cpu_usage_vmc{name="zg",age="男"} 2 1733405121
cpu_usage_vmc{name="zg",age="男"} 44 1733405061
cpu_usage_vmc{name="zg",age="男"} 22 1733405001
cpu_usage_vmc{name="zg",age="男"} 29 1733404941
  4.2、查询语句
curl 'http://192.168.52.128:8428/api/v1/query?query=cpu_usage_vmc&time=1733404941'
value查出是29,因为time时间戳刚好能匹配上。
如果时间戳time=1733404940,此时查询出来的就是null,因为实际查询范围是1733404940和1733404940-5*60直间,自然没值。
如果时间戳time=1733405060,value查出是22,因为实际查询是1733405060和1733405060-5*60,这个查询范围有多个值,但是会取和time=1733405060最近的一个值,这个最近的值是向下取的,不是向上取,也就是22。
别忘记即时查询只返回series的单个数据样本。

即时查询可以返回多个series,但每个series总是只有一个数据样本。即时查询用于以下场景:

1、获取最后记录的值;
2、汇总函数,如count_over_time;
3、用于警报和记录规则评估;
4、在Grafana中绘制统计数据或表格面板。

2.2.2 、Range query(范围查询)

语法:

GET | POST /api/v1/query_range?query=...&start=...&end=...&step=...&timeout=... 

eg:
注意,范围查询,尽量加上开始的时间戳。

curl 'http://192.168.52.128:8428/api/v1/query_range?query=cpu_usage_vm&step=1m&start=1733404940'

参数解释

1、start --开始时间戳。尽量指定个范围。
2、end --结束时间戳。如果未设置结束时间,则结束时间会自动设置为当前时间。
3、step --数据点之间的间隔,必须从范围查询返回。step缺省默认5m。
查询在start、start+step、start+2*step、结束时间戳处执行。
step不好理解,下面举例讲解:
  3.1、插入以下数据:
  cpu_usage_vmd{name="zg",age="男"} 82 1733406112
  cpu_usage_vmd{name="zg",age="男"} 77 1733406052
  cpu_usage_vmd{name="zg",age="男"} 27 1733405992
  cpu_usage_vmd{name="zg",age="男"} 22 1733405932
  cpu_usage_vmd{name="zg",age="男"} 18 1733405872
  cpu_usage_vmd{name="zg",age="男"} 78 1733405812
  cpu_usage_vmd{name="zg",age="男"} 60 1733405752
curl 'http://192.168.52.128:8428/api/v1/query_range?query=cpu_usage_vmd&start=1733406052'
如果时间戳start=1733405932,此时会查2条数据,因为会先取时间戳最近值,最近值是向下取,
此时查询条件是,1733406052-5*601733406052,值为22。 
然后在查17334060521733406052+5*60的值,切记此时取1733406052+5*60最近值,值为82

2.2.3 、在vmui查询

#访问地址:
http://192.168.52.128:8428/vmui

直接在浏览器输入指标名称,即可查询。

cpu_usage_vm
或者
cpu_usage_vm{}

vmui查询页面解释:

#我的本机访问地址
http://192.168.52.128:8428/vmui
右上角可以设置step的值,单位m分钟,单位s秒。
还可以设置查询时间范围。LAST 1 HOUR 表示最近一小时的数据。
Gtaph可以显示多天数据,Json只返回一条数据,本身即时查询也就只返回series的一个样本值。

在这里插入图片描述

2.2.4、victoriametrics返回的resultType

VictoriaMetrics是一个高性能的时序数据库和监控系统,它支持多种查询语言,比如PromQL。
当你向VictoriaMetrics发送查询时,它会返回结果,这个结果的类型取决于查询的类型和返回数据的情况。
以下是一些可能的resultType值:
1、matrix:表示返回的是一系列包含时间戳和值的数据点的集合。
2、vector:表示返回的是一系列包含特定时间戳的单个数据点。
3、scalar:表示返回的是一个单一的数字,通常是一个简单的计数或总和。
4、string:表示返回的是单个字符串,通常用于返回错误信息或警告。

2.3、什么是series?series个数计算

相同measurement、相同tag的数据属于一个series集合。
series就是不同tag列,进行排列组合。比如一个表中有两个tag字段A和B。 
A字段有有3种值,B字段有4种值,则series个数 = 3*4=12个。

2.4、MetricsQL

VictoriaMetrics 提供了一种用于执行读取查询的特殊查询语言 - MetricsQL。
它是一种类似 PromQL 的查询语言,具有一组强大的函数和特性,专门用于处理时间序列数据。
MetricsQLPromQL 向后兼容,因此它共享大多数查询概念。

2.4.1、过滤

在 instant query 和 range query 部分中,我们已经使用 MetricsQL 来获取指标cpu_usage_vm的数据。
它就像在查询中编写指标名称一样简单:

eg(适用instant query 和 range query):

#不带过滤查询1
curl  'http://192.168.52.128:8428/prometheus/api/v1/query?query=cpu_usage_vm&step=1m'
#不带过滤查询2
curl  'http://192.168.52.128:8428/prometheus/api/v1/query?query=cpu_usage_vm{}&step=1m'
#查询name=bar的数据
curl  'http://192.168.52.128:8428/prometheus/api/v1/query?query=cpu_usage_vm{name="bar"}&step=1m'

更多过滤条件查询参考官网,点击进入:

2.4.2、查询指定时间内数据其他写法

#100m表示step的值
cpu_usage_vmd{}[100m]

2.4.3、聚合函数

很简单,官网可以查看下。

2.5、修改

参考官网:
点击进入

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/929517.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

用ZipOutputStream生成的zip压缩包无法用WinRAR软件进行解压

1、问题 用WinRAR软件无法解压用ZipOutputStream生成的zip压缩包&#xff0c;而用360压缩就可以解压 2、原因 流没有正常关闭 3、解决办法 可以使用try-with-resources来自动关闭ZipOutputStream 例&#xff1a; public void compressedFile(String businessId, HttpServle…

WEB_星河飞雪_Windows(全)

Windows基础 这一节就主要将一些Windows的一些基础命令。 文件系统及其简述管理机制 首先linux操作系统有一个核心的概念就是——在linux中一切都是文件&#xff0c;几乎很多重要的东西都挂在根目录下&#xff08;“/”&#xff09;,它采用的是fhs目录结构&#xff08; File…

人工智能中的深度学习:原理与实践

什么是深度学习&#xff1f; 深度学习&#xff08;Deep Learning&#xff09;是机器学习的一个分支&#xff0c;旨在通过模拟人脑的神经网络结构来解决复杂的任务。深度学习通过多层神经网络&#xff0c;自动从数据中学习特征&#xff0c;避免了传统机器学习中手动特征工程的繁…

vite5+vue3+Ts5 开源图片预览器上线

images-viewer-vue3&#xff1a;一款Vue3的轻量级图像查看器&#xff0c;它基于Flip动画技术&#xff0c;支持PC和h5移动网页预览照片&#xff0c;如果它是Vue3开发的产品。 npm开源地址:https://www.npmjs.com/package/images-viewer-vue3?activeTabreadme Flip 动画 < …

Java 初学者的第一个 SpringBoot 系统

Java 初学者的第一个 SpringBoot 系统 对编程初学者而言&#xff0c;都存在一个 “第一个系统” 的问题。有些学习者找不到自己的 “第一个系统”&#xff0c;他们即使再努力也没有办法了解完整的系统&#xff0c;即使他们把教科书里的所有程序都跑通了。但是&#xff0c;面对…

传输层TCP_三次握手四次挥手的过程

三次握手四次挥手 三次握手 三次握手

光伏气象仿真系统的重要性

聊气象仿真系统的重要性之前先给大家推荐绿虫的仿真系统&#xff0c;绿虫可以获取到精准的气象数据&#xff0c;对接了国内气象站数据库&#xff0c;可以智能的匹配距离最近的&#xff0c;获取到最新最准的数据&#xff0c;下面给大家讲讲重要性。 一、提升发电效率方面&#x…

高阶数据结构--并查集--Java

一、并查集原理 在一些应用问题中&#xff0c;需要将n个不同的元素划分成一些不相交的集合。开始时&#xff0c;每个元素自成一个单元素集 合&#xff0c;然后按一定的规律将归于同一组元素的集合合并。在此过程中要反复用到查询某一个元素归属于那个集 合的运算。适合于描述这…

SpringMVC ——(1)

1.SpringMVC请求流程 1.1 SpringMVC请求处理流程分析 Spring MVC框架也是⼀个基于请求驱动的Web框架&#xff0c;并且使⽤了前端控制器模式&#xff08;是⽤来提供⼀个集中的请求处理机制&#xff0c;所有的请求都将由⼀个单⼀的处理程序处理来进⾏设计&#xff0c;再根据请求…

Kube-Prometheus-Stack安装时初始化导入自定义Grafana dashboards

获取Grafana dashboards的JSON文件 这里是获取已经编辑好的Grafana dashboards的JSON文件&#xff1b;以便内置到Kube-Prometheus-Stack的helm charts的安装zip文件中。 编辑自定义dashboards JSON文件 获取dashboards JSON文件模板 其实Kube-Prometheus-Stack内部本身已经内…

手机租赁系统开发全攻略 创新服务助力企业智能转型

内容概要 在当今数字化飞速发展的时代&#xff0c;“手机租赁系统开发”正逐渐成为企业智能转型的必然选择。这一过程并不简单&#xff0c;但关键流程的解析将帮助企业理清思路。首先&#xff0c;了解需求和目标是基础&#xff0c;之后制定详细计划和流程图&#xff0c;让整件…

中安证件OCR识别技术助力鸿蒙生态:智能化证件识别新体验

在数字化和智能化的浪潮中&#xff0c;伴随国产化战略的深入推进&#xff0c;国产操作系统和软件生态的建设逐渐走向成熟。鸿蒙操作系统&#xff08;HarmonyOS Next&#xff09;作为华为推出的重要操作系统&#xff0c;凭借其开放、灵活和高效的特点&#xff0c;正在加速在多个…

Python_Flask03

这篇文章主要介绍的是数据库的增删改查操作&#xff0c;无多余好说的。 from flask import Flask from flask_sqlalchemy import SQLAlchemy from sqlalchemy import text from flask_migrate import Migrateapp Flask(__name__)# 本地基础信息的主机名 HOSTNAME "127.0…

Flink问题总结

目录 1、Flink 的四大特征(基石) 2、Flink 中都有哪些 Source,哪些 Sink,哪些算子(方法) 3、什么是侧道输出流,有什么用途 4、Flink 中两个流如何合并为一个流 5、Flink 中两个流如何 join 6、Flink 中都有哪些 window,什么是滑动,滚动窗口 7、flink 中都有哪些…

Q、K、V怎样学习到不同的特性;注意力机制和自注意力区别

目录 Q、K、V怎样学习到不同的特性 注意力机制和自注意力区别 Q、K、V怎样学习到不同的特性 Q = XW_Q:Query向量表示“我想要找什么”,通过输入向量X与权重矩阵W_Q的乘积得到。K = XW_K:Key向量表示“我有什么”,通过输入向量X与权重矩阵W_K的乘积得到。V = XW_V:Value向…

MySQL 入门大全:常用函数

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/literature?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;…

Python酷库之旅-第三方库Pandas(259)

目录 一、用法精讲 1226、pandas.tseries.offsets.Week.name属性 1226-1、语法 1226-2、参数 1226-3、功能 1226-4、返回值 1226-5、说明 1226-6、用法 1226-6-1、数据准备 1226-6-2、代码示例 1226-6-3、结果输出 1227、pandas.tseries.offsets.Week.rule_code属性…

《操作系统 - 清华大学》6 -5:局部页面置换算法:改进的时钟页面置换算法

文章目录 1. 改进的时钟置换算法的工作原理2. 改进的时钟置换算法示例 1. 改进的时钟置换算法的工作原理 Clock 算法使用页表项中很重要的 access bit 来表明这个页的访问信息&#xff0c;但需要注意&#xff0c;读和写都是访问&#xff0c;并没有区分到底是读还是写&#xff0…

【六足机器人】03步态算法

温馨提示&#xff1a;此部分内容需要较强的数学能力&#xff0c;包括但不限于矩阵运算、坐标变换、数学几何。 一、数学知识 1.1 正逆运动学&#xff08;几何法&#xff09; 逆运动学解算函数 // 逆运动学-->计算出三个角度 void inverse_caculate(double x, double y, …

【WRF后处理】WRF时区(UTC)需转化为北京时间(CST)!!!

目录 WRF运行时间标准注意事项-本地时区问题 输入数据&#xff1a;ERA5时间标准ERA5数据和WRF模型需要转换为北京时间&#xff01;&#xff01;&#xff01;北京时间&#xff08;CST&#xff09;与协调世界时&#xff08;UTC&#xff09;的关系转换方法 参考 WRF运行时间标准 …