时间序列数据可以通过任何支持的摄取协议导入:
- Prometheus remote_write API. See these docs for details.
- DataDog
submit metrics
API. See these docs for details.- InfluxDB line protocol. See these docs for details.
- Graphite plaintext protocol. See these docs for details.
- OpenTSDB telnet put protocol. See these docs for details.
- OpenTSDB http
/api/put
protocol. See these docs for details./api/v1/import
for importing data obtained from /api/v1/export. See these docs for details./api/v1/import/native
for importing data obtained from /api/v1/export/native. See these docs for details./api/v1/import/csv
for importing arbitrary CSV data. See these docs for details./api/v1/import/prometheus
for importing data in Prometheus exposition format. See these docs for details.
Flink与vm时序数据库结合(一)_forrest420的专栏-CSDN博客
是flink利用InfluxDB line protocol写入vm中,后续应用性更大。
如何以vm原生格式导入数据
虽然最高效,但是当前未完善。
如何以 JSON 行格式导入数据
导入通过 /api/v1/export 获取的数据的示例:
# Export the data from <source-victoriametrics>:
curl http://source-victoriametrics:8428/api/v1/export -d 'match={__name__!=""}' > exported_data.jsonl
# Import the data to <destination-victoriametrics>:
curl -X POST http://destination-victoriametrics:8428/api/v1/import -T exported_data.jsonl
构造数据:
cat exported_data.jsonl
{"metric":{"__name__":"galaxy_uptime","instance":"m1"},"values":[8],"timestamps":[1634625140000]}
执行导入命令,附带额外的tag,foo=bar,
通过传递 extra_label=name=value 查询参数,可以将额外的标签添加到所有导入的时间序列。 例如, /api/v1/import?extra_label=foo=bar 会将 "foo":"bar" 标签添加到所有导入的时间序列。
curl -X POST http://localhost:8428/api/v1/import\?extra_label\=foo\=bar -T exported_data.jsonl
grafana中的点 ,实际数据只有一个,其他的点是默认补填的。
将 Content-Encoding: gzip HTTP 请求头传递到 /api/v1/import 以导入 gzip 数据:
# Export gzipped data from <source-victoriametrics>:
curl -H 'Accept-Encoding: gzip' http://source-victoriametrics:8428/api/v1/export -d 'match={__name__!=""}' > exported_data.jsonl.gz
# Import gzipped data to <destination-victoriametrics>:
curl -X POST -H 'Content-Encoding: gzip' http://destination-victoriametrics:8428/api/v1/import -T exported_data.jsonl.gz
请注意,可能需要在导入历史数据后刷新响应缓存。 有关详细信息,请参阅这些文档。
VictoriaMetrics 一一解析输入的 JSON 行。 它将整个 JSON 行加载到内存中,然后对其进行解析,然后将解析后的样本保存到持久存储中。 这意味着在导入过长的 JSON 行时,VictoriaMetrics 可能会占用大量 RAM。 解决方案是将太长的 JSON 行拆分为更小的行。 如果将单个时间序列的样本拆分到多个 JSON 行中,则没有问题。
如何导入 CSV 数据
拼接负载,不易阅读。
如何导入 Prometheus exposition 格式的数据
VictoriaMetrics 通过 /api/v1/import/prometheus 路径接受 Prometheus exposition 格式和 OpenMetrics 格式的数据。 例如,以下行将 Prometheus exposition 格式的一行导入到 VictoriaMetrics 中:
curl -d 'foo{bar="baz"} 123' -X POST 'http://localhost:8428/api/v1/import/prometheus'
以下命令可用于验证导入的数据:
curl -G 'http://localhost:8428/api/v1/export' -d 'match={__name__=~"foo"}'
如果 <metric> <value> <timestamp> Prometheus exposition format 行中缺少时间戳,则在数据摄取期间使用当前时间戳。 它可以通过时间戳查询 arg 以毫秒为单位传递 unix 时间戳来覆盖。 例如,/api/v1/import/prometheus?timestamp=1594370496905。
参考
https://docs.victoriametrics.com/Single-server-VictoriaMetrics.html#how-to-import-time-series-data如何导入时序数据到vm中