Managed Service for Prometheus, izleme verilerini Alibaba Cloud konsolunun dışından sorgulamanızı sağlayan HTTP API URL'leri sunar. İki yaygın kullanım durumu şunlardır:
Kendi yönetiminizdeki Grafana: Metrikleri kendi Grafana örneğinizde görselleştirmek için HTTP API URL'sini bir Prometheus veri kaynağı olarak ekleyin.
Özel uygulamalar: Metrikleri programatik olarak almak için Prometheus uyumlu HTTP API'yi doğrudan çağırın.
Kimlik doğrulama
Managed Service for Prometheus, her biri farklı bir kimlik doğrulama yöntemi kullanan iki örnek sürümünü destekler.
| Örnek sürümü | Kimlik doğrulama yöntemi | Kimlik bilgileri |
|---|---|---|
| Prometheus V1 | Belirteç tabanlı (isteğe bağlı) | Konsolda oluşturulan kimlik doğrulama belirteci |
| Prometheus V2 | Temel kimlik doğrulama (zorunlu) | Hesabınızın AccessKey ID ve AccessKey Secret değeri; ilişkili RAM kullanıcısının AliyunPrometheusMetricReadAccess veya AliyunCloudMonitorFullAccess iznine sahip olması gerekir |
Prometheus V2 için veri erişimi için hesabınızın AccessKey ID ve AccessKey Secret değerleri gerekir. Ayrıca ilişkili RAM kullanıcısının AliyunPrometheusMetricReadAccess veya AliyunCloudMonitorFullAccess sistem izni ne sahip olması gerekir.
Ön koşullar
Başlamadan önce aşağıdaki gereksinimlere sahip olduğunuzdan emin olun:
-
Bağlı bir Prometheus örneği. Kurulum talimatları için bkz.:
(Grafana için) Yönetici erişimine sahip, kendi yönetiminizdeki bir Grafana örneği
(Prometheus V2 için) Hesabınız için bir AccessKey çifti; ilişkili RAM kullanıcısının gerekli izinlere sahip olması gerekir
HTTP API URL'sini alma
CloudMonitor konsoluna giriş yapın.
Sol gezinme bölmesinde Managed Service for Prometheus > Instances seçeneğini seçin.
Üst gezinme çubuğundan Prometheus örneğinizin bulunduğu bölgeyi seçin.
Prometheus örneğinizi bulun ve Actions sütunundaki Settings seçeneğine tıklayın.
-
Settings sekmesinde HTTP API URL'sini kopyalayın.

Grafana örneğiniz veya uygulamanız Alibaba Cloud dahili ağının dışında ise public URL'yi kullanın.
Grafana örneğiniz veya uygulamanız aynı Alibaba Cloud bölgesi içinde çalışıyorsa ve dahili uç noktalara erişebiliyorsa internal URL'yi kullanın.
(Yalnızca Prometheus V1) Bir kimlik doğrulama belirteci oluşturmak için Generate Token seçeneğine tıklayın. Bu belirteci daha sonra kullanmak üzere kaydedin.
Prometheus V1 örneğinde, bir belirteç oluşturduktan sonra bunu Grafana veri kaynağını yapılandırırken belirtmeniz gerekir. Belirteç olmadan Grafana, örnekten izleme verilerini okuyamaz.
Kendi yönetiminizdeki Grafana veri kaynağını yapılandırma
Veri kaynağını ekleme
Yönetici olarak Grafana örneğinizde oturum açın.
-
Connections > Data sources menüsüne gidin.
Bu menü yalnızca Grafana yöneticileri tarafından görülebilir. Grafana 8 ve önceki sürümlerde Configuration > Data sources yolunu izleyin. Connections menüsü Grafana 9 ve sonraki sürümlerde kullanılabilir.
+ Add data source seçeneğine tıklayın ve ardından Prometheus öğesini seçin.
Name alanına veri kaynağı için açıklayıcı bir ad girin.
(HTTP bölümü altındaki) Prometheus server URL alanına daha önce kopyaladığınız HTTP API URL'sini yapıştırın.
Kimlik doğrulamayı yapılandırma
Prometheus örnek sürümünüz için aşağıdaki adımları izleyin.
Prometheus V1
Bir belirteç oluşturduysanız bunu özel bir HTTP üst bilgisi olarak ekleyin:
Custom HTTP Headers bölümünde + Add header seçeneğine tıklayın.
Header değerini
Authorizationolarak ayarlayın.Value değerini kimlik doğrulama belirtecine ayarlayın.

Prometheus V2
Basic auth seçeneğini etkinleştirin.
User değerini AccessKey ID'nize ayarlayın.
Password değerini AccessKey Secret değerinize ayarlayın.

