grafana 通過自定義API獲取數(shù)據(jù)

一、安裝插件

安裝infinity插件


安裝.png

二、配置數(shù)據(jù)源

配置數(shù)據(jù)源.png

設(shè)置并保存.png

三、配置圖表

1、數(shù)據(jù)

這邊提供一個go的demo

package main

import (
    "math/rand"
    "net/http"
    "time"

    "github.com/gin-gonic/gin"
)

func main() {
    router := gin.Default()

    rand.Seed(time.Now().Unix())
    router.GET("/api/data", func(ctx *gin.Context) {
        var data []Metric
        for i := 0; i < 10; i++ {
            data = append(data, Metric{Entity: "m1", Value: rand.Float64() * 10.0, Time: time.Now().Add(time.Duration(-i) * time.Minute).UnixMilli()})
            data = append(data, Metric{Entity: "m2", Value: rand.Float64() * 10.0, Time: time.Now().Add(time.Duration(-i) * time.Minute).UnixMilli()})
            data = append(data, Metric{Entity: "m3", Value: rand.Float64() * 10.0, Time: time.Now().Add(time.Duration(-i) * time.Minute).UnixMilli()})
        }

        ctx.JSON(http.StatusOK, data)
    })

    router.Run(":8080")
}

type Metric struct {
    Entity string      `json:"entity"`
    Value  interface{} `json:"value"`
    Time   int64       `json:"time"`
}

2、圖表

配置圖表.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容