sh poc:InfluxDB线路协议到OpenTSDB JSON协议
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sh poc:InfluxDB线路协议到OpenTSDB JSON协议相关的知识,希望对你有一定的参考价值。
#!/bin/bash -eu
# [key] [fields] [timestamp]
# temperature,machine=unit143,type=assembly internal=22,external=130 1434055562005000035
split() { tr "$2" "\n" <<< $1; }
get() { cut -d '=' -f$2 <<< $1; }
point() {
local timestamp=$1
local metric=$2
local value=$3
local tags=$4
echo '{"metric":"'$metric'","timestamp":'$timestamp',"value":'$value',"tags":'$tags'}'
}
get_prefix() {
local key=$1
for t in $(split "$key" ","); do
echo $t; break
done
}
parse_tags() {
local key=$1
local count=0
local c=''
echo '{'
for t in $(split "$key" ","); do
if [[ $count -eq 0 ]]; then
PREFIX=$t
else
echo $c'"'$(get $t 1)'":"'$(get $t 2)'"'; c=,
fi
count=$(($count + 1))
done
echo '}'
}
main() {
local key=$1
local fields=${2:-""}
local timestamp=${3:-$(date +%s%N)}
[ -z $key ] && echo '{"error": "key required"}' && exit 1
[ -z $fields ] && echo '{"error": "fields required"}' && exit 1
local prefix=$(get_prefix $key)
local tags=$(parse_tags $key | jq -c .)
for f in $(split "$fields" ","); do
point $timestamp $prefix.$(get $f 1) $(get $f 2) $tags
done
}
main $(cat /dev/stdin) | jq -s .
以上是关于sh poc:InfluxDB线路协议到OpenTSDB JSON协议的主要内容,如果未能解决你的问题,请参考以下文章
google 的从 c# 到 java 的协议缓冲区 - 协议消息标签的线路类型无效
tdengine 是不是支持使用线路协议将数据从 influxdb 传输到 tdengine
influxdb-java
influxdb-java
什么是BGP线路?跟普通线路有什么不同?
获取测量的标签值 - influxDB