All Products
Search
Document Center

Application Real-Time Monitoring Service:Akses data pemantauan Prometheus melalui URL API HTTP

Last Updated:Aug 18, 2026

Managed Service for Prometheus menyediakan URL API HTTP yang memungkinkan Anda mengkueri data pemantauan dari luar Konsol Alibaba Cloud. Berikut dua kasus penggunaan umum:

  • Grafana yang dikelola sendiri: Tambahkan URL API HTTP sebagai sumber data Prometheus untuk memvisualisasikan metrik di instans Grafana Anda sendiri.

  • Aplikasi kustom: Panggil API HTTP yang kompatibel dengan Prometheus secara langsung untuk mengambil metrik secara terprogram.

Otentikasi

Managed Service for Prometheus mendukung dua versi instans, masing-masing dengan metode otentikasi berbeda.

Versi instansMetode otentikasiKredensial
Prometheus V1Berdasarkan token (opsional)Token otentikasi yang dihasilkan di konsol
Prometheus V2Autentikasi dasar (wajib)ID AccessKey dan Rahasia AccessKey akun Anda, serta Pengguna RAM terkait harus memiliki izin AliyunPrometheusMetricReadAccess atau AliyunCloudMonitorFullAccess
Penting

Untuk Prometheus V2, akses data memerlukan ID AccessKey dan Rahasia AccessKey akun Anda, serta Pengguna RAM terkait harus memiliki izin sistem AliyunPrometheusMetricReadAccess atau AliyunCloudMonitorFullAccess.

Prasyarat

Sebelum memulai, pastikan Anda telah memiliki:

Dapatkan URL API HTTP

  1. Masuk ke Konsol CloudMonitor.

  2. Di panel navigasi sebelah kiri, pilih Managed Service for Prometheus > Instances.

  3. Di bilah navigasi atas, pilih wilayah tempat instans Prometheus Anda berada.

  4. Temukan instans Prometheus Anda, lalu klik Settings di kolom Actions.

  5. Di tab Settings, salin URL API HTTP. HTTP API URL on the Settings tab

    • Gunakan URL publik jika instans Grafana atau aplikasi Anda berada di luar jaringan internal Alibaba Cloud.

    • Gunakan URL internal jika instans Grafana atau aplikasi Anda berjalan di wilayah Alibaba Cloud yang sama dan dapat mengakses titik akhir internal.

  6. (Hanya untuk Prometheus V1) Klik Generate Token untuk membuat token otentikasi. Simpan token ini untuk digunakan nanti.

Penting

Untuk instans Prometheus V1, setelah Anda menghasilkan token, Anda harus menyertakannya saat mengonfigurasi sumber data Grafana. Tanpa token tersebut, Grafana tidak dapat membaca data pemantauan dari instans tersebut.

Konfigurasi sumber data Grafana yang dikelola sendiri

Tambahkan sumber data

  1. Masuk ke instans Grafana Anda sebagai administrator.

  2. Buka Connections > Data sources.

    Menu ini hanya terlihat oleh administrator Grafana. Di Grafana 8 dan versi sebelumnya, buka Configuration > Data sources. Menu Connections tersedia di Grafana 9 dan versi setelahnya.
  3. Klik + Add data source, lalu pilih Prometheus.

  4. Di bidang Name, masukkan nama deskriptif untuk sumber data.

  5. Di bidang Prometheus server URL (di bagian HTTP), tempel URL API HTTP yang telah Anda salin sebelumnya.

Konfigurasi otentikasi

Ikuti langkah-langkah berikut sesuai versi instans Prometheus Anda.

Prometheus V1

Jika Anda telah menghasilkan token, tambahkan sebagai Header HTTP kustom:

  1. Di bagian Custom HTTP Headers, klik + Add header.

  2. Atur Header menjadi Authorization.

  3. Atur Value menjadi token otentikasi.

Custom HTTP header configuration for Prometheus V1

Prometheus V2

  1. Aktifkan Basic auth.

  2. Atur User menjadi ID AccessKey Anda.

  3. Atur Password menjadi Rahasia AccessKey Anda.

Basic auth configuration for Prometheus V2

Simpan dan uji

Klik Save & test. Pesan sukses menandakan bahwa Grafana dapat mengakses sumber data Prometheus.

Verifikasi sumber data di Grafana

  1. Di Grafana, buka Dashboards dan klik New > New dashboard.

  2. Klik + Add visualization dan pilih sumber data yang telah Anda konfigurasi.

  3. Di halaman Edit Panel, buka tab Query. Di bagian A, masukkan nama metrik di bidang Metrics (misalnya, arms_prometheus_target_interval_length_seconds_sum) dan konfigurasikan Label filters sesuai kebutuhan.

  4. Klik Run queries.

Jika grafik ditampilkan dengan data metrik, berarti sumber data berfungsi. Jika tidak ada grafik yang muncul, periksa apakah URL API atau token valid dan apakah sumber data memiliki data pemantauan. Untuk bantuan tambahan, lihat Pemecahan Masalah.

Kueri API HTTP secara terprogram

Contoh berikut menggunakan titik akhir /api/v1/query untuk kueri instan. Untuk kueri rentang (/api/v1/query_range), metadata deret waktu, dan titik akhir lainnya, lihat referensi API HTTP Prometheus.

Prometheus V1

curl -G '<your-http-api-url>/api/v1/query' \
  -H 'Authorization: <your-token>' \
  -H 'Accept: application/json' \
  --data-urlencode 'query=arms_prometheus_target_interval_length_seconds_sum' \
  --data-urlencode 'time=1635302655' \
  --data-urlencode 'timeout=1000'

Ganti placeholder berikut dengan nilai aktual:

