VictoriaMetrics快速入门


VictoriaMetrics是快速,经济高效且可扩展的时间序列数据库。它可以用作Prometheus的长期远程存储。

VictoriaMetrics集群包含以下服务:

  • vmstorage -存储数据
  • vminsert- vmstorage使用一致的哈希将摄取的数据代理为分片
  • vmselect -使用来自以下位置的数据执行传入查询 vmstorage
图片发布
图片发布

Multitenancy

VictoriaMetrics集群支持多个隔离的租户(又名命名空间)。租户用accountID或标识accountID:projectID,将其放置在请求url中。

  • 每个accountIDprojectID由范围内的任意32位整数标识[0 .. 2^32)。如果projectID缺少,则会自动分配给0。预计有关租户的其他信息(例如身份验证令牌,租户名称,限制,记帐等)将存储在单独的关系数据库中。该数据库必须由位于VictoriaMetrics群集前面的单独服务。
  • 将第一个数据点写入给定租户时,将自动创建租户。
  • 所有租户的数据平均分布在可用vmstorage节点之间。vmstorage当不同的租户具有不同的数据量和不同的查询负载时,这保证了节点之间的均匀负载。
  • VictoriaMetrics不支持在单个请求中查询多个租户。

集群部署

集群采用两个节点部署,并且保证每个服务部署两个。

启动vmstorage服务

./vmstorage-prod -memory.allowedPercent 60 -httpListenAddr :8482 -retentionPeriod 120 -search.maxTagKeys 100000 -search.maxTagValues 100000 -search.maxUniqueTimeseries 300000 -smallMergeConcurrency 1 -snapshotAuthKey helei123456 -storageDataPath /opt/data/vmstorage -vminsertAddr :8400 -vmselectAddr :8401

  • -memory.allowedPercent:缓存占用内存百分比
  • -httpListenAddr:vmstorage服务端口
  • -retentionPeriod:保存时长,日为单位
  • -search.maxTagKeys:查询返回tag key的最大数量
  • -search.maxTagValues: 查询返回tag value的最大数量
  • -search.maxUniqueTimeseries:每次搜索可以扫描最大唯一时间序列大最大数量
  • -smallMergeConcurrency:使用cpu的核数
  • -snapshotAuthKey:快照接口认证key
  • -storageDataPath:数据存储路径
  • -vminsertAddr:insert服务监听地址
  • -vmselectAddr:select服务监听地址
启动vminsert服务

./vminsert-prod -replicationFactor 2 -storageNode 10.30.9.52:8400 -memory.allowedPercent 10 -insert.maxQueueDuration 1m -maxConcurrentInserts 8 -maxInsertRequestSize 33554432 -maxLabelsPerTimeseries 30

  • -replicationFactor:副本个数
  • -storageNode:存储节点地址,可以使用逗号分隔指定多个地址或使用多个-storageNode参数指定
  • -memory.allowedPercent:缓存占用内存百分比
  • -insert.maxQueueDuration:插入请求在队列中等待的最大时间
  • -maxConcurrentInserts:并发插入的最大数目
  • -maxInsertRequestSize:单个Prometheus remote_write API请求的最大字节数
  • -maxLabelsPerTimeseries:每个时间序列可接受的最大标签数
启动 vmselect服务

./vmselect-prod -cacheDataPath /opt/app/vmselect-cache/ -dedup.minScrapeInterval=0 -httpListenAddr :8481 -memory.allowedPercent 10 -search.maxConcurrentRequests 4 -search.maxPointsPerTimeseries 30000 -search.maxQueryDuration 30s -search.maxQueryLen 16384 -search.maxQueueDuration 10s -selectNode 10.30.9.52:8481 -storageNode 10.30.9.52:8401

  • -cacheDataPath:cache数据目录
  • -dedup.minScrapeInterval:如果superflouos样本的位置比这个时间间隔更近,则从时间序列中删除它们。0表示禁用
  • -httpListenAddr:http服务监听地址
  • -memory.allowedPercent:缓存占用内存百分比
  • -search.maxConcurrentRequests:并发
  • -search.maxPointsPerTimeseries:从搜索中返回的每个timeseries的最大值
  • -search.maxQueryDuration:搜索查询执行的最大持续时间
  • -search.maxQueryLen:最大搜索查询长度
  • -search.maxQueueDuration:搜索时请求等待执行的最大时间,达到maxConcurrentRequests时限制。
  • -storageNode:存储节点地址
  • -selectNode:select节点地址

