日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

如何使用Pushgateway推送數(shù)據(jù)

更新時(shí)間:

本文介紹如何使用可觀測(cè)監(jiān)控 Prometheus 版提供的Pushgateway功能推送數(shù)據(jù)。

方案概覽

如果您的數(shù)據(jù)源不能或不可以定期被Prometheus Server拉取數(shù)據(jù)(例如在沒有穩(wěn)定網(wǎng)絡(luò)連接的環(huán)境中),您可以使用Pushgateway推送,數(shù)據(jù)源會(huì)先將監(jiān)控?cái)?shù)據(jù)發(fā)送到Pushgateway,再由Prometheus Server周期性地獲取,實(shí)現(xiàn)步驟如下:

  1. 獲取Pushgateway地址:通過(guò)可觀測(cè)監(jiān)控 Prometheus 版控制臺(tái)獲取Pushgateway地址。

  2. 上報(bào)數(shù)據(jù):使用curl命令或者開源SDK實(shí)現(xiàn)數(shù)據(jù)推送,確保指標(biāo)數(shù)據(jù)能夠及時(shí)、可靠地被Prometheus收集并進(jìn)行監(jiān)控。

  3. 增加數(shù)據(jù)保護(hù)配置(可選):標(biāo)準(zhǔn)的Pushgateway協(xié)議是不包含數(shù)據(jù)保護(hù)相關(guān)內(nèi)容的,在PushgatewaySDK中只有基本的Basic Auth,并沒有更高級(jí)和通用的鑒權(quán)實(shí)現(xiàn),即任何客戶端一旦獲取Pushgateway端點(diǎn)地址,都可以推送數(shù)據(jù)。在可觀測(cè)監(jiān)控 Prometheus 版控制臺(tái)獲取Token,實(shí)現(xiàn)標(biāo)準(zhǔn)的JWT鑒權(quán)協(xié)議,從而保護(hù)您的數(shù)據(jù)安全。

    image

前提條件

已創(chuàng)建Prometheus實(shí)例。具體操作,請(qǐng)參見:

步驟一:獲取Push Gateway地址

  1. 選擇Prometheus實(shí)例:登錄ARMS控制臺(tái)在左側(cè)導(dǎo)航欄選擇Prometheus監(jiān)控 > 實(shí)例列表,進(jìn)入可觀測(cè)監(jiān)控 Prometheus 版的實(shí)例列表頁(yè)面。單擊目標(biāo)Prometheus實(shí)例名稱。

    image

  2. 獲取Push Gateway 地址:在左側(cè)導(dǎo)航欄,選擇設(shè)置,然后在設(shè)置頁(yè)簽的Push Gateway 地址區(qū)域獲取公網(wǎng)的URL地址。

    image

步驟二:上報(bào)數(shù)據(jù)

使用開源SDK推送數(shù)據(jù)

重要
  • 目前數(shù)據(jù)協(xié)議支持Text FormatProtobuf Delimited這兩種數(shù)據(jù)層協(xié)議,暫不支持Protobuf Text、Protobuf Compact-TextOpenmetrics這三種協(xié)議,SDK一般默認(rèn)是Protobuf Delimited協(xié)議。

  • 目前元數(shù)據(jù)HELP不支持中文字符,如果HELP中有中文字符會(huì)導(dǎo)致數(shù)據(jù)上報(bào)失敗。

本文以Go語(yǔ)言和Java語(yǔ)言為例介紹如何使用開源SDK推送指標(biāo)數(shù)據(jù)。

Go語(yǔ)言示例如下:

completionTime := prometheus.NewGauge(prometheus.GaugeOpts{
    Name: "db_backup_last_completion_timestamp_seconds",
    Help: "The timestamp of the last successful completion of a DB backup.",
})
completionTime.SetToCurrentTime()
url :   = "https://cn-hangzhou.arms.aliyuncs.com/prometheus/52b12ea9cf4bb9e35****/16727530178****/1df8lj***/cn-hangzhou/api/v2"
pusher := push.New(url, "test").
    Collector(completionTime).Client(http.DefaultClient).
    Grouping("key1", "test1").Grouping("key2", "dfdf/sdsd/").
    Format(expfmt.FmtProtoDelim)
if err := pusher.Push(); err != nil {
    fmt.Println("Could not push completion time to PushGateway: ", err)
}

Java語(yǔ)言示例如下:

CollectorRegistry registry = new CollectorRegistry();
Gauge duration = Gauge.build()
        .name("my_batch_job_duration_seconds").help("Duration of my batch job in seconds.").register(registry);
