https://github.com/amitsaha/prom-file-sd-config-generator

功能比较单一,就是从url使用http GET请求获取一个资源列表,然后自动把他解析成json写进文件,需要提前配置好prometheus基于文件的自动发现功能

GET返回的格式类似于

<a href="http://127.0.0.1:9100/metrics/testitem1">target1</a>
<a href="http://127.0.0.1:9200/metrics/testitem2">target2</a>
<a href="http://127.0.0.1:9300/metrics/testitem3">target3</a>

使用示例

准备一个响应请求的程序

package main

import (
    "fmt"
    "net/http"
    "os"

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

type targetlist []string

func port() string {
    port := os.Getenv("PORT")
    if len(port) == 0 {
        port = "8088"
    }
    return ":" + port
}

var list1 = targetlist{`<a href="http://127.0.0.1:9090/metrics">localhost</a>`,
    `<a href="http://172.29.36.125:9100/metrics">ser2</a>`}

func main() {
    engine := gin.Default()
    engine.GET("/list", func(c *gin.Context) {
        str := ""
        for _, item := range list1 {
            str = str + "\n" + item

        }
        fmt.Println(str)
        c.String(http.StatusOK, str)
    })

    engine.Run(port())
}

运行程序

./prom-file-sd-config-generator --config-path /var/file-sd.json --target-source "http://127.0.0.1:8088/list"

#一共就三个参数
#--config-path json文件地址
#--target-source  响应url
#--scrape-interval int  采集间隔,默认5s

有docker 镜像,使用方法和上面一样,挂参数就行
image.png
没看到有更改标签相关的功能,而且还得自己开发响应程序,感觉不实用

标签: none

评论已关闭