Prometheus 用にプログラムで tsdb wal または block を作成する方法

PHPz
リリース: 2024-02-06 08:40:03
転載
645 人が閲覧しました

如何以编程方式为 Prometheus 创建 tsdb wal 或块

質問内容

Prometheus のサンプル データを生成する必要があり、プログラムで tsdb チャンクを作成するスクリプトを作成しようとしています。 ChatGPT の助けを借りてこのコードを作成すると、Prometheus が受け入れる WAL ブロックが作成され、オートコンプリートで検出されたシリーズ名も作成されますが、値が表示されません。なぜですか?

package main

import (
    "context"
    "fmt"
    "github.com/prometheus/prometheus/model/labels"
    "github.com/prometheus/prometheus/storage"
    "github.com/prometheus/prometheus/tsdb"
    "os"
    "time"
)

func main() {
    // Create a new TSDB instance
    db, err := tsdb.Open(
        "./data", // directory where the data will be stored
        nil,      // a logger (can be nil for no logging)
        nil,      // an optional prometheus.Registerer
        tsdb.DefaultOptions(),
        nil,
    )
    if err != nil {
        fmt.Println("Error opening TSDB:", err)
        os.Exit(1)
    }
    defer db.Close()

    // Create a new appender
    app := db.Appender(context.Background())

    // Create labels for the gauge time series
    lbls := labels.FromStrings("__name__", "example_gauge", "type", "gauge")

    // Initialize a SeriesRef
    var ref storage.SeriesRef

    // Add some data points
    for i := 0; i < 10; i++ {
        var err error
        ref, err = app.Append(ref, lbls, time.Now().Unix()+int64(i), float64(i))
        if err != nil {
            fmt.Println("Error appending:", err)
            os.Exit(1)
        }
    }

    // Commit the data
    err = app.Commit()
    if err != nil {
        fmt.Println("Error committing:", err)
        os.Exit(1)
    }
}
ログイン後にコピー

正解


上記のコードは機能します。唯一の問題は、時間をミリ秒単位で渡し、time.Now () を実行する必要があることです。 Unix() は秒単位で値を返すため、1000 を掛ける必要があるため、この行を変更すると次の結果が得られます。 ###から: ### リーリー ###に:### リーリー

以上がPrometheus 用にプログラムで tsdb wal または block を作成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:stackoverflow.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!