swiv

源码地址:swiv
安装: npm i -g yahoo-swiv
启动 : swiv --druid druid_broker:8082
image.png

生成配置文件:swiv --druid druid_broker:8082 --print-config --with-comments > pivot.yaml
修改配置文件:

  • $main.sum($value_sum)无法识别value_sum聚合值
# 启动端口
port: 9090
# 集群
clusters:
  # 配合 druid broker 地址
  - name: druid
    type: druid
    host: druid_broker:8082
    # 设置默认超时
    timeout: 60000
    # 自动将source扫描成datacube
    sourceListScan: auto
    sourceListRefreshInterval: 15000
dataCubes:
  # 加载数据源
  - name: hbase-metrics-1
    title: hbase-metrics
    clusterName: druid
    # 对应底层数据源
    source: hbase-metrics-1
    refreshRule:
      rule: query
    # 默认时区
    defaultTimezone: Etc/UTC
    # 默认查询周期
    defaultDuration: P1H
    # 默认指标
    defaultSortMeasure: sum
    introspection: autofill-all
    # 维度
    dimensions:
      - name: __time
        title: Time
        kind: time
        formula: $__time
      - name: cluster_name
        title: Cluster Name
        formula: $cluster_name
      - name: level
        title: Level
        formula: $level
      - name: host_name
        title: Host Name
        formula: $host_name
      - name: server_name
        title: Server Name
        formula: $server_name
      - name: namespace
        title: Namespace
        formula: $namespace
      - name: table_schema
        title: Table Schema
        formula: $table_schema
      - name: table_name
        title: Table Name
        formula: $table_name
      - name: region_name
        title: Region Name
        formula: $region_name
      - name: metric_type
        title: Metric Type
        formula: $metric_type
      - name: metric_name
        title: Metric Name
        formula: $metric_name
    measures:
      - name: count
        title: Count
        formula: $main.sum($count)
      - name: sum
        title: Sum
        formula: $main.sum($value_sum)

turnilo

源码地址:turnilo
安装:npm install -g turnilo
启动: turnilo --druid druid_broker:8082
image.png

生成配置文件:turnilo --druid druid_broker:8082 --print-config --with-comments > pivot.yaml
修改配置文件:

customization:
  timezones:
  - Asia/Hong_Kong
  - Etc/UTC
clusters:
  - name: druid
    url: http://druid_broker:8082
    sourceListScan: auto
    sourceListRefreshOnLoad: false
    sourceListRefreshInterval: 0
    sourceReintrospectOnLoad: false
    sourceReintrospectInterval: 0

dataCubes:
  - name: hbase-metrics
    title: hbase-metrics
    clusterName: druid
    source: hbase-metrics
    timeAttribute: __time

    refreshRule:
      rule: query

    defaultTimezone: Asia/Hong_Kong
    defaultDuration: PT1H
    defaultSortMeasure: value_sum
    defaultSelectedMeasures: ['value_sum']
    introspection: autofill-all
    attributeOverrides:
    dimensions:
      - name: time
        title: Time
        kind: time
        formula: $__time
      - name: cluster_name
        title: Cluster Name
        formula: $cluster_name
      - name: level
        title: Level
        formula: $level
      - name: host_name
        title: Host Name
        formula: $host_name
      - name: server_name
        title: Server Name
        formula: $server_name
      - name: namespace
        title: Namespace
        formula: $namespace
      - name: table_schema
        title: Table Schema
        formula: $table_schema
      - name: table_name
        title: Table Name
        formula: $table_name
      - name: region_name
        title: Region Name
        formula: $region_name
      - name: metric_type
        title: Metric Type
        formula: $metric_type
      - name: metric_name
        title: Metric Name
        formula: $metric_name

    measures:
      - name: value_sum
        title: Value Sum
        formula: $main.sum($value_sum)
        format: 0,0.0 a
      - name: count
        title: Count
        formula: $main.sum($count)
        format: 0,0.0 a

发布

操作步骤:

  • 目标服务器上安装node,选择版本v16.14.0
  • 配置环境变量
    • export NODE_HOME=/home/xxx/software/nodejs
    • PATH=$PATH:$NODE_HOME/bin
  • 将本地下载好的软件打包(来自npm install ...)
    • ${NODE_HOME}\node_modules\npm\node_modules\turnilo
    • cd ~/software;ln -snf turnilo-1.33.1/ turnilo

后台启动:

cd ~/software/turnilo
# 编辑好配置文件后启动
nohup bin/turnilo -c pivot.yaml 2>&1 > ~/logs/turnilo.log &
# 或者采用node启动
nohup npm run start -- -c pivot.yaml 2>&1 > ~/logs/turnilo.log &

其他

全局npm安装组件后会在${NODE_HOME}\node_modules\npm下面生成命令文件,而${NODE_HOME}\node_modules\npm会在安装node后自动或者手动加入到环境变量PATH中。

image.png

比如: turnilo

#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")

case `uname` in
    *CYGWIN*) basedir=`cygpath -w "$basedir"`;;
esac

if [ -x "$basedir/node" ]; then
  "$basedir/node"  "$basedir/node_modules/turnilo/bin/turnilo" "$@"
  ret=$?
else 
  node  "$basedir/node_modules/turnilo/bin/turnilo" "$@"
  ret=$?
fi
exit $ret

或者:turnilo.cmd

@IF EXIST "%~dp0\node.exe" (
  "%~dp0\node.exe"  "%~dp0\node_modules\turnilo\bin\turnilo" %*
) ELSE (
  @SETLOCAL
  @SET PATHEXT=%PATHEXT:;.JS;=;%
  node  "%~dp0\node_modules\turnilo\bin\turnilo" %*
)

所以全局安装后可以直接调用turnilo命令。