Gauge.Timer durationTimer = duration.startTimer();
try {
    // Your code here.

    // This is only added to the registry after success,
    // so that a previous success in the Pushgateway isn't overwritten on failure.
    Gauge lastSuccess = Gauge.build()
            .name("my_batch_job_last_success").help("Last time my batch job succeeded, in unixtime.").register(registry);
    lastSuccess.setToCurrentTime();
} finally {
    durationTimer.setDuration();
    PushGateway pg = new PushGateway(new URL("https://cn-hangzhou.arms.aliyuncs.com/prometheus/52b12ea9cf4bb9e35****/16727530178****/1df8lj***/cn-hangzhou/api/v2"));
    pg.pushAdd(registry, "my_batch_job");
}
說(shuō)明
  • 在您使用開源SDK時(shí),填入從Prometheus監(jiān)控控制臺(tái)上獲取的Pushgateway地址后,系統(tǒng)會(huì)自動(dòng)補(bǔ)齊類似/metrics/job/<JOB_NAME>{/<LABEL_NAME>/<LABEL_VALUE>}的后綴,若您使用的不是開源SDK,那么需要您自行拼接后綴,否則會(huì)報(bào)404錯(cuò)誤。

  • 若您需要為可觀測(cè)監(jiān)控 Prometheus 版云服務(wù)共享租戶集群中推送數(shù)據(jù),這里要求推送的指標(biāo)需統(tǒng)一攜帶tenant_userid=****標(biāo)簽,標(biāo)簽值是該指標(biāo)隸屬的阿里云賬號(hào)ID(即主賬號(hào)ID),用于區(qū)分指標(biāo)的隸屬關(guān)系。

使用curl命令推送數(shù)據(jù)

重要

目前不支持application/x-www-form-urlencoded類型的Request,在curl命令中,需要增加Header,指定Content-Type: text/plain; version=0.0.4; charset=utf-8

echo "some_metric 3.14" | curl -H "Content-Type: text/plain; version=0.0.4; charset=utf-8" --data-binary @- https://cn-hangzhou.arms.aliyuncs.com/prometheus/51bbea9ck41b9e35****/16727530178****/1df8lj***/cn-hangzhou/api/v2/metrics/label_key_1/label_value_1/label_key_2/label_value_2
說(shuō)明

多個(gè)Label可以在URL后面拼接,但需要注意整體URL長(zhǎng)度。

步驟三:增加數(shù)據(jù)保護(hù)配置(可選)

  1. 獲取token:在左側(cè)導(dǎo)航欄,選擇設(shè)置,然后在設(shè)置頁(yè)簽的Token區(qū)域單擊生成token

    image

  2. 傳遞token:生成Token后,您可以看到具體的Token值,有以下兩種方式傳遞Token。

    • 方式一:將Token設(shè)置到客戶端請(qǐng)求Header里,即可正常的推送數(shù)據(jù),否則系統(tǒng)會(huì)拒絕數(shù)據(jù)寫入。Header的設(shè)置如下圖所示:vr

    • 方式二:由于在PushgatewaySDK里只有基本的Basic Auth,并沒有支持JWT。如果想要完全使用SDK并實(shí)現(xiàn)鑒權(quán),可以使用BasicAuth接口,將Password設(shè)置為Token,服務(wù)側(cè)兼容了這種鑒權(quán)方式。使用第一種方式有一定的開發(fā)成本。這里以Go語(yǔ)言SDK為例。

      pusher := push.New(url, "test").
              Collector(completionTime).Client(http.DefaultClient).
              Grouping("key1", "test1").Grouping("key2", "dfdf/sdsd/").
              .BasicAuth("admin", "實(shí)際token值").
              Format(expfmt.FmtProtoDelim)

結(jié)果驗(yàn)證

您可以通過(guò)Grafana查詢數(shù)據(jù)是否成功推送。

  1. 進(jìn)入ApiServer大盤:在左側(cè)導(dǎo)航欄,選擇大盤列表,然后單擊名稱為ApiServer的大盤超鏈接,系統(tǒng)會(huì)跳轉(zhuǎn)至大盤頁(yè)面。

  2. 選擇Explore查看數(shù)據(jù):在大盤頁(yè)面的左側(cè)導(dǎo)航欄將鼠標(biāo)懸停在eu圖標(biāo)上(圖標(biāo)①),并在彈框中單擊Explore,然后在Explore頁(yè)面右側(cè)的下拉框中(圖標(biāo)②)選擇對(duì)應(yīng)Explore查看數(shù)據(jù)是否推送成功。

    wt