PlaceholderDeskripsiContoh
<your-http-api-url>URL API HTTP dari tab Settingshttps://cn-hangzhou.arms.aliyuncs.com/...
<your-token>Token otentikasi yang dihasilkan di konsoleyJhbGciOi...

Anda juga dapat memanggil API dari Python menggunakan pustaka requests:

import requests

token = "your-token"
api_url = "https://your-prometheus-api-url"

response = requests.get(
    f"{api_url}/api/v1/query",
    params={"query": "up"},
    headers={"Authorization": f"Bearer {token}"}
)

data = response.json()
for result in data["data"]["result"]:
    print(f"Metric: {result['metric']}")
    print(f"Value: {result['value']}")
Catatan

Ganti token dengan token otentikasi yang dihasilkan di langkah 1 dan api_url dengan URL API HTTP Anda.

Prometheus V2

curl -G '<your-http-api-url>/api/v1/query' \
  -u '<your-accesskey-id>:<your-accesskey-secret>' \
  -H 'Accept: application/json' \
  --data-urlencode 'query=arms_prometheus_target_interval_length_seconds_sum' \
  --data-urlencode 'time=1635302655' \
  --data-urlencode 'timeout=1000'

Ganti placeholder berikut dengan nilai aktual:

PlaceholderDeskripsiContoh
<your-http-api-url>URL API HTTP dari tab Settingshttps://cn-hangzhou.arms.aliyuncs.com/...
<your-accesskey-id>ID AccessKey akun AndaLTAI5tXxx...
<your-accesskey-secret>Rahasia AccessKey akun AndaxXxXxXx...
Flag -u secara otomatis mengenkripsi ID AccessKey dan Rahasia AccessKey sebagai Header Authorization: Basic dalam format Base64.

Selain curl, Anda dapat memanggil API dengan pustaka Python requests dan autentikasi dasar:

import requests
import time

# Dapatkan URL API HTTP dari konsol.
api_url = 'http://cn-hangzhou.arms.aliyuncs.com:9090/api/v1/prometheus/{token}/{user_id}/{cluster_id}/{region}'

# Gunakan ID AccessKey sebagai username dan Rahasia AccessKey sebagai password.
ak_id = 'your_access_key_id'
ak_secret = 'your_access_key_secret'

# Kueri metrik.
resp = requests.get(f'{api_url}/api/v1/query', params={'query': 'up'}, auth=(ak_id, ak_secret))
print(resp.json())

# Kueri rentang (1 jam terakhir).
end = int(time.time())
start = end - 3600
resp = requests.get(f'{api_url}/api/v1/query_range', params={'query': 'up', 'start': start, 'end': end, 'step': '60s'}, auth=(ak_id, ak_secret))
print(resp.json())
Catatan

Ganti ak_id dan ak_secret dengan ID AccessKey dan Rahasia AccessKey akun Anda, serta ganti URL API HTTP di api_url dengan URL yang Anda peroleh di Dapatkan URL API HTTP. API ini juga mendukung otentikasi STS, di mana format rahasianya adalah {secret}${STS Token}. Untuk informasi selengkapnya, lihat Apa itu STS?.

Parameter kueri

ParameterWajibDeskripsi
queryYaEkspresi PromQL yang akan dievaluasi
timeTidakTimestamp evaluasi (Unix timestamp atau RFC 3339). Nilai default adalah waktu server saat ini
timeoutTidakTimeout evaluasi dalam milidetik

Contoh respons

Kueri yang berhasil mengembalikan respons JSON seperti berikut:

{
    "status": "success",
    "data": {
        "resultType": "vector",
        "result": [
            {
                "metric": {
                    "__name__": "arms_prometheus_target_interval_length_seconds_sum",
                    "instance": "localhost:9335",
                    "interval": "15s",
                    "job": "_arms-prom/kubelet/1"
                },
                "value": [
                    1635302655,
                    "146655.24420603***"
                ]
            },
            {
                "metric": {
                    "__name__": "arms_prometheus_target_interval_length_seconds_sum",
                    "instance": "localhost:9335",
                    "interval": "30s",
                    "job": "_arms-prom/kubelet/1"
                },
                "value": [
                    1635302655,
                    "879810.747346***"
                ]
            },
            {
                "metric": {
                    "__name__": "arms_prometheus_target_interval_length_seconds_sum",
                    "instance": "localhost:9335",
                    "interval": "20s",
                    "job": "_arms-prom/kubelet/1"
                },
                "value": [
                    1635302655,
                    "73320.13578499***"
                ]
            }
        ]
    }
}

Pemecahan Masalah

GejalaKemungkinan penyebabSolusi
HTTP 401 UnauthorizedKredensial tidak valid atau tidak adaVerifikasi token (V1) atau pasangan Kunci Akses (V2). Hasilkan ulang jika sudah kedaluwarsa.
HTTP 403 ForbiddenIzin tidak mencukupiBerikan Pengguna RAM izin AliyunPrometheusMetricReadAccess atau AliyunCloudMonitorFullAccess.
Connection timeoutJaringan tidak dapat dijangkauJika Grafana berjalan di luar Alibaba Cloud, gunakan URL API HTTP publik. Jika berjalan di wilayah yang sama, gunakan URL internal.
Tidak ada data di grafik GrafanaTidak ada data yang diingest untuk metrik yang dikueriPastikan instans Prometheus sedang aktif melakukan scraping target dan nama metrik benar.

Topik Terkait

  • Referensi API HTTP Prometheus — Dokumentasi lengkap API untuk titik akhir kueri termasuk kueri rentang (/api/v1/query_range), kueri label, dan metadata deret waktu

  • Buat dasbor Grafana — Bangun dasbor dengan sumber data yang telah terhubung