配置使用

  • 数据提取的网址:http://<vminsert>:8480/insert/<accountID>/<suffix>,其中:

    • <accountID>是一个任意的32位整数,用于标识数据摄取的名称空间(又名租户)。可以将其设置为accountID:projectID,其中projectID也是任意的32位整数。如果projectID未设置,则等于0
    • <suffix> 可能具有以下值:
      • prometheusprometheus/api/v1/write-用于使用[Prometheus远程写入API]插入数据
      • influx/writeinflux/api/v2/write-用于使用[Influx线路协议]插入数据。
      • opentsdb/api/put-用于接受[OpenTSDB HTTP / api / put请求]。默认情况下,此处理程序处于禁用状态。它通过-opentsdbHTTPListenAddr命令行标志设置在不同的TCP地址上。有关详细信息,请参见[这些文档]。
      • prometheus/api/v1/import-用于导入通过api/v1/exporton 获得的数据vmselect(请参见下文)。
      • prometheus/api/v1/import/csv-用于导入任意CSV数据。有关详细信息,请参见[这些文档]。
      • prometheus/api/v1/import/prometheus-用于以Prometheus展示格式导入数据。有关详细信息,请参见[这些文档]。
  • 查询网址:http://<vmselect>:8481/select/<accountID>/prometheus/<suffix>,其中:

    • <accountID> 是标识查询(又名租户)的任意数字标识数据名称空间
    • <suffix>可能具有以下值:
      • api/v1/query-执行[PromQL即时查询]。
      • api/v1/query_range-执行[PromQL范围查询]。
      • api/v1/series-执行[系列查询]。
      • api/v1/labels-返回[标签名称列表]。
      • `api/v1/label/values- <label_name>根据[API]返回给定值。
      • federate-返回[联合指标]。
      • api/v1/export-导出原始数据。有关详细信息,请参见[本文]。
      • api/v1/status/tsdb-用于时间序列统计。有关详细信息,请参见[这些文档]。
      • api/v1/status/active_queries-用于当前执行的活动查询。注意,每个vmselect维护一个独立的活动查询列表,该列表在响应中返回。
  • 删除时间序列的网址:http://<vmselect>:8481/delete/<accountID>/prometheus/api/v1/admin/tsdb/delete_series?match[]=<timeseries_selector_for_delete>。请注意,delete_series仅在特殊情况下才应使用处理程序,例如删除意外摄取的错误时间序列。不应定期使用它,因为它会带来非零的开销。

  • vmstorage节点在8482端口上提供以下HTTP端点:

    • /snapshot/create-创建[即时快照],可用于后台备份。在/snapshots文件夹中创建快照,其中<storageDataPath>/snapshots是相应的命令行标志值。
    • /snapshot/list -列出可用的快照。
    • /snapshot/delete?snapshot= -删除给定的快照。
    • /snapshot/delete_all -删除所有快照。

    可以在每个vmstorage节点上独立创建快照。无需在vmstorage节点之间同步快照的创建。

集群大小调整和可伸缩性

群集性能和容量可通过添加新节点来扩展。

  • vminsert并且vmselect节点是无状态的,可以随时添加/删除。不要忘记在http负载均衡器上更新这些节点的列表。添加更多vminsert节点可扩展数据摄取率。请参阅 有关摄取速率可伸缩性的[评论]。添加更多vmselect节点可扩展选择查询速率。
  • vmstorage节点拥有提取的数据,因此无法删除它们而不会丢失数据。添加更多vmstorage节点可扩展群集容量。

添加vmstorage节点的步骤:

  1. 以与集群中现有节点vmstorage相同的方式启动新节点-retentionPeriod
  2. vmselect使用-storageNode包含的新arg 逐步重新启动所有节点:8401
  3. vminsert使用-storageNode包含的新arg 逐步重新启动所有节点:8400

grafana展示

导入dashboard,dashboardID:1117610229

Insert:11040

Select:11039

Storage:11038

参考资料

性能分析对比:https://medium.com/@valyala/measuring-vertical-scalability-for-time-series-databases-in-google-cloud-92550d78d8ae

官网:https://github.com/VictoriaMetrics/VictoriaMetrics/blob/master/README.md#deduplication

快速搭建Victoriametrics单机版,您可以按照以下步骤操作: 1. 下载并安装Victoriametrics:您可以从Victoriametrics的官方网站(https://victoriametrics.com/)下载最新版本的软件包,选择适合您操作系统的版本,并将其下载到您的计算机上。 2. 解压软件包:使用解压工具,将下载的软件包解压到您想要安装Victoriametrics的目录中。 3. 修改配置文件:在解压后的目录中,找到victoria-metrics-prod.ini配置文件。您可以使用文本编辑器打开此文件,并根据您的需求和环境进行必要的配置更改,例如更改httpListenAddr配置项以指定Victoriametrics的监听地址和端口。 4. 运行Victoriametrics:打开终端或命令提示符,导航到Victoriametrics的安装目录,并执行启动命令,如`./victoria-metrics-prod`(Linux/macOS)或`.\victoria-metrics-prod.exe`(Windows)。 5. 验证安装:打开您的Web浏览器,输入您在配置文件中设置的httpListenAddr地址和端口,例如:http://localhost:8428。如果您能够访问Victoriametrics的Web界面,并且没有错误信息显示,则说明安装成功。 6. 数据录入和查询:通过Prometheus或其他支持VictoriaMetrics输入格式的工具,将监控数据发送到Victoriametrics,然后可以使用PromQL查询语言进行数据查询和分析。 请注意,以上步骤仅适用于将Victoriametrics部署在单机环境中。如果您需要更高的可扩展性和可用性,可以考虑将Victoriametrics部署在分布式环境中,以满足更大规模的需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值