欢迎使用CSDN-markdown编辑器

来源:互联网 发布:网络家教招聘 编辑:程序博客网 时间:2024/06/08 07:01

Paas平台数据监控

技术方案

Tub-influxdb + grafana/grafana-4.5.2

数据写入

目前采用go或者node.js实现websocket client,influxdb的api

代码demo

go

package mainimport (    "log"    "golang.org/x/net/websocket")func main() {    origin := "http://xx.xx.xx"    url := "ws://xx.xx.xx:80/socket"    ws, err := websocket.Dial(url, "", origin)    if err != nil {        log.Fatal(err)    }    if _, err := ws.Write([]byte("all")); err != nil {        log.Fatal(err)    }    var msg string    for {        err := websocket.Message.Receive(ws, &msg)        if err != nil {            log.Fatal(err)        }        log.Println(msg)        //...........do anything you want    }}

node.js

var mdata = require('./measurementdata.js');var WebSocketClient = require('websocket').client;var client = new WebSocketClient();client.on('connectFailed', function(error) {    console.log('Connect Error: ' + error.toString());});client.on('connect', function(connection) {    console.log('WebSocket Client Connected');    connection.on('open', function(error) {        console.log("Connection Error: " + error.toString());    });    connection.on('error', function(error) {        console.log("Connection Error: " + error.toString());    });    connection.on('close', function() {        console.log('echo-protocol Connection Closed');    });    connection.on('message', function(message) {        if (message.type === 'utf8') {            //console.log("Received: '" + message.utf8Data + "'");        }        mdata.w_influxdb_obj(message);       // connection.on('close');    });    function sendMessage() {        if (connection.connected) {            connection.sendUTF("all");            //setTimeout(sendMessage, 1000);        }    }    sendMessage();});client.connect("ws:xx.xx.xx:80/socket", "ws", "http://xx.xx.xx", "", "");

node的基本命令

  1. 查看node.js版本
    node -v
  2. 安装某个组件
    npm install ws
  3. 执行某个js
    node test.js

Grafana

docker run -d -p 3000:3000 –name grafana grafana/grafana:4.5.2
http://localhost:3000/login