Kaydetme ve test etme
Save & test seçeneğine tıklayın. Başarılı mesajı, Grafana'nın Prometheus veri kaynağına ulaşabildiğini gösterir.
Grafana'daki veri kaynağını doğrulama
Grafana'da Dashboards menüsüne gidin ve New > New dashboard seçeneğine tıklayın.
+ Add visualization seçeneğine tıklayın ve yapılandırdığınız veri kaynağını seçin.
Edit Panel sayfasında Query sekmesini açın. A bölümünde, Metrics alanına bir metrik adı girin (örneğin,
arms_prometheus_target_interval_length_seconds_sum) ve gerekirse Label filters öğelerini yapılandırın.Run queries seçeneğine tıklayın.
Grafikte metrik verileri görüntüleniyorsa veri kaynağı çalışıyor demektir. Grafik görünmüyorsa API URL'sinin veya belirtecin geçerli olup olmadığını ve veri kaynağında izleme verisi bulunup bulunmadığını kontrol edin. Daha fazla yardım için bkz. Sorun giderme.
HTTP API'yi programatik olarak sorgulama
Aşağıdaki örnekler anlık sorgular için /api/v1/query uç noktasını kullanır. Aralık sorguları (/api/v1/query_range), seri meta verileri ve diğer uç noktalar için Prometheus HTTP API referansına bakın.
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'
Aşağıdaki yer tutucuları gerçek değerlerle değiştirin:
| Yer tutucu | Açıklama | Örnek |
|---|---|---|
<your-http-api-url> |
Settings sekmesindeki HTTP API URL'si | https://cn-hangzhou.arms.aliyuncs.com/... |
<your-token> |
Konsolda oluşturulan kimlik doğrulama belirteci | eyJhbGciOi... |
requests kitaplığını kullanarak API'yi Python'dan da çağırabilirsiniz:
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']}")
token değerini 1. adımda oluşturulan kimlik doğrulama belirteciyle ve api_url değerini HTTP API URL'nizle değiştirin.
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'
Aşağıdaki yer tutucuları gerçek değerlerle değiştirin:
| Yer tutucu | Açıklama | Örnek |
|---|---|---|
<your-http-api-url> |
Settings sekmesindeki HTTP API URL'si | https://cn-hangzhou.arms.aliyuncs.com/... |
<your-accesskey-id> |
Hesabınızın AccessKey ID değeri | LTAI5tXxx... |
<your-accesskey-secret> |
Hesabınızın AccessKey Secret değeri | xXxXxXx... |
-ubayrağı, AccessKey ID ve AccessKey Secret değerlerini otomatik olarak Base64Authorization: Basicüst bilgisine kodlar.
curl'a ek olarak, Python requests kitaplığı ve Temel Kimlik Doğrulama ile API'yi çağırabilirsiniz:
import requests
import time
# Obtain the HTTP API URL from the console.
api_url = 'http://cn-hangzhou.arms.aliyuncs.com:9090/api/v1/prometheus/{token}/{user_id}/{cluster_id}/{region}'
# Use the AccessKey ID as the username and the AccessKey secret as the password.
ak_id = 'your_access_key_id'
ak_secret = 'your_access_key_secret'
# Query a metric.
resp = requests.get(f'{api_url}/api/v1/query', params={'query': 'up'}, auth=(ak_id, ak_secret))
print(resp.json())
# Range query (the last 1 hour).
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())
ak_id ve ak_secret değerlerini hesabınızın AccessKey ID ve AccessKey Secret değerleriyle değiştirin. Ayrıca api_url içindeki HTTP API URL'sini HTTP API URL'sini alma bölümünde elde ettiğiniz URL ile değiştirin. API ayrıca STS kimlik doğrulamasını destekler; bu durumda Secret formatı {secret}${STS Token} şeklindedir. Daha fazla bilgi için bkz. STS nedir?.
Sorgu parametreleri
| Parametre | Zorunlu | Açıklama |
|---|---|---|
query |
Evet | Değerlendirilecek bir PromQL ifadesi |
time |
Hayır | Değerlendirme zaman damgası (Unix zaman damgası veya RFC 3339). Varsayılan olarak geçerli sunucu saatini kullanır |
timeout |
Hayır | Milisaniye cinsinden değerlendirme zaman aşımı |
Sorun giderme
| Belirti | Olası neden | Çözüm |
|---|---|---|
| HTTP 401 Unauthorized | Geçersiz veya eksik kimlik bilgileri | Belirteci (V1) veya AccessKey çiftini (V2) doğrulayın. Süresi dolmuşsa yeniden oluşturun. |
| HTTP 403 Forbidden | Yetersiz izinler | RAM kullanıcısına AliyunPrometheusMetricReadAccess veya AliyunCloudMonitorFullAccess iznini verin. |
| Bağlantı zaman aşımı | Ağ erişilemez | Grafana Alibaba Cloud dışında çalışıyorsa public HTTP API URL'sini kullanın. Aynı bölge içinde çalışıyorsa internal URL'yi kullanın. |
| Grafana grafiğinde veri yok | Sorgulanan metrik için alınan veri yok | Prometheus örneğinin hedefleri aktif olarak topladığını ve metrik adının doğru olduğunu doğrulayın. |
İlgili konular
Prometheus HTTP API referansı -- Aralık sorguları (
/api/v1/query_range), etiket sorguları ve seri meta verileri dahil olmak üzere sorgu uç noktaları için tam API belgeleriGrafana panosu oluşturma -- Bağlı veri kaynağıyla panolar oluşturun