Last9 MCP Server
resmiGerçek zamanlı üretim bağlamını—loglar, metrikler ve izler—yerel ortamınıza sorunsuz bir şekilde taşıyarak kodu daha hızlı otomatik düzeltin.
Dokümantasyon
Last9 MCP Sunucusu

Yapay zeka ajanınız üretimde neyin bozuk olduğunu bilmez. Bu, bunu düzeltir.
Last9 MCP Sunucusu Claude, Cursor, Windsurf ve MCP özellikli diğer tüm yapay zeka asistanlarını doğrudan üretim gözlemlenebilirlik verilerinize (günlükler, metrikler, izler, istisnalar, veritabanı sorguları, uyarılar ve dağıtımlar) bağlar. Ajan tahmin yürütmeyi bırakır ve gerçek sinyali okumaya başlar.
30 saniyede başlayın (Hosted)
Kurulacak binary yok. Yönetilecek token yok. Bir URL, tarayıcınızda OAuth, bitti.
Last9 URL'nizdeki kuruluş slug'ınızı bulun: app.last9.io/<org_slug>/...
Claude Code
claude mcp add --transport http last9 https://app.last9.io/api/v4/organizations/<org_slug>/mcp
/mcp yazın, last9'u seçin, kimlik doğrulayın. Hepsi bu.
Cursor
Ayarlar > MCP > Yeni MCP Sunucusu Ekle:
{
"mcpServers": {
"last9": {
"type": "http",
"url": "https://app.last9.io/api/v4/organizations/<org_slug>/mcp"
}
}
}
Bağlan'a tıklayın, OAuth'u tamamlayın.
VS Code
v1.99+ gerektirir. Komut Paleti'ni açın → MCP: Sunucu Ekle, URL'yi yapıştırın, kimlik doğrulayın.
Veya doğrudan settings.json içinde:
{
"mcp": {
"servers": {
"last9": {
"type": "http",
"url": "https://app.last9.io/api/v4/organizations/<org_slug>/mcp"
}
}
}
}
Windsurf
Ayarlar > Cascade > MCP Marketplace'i Aç > dişli simgesi (mcp_config.json):
{
"mcpServers": {
"last9": {
"serverUrl": "https://app.last9.io/api/v4/organizations/<org_slug>/mcp"
}
}
}
Claude Web/Masaüstü
Ayarlar > Bağlayıcılar > Özel bağlayıcı ekle. last9 olarak adlandırın, URL'yi yapıştırın, kimlik doğrulayın.
Claude organizasyonunuza yönetici erişimi gerektirir.
Self-Hosted (STDIO)
MCP istemciniz HTTP aktarımını desteklemediğinde veya sunucunun yerel olarak çalışması gerektiğinde bunu kullanın.
Kurulum
Homebrew:
brew install last9/tap/last9-mcp
NPM:
npm install -g @last9/mcp-server@latest
# or directly:
npx -y @last9/mcp-server@latest
Binary sürümleri (Windows / manuel):
GitHub Sürümleri'nden indirin:
| Platform | Arşiv |
|---|---|
| Windows (x64) | last9-mcp-server_Windows_x86_64.zip |
| Windows (ARM64) | last9-mcp-server_Windows_arm64.zip |
| Linux (x64) | last9-mcp-server_Linux_x86_64.tar.gz |
| Linux (ARM64) | last9-mcp-server_Linux_arm64.tar.gz |
| macOS (x64) | last9-mcp-server_Darwin_x86_64.tar.gz |
| macOS (ARM64) | last9-mcp-server_Darwin_arm64.tar.gz |
Refresh Token Edinin
Yalnızca yöneticiler token oluşturabilir.
- API Erişimi'ne gidin
- Yazma izinleriyle Token Oluştur'a tıklayın
- Kopyalayın
İstemci Yapılandırması
Homebrew:
{
"mcpServers": {
"last9": {
"command": "/opt/homebrew/bin/last9-mcp",
"env": {
"LAST9_REFRESH_TOKEN": "<your_refresh_token>"
}
}
}
}
NPM:
{
"mcpServers": {
"last9": {
"command": "npx",
"args": ["-y", "@last9/mcp-server@latest"],
"env": {
"LAST9_REFRESH_TOKEN": "<your_refresh_token>"
}
}
}
}
Bunları nereye yapıştırmalı:
| İstemci | Konum |
|---|---|
| Claude Web/Masaüstü | Ayarlar > Geliştirici > Yapılandırmayı Düzenle (claude_desktop_config.json) |
| Cursor | Ayarlar > Cursor Ayarları > MCP > Yeni Global MCP Sunucusu Ekle |
| Windsurf | Ayarlar > Cascade > MCP Marketplace > dişli simgesi (mcp_config.json) |
| VS Code | { "mcp": { "servers": { ... } } } içinde settings.json ile sarın — detaylar |
VS Code STDIO yapılandırması
{
"mcp": {
"servers": {
"last9": {
"type": "stdio",
"command": "/opt/homebrew/bin/last9-mcp",
"env": {
"LAST9_REFRESH_TOKEN": "<your_refresh_token>"
}
}
}
}
}
NPM için: "command": "npx" kullanın ve "args": ["-y", "@last9/mcp-server@latest"] ekleyin.
Windows
GitHub Sürümleri'nden indirdikten sonra, çıkartın ve tam yolu gösterin:
{
"mcpServers": {
"last9": {
"command": "C:\\Users\\<user>\\AppData\\Local\\Programs\\last9-mcp-server.exe",
"env": {
"LAST9_REFRESH_TOKEN": "<your_refresh_token>"
}
}
}
}
NPM yolu Windows'ta daha kolaydır — yol yönetimi yoktur.
Ortam Değişkenleri
| Değişken | Varsayılan | Açıklama |
|---|---|---|
LAST9_REFRESH_TOKEN | (gerekli) | API Erişimi'nden refresh token |
LAST9_DATASOURCE | kuruluş varsayılanı | Veri kaynağı/küme adı — birden fazla Levitate kümeniz olduğunda kullanışlıdır |
LAST9_API_HOST | app.last9.io | API ana bilgisayarını geçersiz kıl |
LAST9_MAX_GET_LOGS_ENTRIES | 5000 | Parçalı get_logs istekleri için maksimum giriş |
LAST9_DEBUG_CHUNKING | false | get_logs, get_service_logs, get_traces için parça planlama detaylarını günlüğe kaydetmek üzere true olarak ayarlayın |
LAST9_DISABLE_TELEMETRY | true | Dahili OTel izlemeyi etkinleştirmek için false olarak ayarlayın |
OTEL_SDK_DISABLED | — | Standart OTel ortam değişkeni. LAST9_DISABLE_TELEMETRY'ı geçersiz kılar |
OTEL_EXPORTER_OTLP_ENDPOINT | — | OTLP toplayıcı uç noktası (yalnızca telemetri etkin olduğunda) |
OTEL_EXPORTER_OTLP_HEADERS | — | OTLP kimlik doğrulama başlıkları (yalnızca telemetri etkin olduğunda) |
Neler Yapabilir
Servis Sağlığı
get_service_summary— Tüm servisler genelinde işlem hacmi, hata oranı, p95 yanıt süresiget_service_environments— Servisleriniz için kullanılabilir ortamlar. Bunu önce çalıştırın — diğer APM araçları buradanenvdeğerine ihtiyaç duyarget_service_performance_details— Tam döküm: işlem hacmi, hata oranı, p50/p90/p95/ort/maks, apdex, kullanılabilirlikget_service_operations_summary— HTTP uç noktaları, VT çağrıları, mesajlaşma, HTTP istemcilerine göre gruplandırılmış işlemlerget_service_dependency_graph— Yukarı/aşağı akış/altyapı için işlem hacmi, gecikme ve hata oranlarını içeren bağımlılık haritasıget_exceptions— Servis ve span filtreleriyle sunucu tarafı istisnalar
Veritabanı Gözlemlenebilirliği
OpenTelemetry iz span'lerinden türetilen, doğrudan veritabanı performansınıza yönelik dört araç. Zaten OTel kullanıyorsanız ek enstrümantasyona gerek yoktur.
get_databases— Altyapınızdaki tüm veritabanlarını keşfedin: VT türü, ana bilgisayar, işlem hacmi (sorgu/dk), p95 gecikme, hata oranı, bağımlı servis sayısıget_database_slow_queries— Süreye göre sıralanmış, tam izlere inmek için trace ID'leri içeren gerçek en yavaş sorgu yürütmeleriget_database_queries— Sorgu desenleri ve toplamaları: bir sorgunun ne sıklıkta çalıştığı, ortalama/p95 süre, hata oranıget_database_server_metrics— VT ana bilgisayarının kendisinden sunucu tarafı metrikler (CPU, bağlantılar, arabellek isabet oranları — VT sisteminize bağlıdır)
PostgreSQL, MySQL, MongoDB, Redis, Aerospike ve db_system özniteliğine sahip OTel izleri olan diğer her şeyi destekler.
Prometheus / PromQL
prometheus_range_query— Herhangi bir metrik üzerinde PromQL aralık sorgularıprometheus_instant_query— Anlık sorgular;avg_over_time,sum_over_timegibi toplama fonksiyonlarını kullanınprometheus_label_values— Belirli bir seri için etiket değerleriprometheus_labels— Bir seri için kullanılabilir tüm etiketler
LAST9_DATASOURCE ayarlayarak bunları varsayılandan farklı bir veri kaynağına/kümeye yönlendirin.
Günlükler
get_logs— Tam JSON pipeline günlük sorguları (toplamalar, filtreler, alan çıkarma)get_service_logs— Bir servis için ham günlük satırları, önem derecesi ve gövde içeriğine göre filtrelenebilirget_log_attributes— Bir zaman penceresi için günlük şemasındaki özniteliklerin global kataloğuget_log_attributes_for_pipeline— Devam eden bir pipeline için gerçekte mevcut günlük alanları (kapsamlı keşif), her biri tamfilter_fieldileget_drop_rules— Last9 Control Plane'den günlük bırakma kurallarıadd_drop_rule— Kaynakta günlük hacmini azaltmak için yeni bir bırakma kuralı oluşturun
İzler
get_traces— Geniş aramalar ve toplamalar için JSON pipeline iz sorgularıget_service_traces— Tam trace ID veya servis adına göre izler. Bir trace ID'niz olduğunda bunu kullanın — daha hızlıdırget_trace_attributes— İz şemasındaki özniteliklerin global kataloğuget_trace_attributes_for_pipeline— Devam eden bir pipeline için gerçekte mevcut öznitelikler (kapsamlı keşif), her biri tamfilter_fieldileget_trace_attribute_values— Bir iz özniteliği için farklı değerler, isteğe bağlı olarak bir pipeline ile kapsamlandırılmış
Değişiklik Olayları ve Uyarılar
get_change_events— Dağıtımlar, yapılandırma değişiklikleri, geri almalar. Olayları neyin değiştiğiyle ilişkilendiringet_alert_config— Uyarı kuralı yapılandırmaları — ada, önem derecesine, türe, etiketlere göre aranabilirget_alerts— Bir zaman penceresi içinde şu anda tetiklenen uyarılarget_alert_rule_state— Bir zaman aralığında uyarı kuralı başına geçmiş tetiklenme durumu (1/0),rule_idile gruplandırılmış. Uyarı grubu, kural adı, etiket filtreleri ve duruma göre filtrelenebilir.get_notification_channels— Yapılandırılmış bildirim kanalları (Slack, PagerDuty, e-posta, vb.)
Özel Panolar
list_dashboards— Kuruluşunuzdaki tüm özel panolar: ID'ler, adlar ve meta verilerget_dashboard— ID'ye göre paneller ve sorgular dahil tam pano tanımıcreate_dashboard— Paneller, sorgular ve meta verilerle yeni bir özel pano oluşturunupdate_dashboard— ID'ye göre mevcut bir panoyu güncelleyin (salt okunur sistem panoları hata döndürür)delete_dashboard— ID'ye göre özel bir panoyu silin
Bulanık Ad Çözümleme
did_you_mean— Ajan bir varlık adından emin olmadığında, bu, kataloğunuzdan (servisler, ortamlar, ana bilgisayarlar, veritabanları, K8s dağıtımları/ad alanları, işler) en yakın eşleşmeleri döndürür. Benzerlik puanlarıyla en fazla 3 öneri. Bir ad araması boş döndüğünde sunucu çoğu araçtan önce bunu otomatik olarak çağırır.
Nasıl Çalışır
Her yanıtta derin bağlantılar. Her araç bir deep_link alanı döndürür — tam olarak o sorgu ve zaman aralığı için Last9 panosuna doğrudan bir URL. Ajan size bağlantıyı verebilir; tıklarsınız; oradasınızdır.
Canlı öznitelik önbellekleme. Başlangıçta sunucu, verilerinizden gerçek günlük ve iz öznitelik adlarını alır ve bunları araç açıklamalarına gömer. Bu, yapay zeka asistanının yalnızca genel bir liste değil, şemanızda hangi alanların var olduğunu bildiği anlamına gelir. Önbellek her 2 saatte bir yenilenir.
Parçalı büyük sonuçlar. get_logs ve get_traces, büyük sonuç kümelerini kesmek yerine parçalama yoluyla işler. Günlükler için varsayılan sınır 5000 giriştir; LAST9_MAX_GET_LOGS_ENTRIES ile yapılandırılabilir.
Geliştirme
HTTP modu, curl testi, kaynaktan derleme
HTTP Modunda Çalıştırma
export LAST9_REFRESH_TOKEN="your_refresh_token"
export LAST9_HTTP=true
export LAST9_PORT=8080
./last9-mcp-server
Sunucu http://localhost:8080/mcp adresinde başlar.
curl ile Test Etme
MCP Akışlı HTTP, önce bir başlatma el sıkışması gerektirir. İlk istekte Mcp-Session-Id ayarlamayın.
# Step 1: Initialize
SESSION_ID=$(curl -si -X POST http://localhost:8080/mcp \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "initialize",
"params": {
"protocolVersion": "2024-11-05",
"capabilities": {},
"clientInfo": {"name": "curl-test", "version": "1.0"}
}
}' | grep -i "^Mcp-Session-Id:" | awk '{print $2}' | tr -d '\r')
echo "Session: $SESSION_ID"
# Step 2: Send initialized notification
curl -s -X POST http://localhost:8080/mcp \
-H "Content-Type: application/json" \
-H "Mcp-Session-Id: $SESSION_ID" \
-d '{"jsonrpc": "2.0", "method": "notifications/initialized", "params": {}}'
# Step 3: List tools
curl -s -X POST http://localhost:8080/mcp \
-H "Content-Type: application/json" \
-H "Mcp-Session-Id: $SESSION_ID" \
-d '{"jsonrpc": "2.0", "id": 2, "method": "tools/list", "params": {}}'
# Step 4: Call a tool
curl -s -X POST http://localhost:8080/mcp \
-H "Content-Type: application/json" \
-H "Mcp-Session-Id: $SESSION_ID" \
-d '{
"jsonrpc": "2.0",
"id": 3,
"method": "tools/call",
"params": {
"name": "get_service_logs",
"arguments": {
"service": "your-service-name",
"lookback_minutes": 30,
"limit": 10
}
}
}'
Kaynaktan Derleme
git clone https://github.com/last9/last9-mcp-server.git
cd last9-mcp-server
go build -o last9-mcp-server
LAST9_HTTP=true ./last9-mcp-server
LAST9_HTTP=true yerel geliştirme içindir. Gerçek kullanım için hosted HTTP uç noktası daha kolaydır.
Araç Referansı
Tüm parametreler, zaman giriş standartları ve detaylar
Zaman Girişi
- Mutlak zamanlar (
start_time_iso/end_time_isoveyatime_iso)lookback_minutes'a göre önceliklidir. - Göreli pencereler için:
lookback_minuteskullanın. - Mutlak pencereler için: RFC3339/ISO8601 kullanın —
2026-02-09T15:04:05Z. - Eski
YYYY-MM-DD HH:MM:SSyalnızca uyumluluk için kabul edilir.
get_exceptions
limit(tamsayı, isteğe bağlı): Maksimum istisna. Varsayılan: 20.lookback_minutes(tamsayı, isteğe bağlı): Varsayılan: 60.start_time_iso/end_time_iso(dize, isteğe bağlı): Mutlak zaman aralığı.service_name(dize, isteğe bağlı): Servise göre filtrele.span_name(dize, isteğe bağlı): Span adına göre filtrele.deployment_environment(dize, isteğe bağlı): Ortama göre filtrele.
get_service_summary
start_time_iso/end_time_iso(dize, isteğe bağlı)env(dize, isteğe bağlı): Varsayılanprod.
get_service_environments
start_time_iso/end_time_iso(dize, isteğe bağlı)
Diğer tüm APM araçları bir
envdeğeri gerektirir. Bu boş dönerse""kullanın.
get_service_performance_details
service_name(dize, gerekli)lookback_minutes(tamsayı, isteğe bağlı): Varsayılan: 60.start_time_iso/end_time_iso(dize, isteğe bağlı)env(dize, isteğe bağlı): Varsayılanprod.
get_service_operations_summary
service_name(dize, zorunlu)lookback_minutes(tamsayı, isteğe bağlı): Varsayılan: 60.start_time_iso/end_time_iso(dize, isteğe bağlı)env(dize, isteğe bağlı): Varsayılan:prod.
get_service_dependency_graph
service_name(dize, isteğe bağlı)lookback_minutes(tamsayı, isteğe bağlı): Varsayılan: 60.start_time_iso/end_time_iso(dize, isteğe bağlı)env(dize, isteğe bağlı): Varsayılan:prod.
get_databases
env(dize, isteğe bağlı): Ortama göre filtrele. Varsayılan: tümü.lookback_minutes(tamsayı, isteğe bağlı): Varsayılan: 60.start_time_iso/end_time_iso(dize, isteğe bağlı)
get_database_slow_queries
db_system(dize, isteğe bağlı): örn.postgresql,mysql,mongodb,redis.host(dize, isteğe bağlı): Veritabanı sunucusu (net_peer_name).service_name(dize, isteğe bağlı): Çağıran hizmet adı.env(dize, isteğe bağlı)min_duration_ms(kayan noktalı, isteğe bağlı): Milisaniye cinsinden minimum sorgu süresi.lookback_minutes(tamsayı, isteğe bağlı): Varsayılan: 60.start_time_iso/end_time_iso(dize, isteğe bağlı)limit(tamsayı, isteğe bağlı): Varsayılan: 20.
get_database_queries
db_system(dize, isteğe bağlı)host(dize, isteğe bağlı)service_name(dize, isteğe bağlı)env(dize, isteğe bağlı)lookback_minutes(tamsayı, isteğe bağlı): Varsayılan: 60.start_time_iso/end_time_iso(dize, isteğe bağlı)limit(tamsayı, isteğe bağlı): Varsayılan: 20.
get_database_server_metrics
db_system(dize, zorunlu): örn.postgresql,mysql,mongodb,redis,aerospike.host(dize, isteğe bağlı)lookback_minutes(tamsayı, isteğe bağlı): Varsayılan: 60.start_time_iso/end_time_iso(dize, isteğe bağlı)
prometheus_range_query
query(dize, zorunlu): PromQL sorgusu.start_time_iso/end_time_iso(dize, isteğe bağlı): Varsayılan olarak son 60 dakika.lookback_minutes(kayan noktalı, isteğe bağlı): Varsayılan: 60.
prometheus_instant_query
query(dize, zorunlu)time_iso(dize, isteğe bağlı): Varsayılan olarak şimdi.lookback_minutes(kayan noktalı, isteğe bağlı)
prometheus_label_values
match_query(dize, isteğe bağlı): PromQL filtresi.label(dize, zorunlu): Etiket adı.start_time_iso/end_time_iso(dize, isteğe bağlı)
prometheus_labels
match_query(dize, isteğe bağlı): PromQL filtresi.start_time_iso/end_time_iso(dize, isteğe bağlı)
get_logs
logjson_query(dizi, zorunlu): JSON pipeline sorgusu.lookback_minutes(tamsayı, isteğe bağlı): Varsayılan: 5.start_time_iso/end_time_iso(dize, isteğe bağlı)limit(tamsayı, isteğe bağlı): Sunucu varsayılanı: 5000.index(dize, isteğe bağlı):physical_index:<name>veyarehydration_index:<block_name>.
Günlük tabanlı hizmet envanteri için önce physical_index_service_count sorgulayın:
sum by (name, service_name, env) (physical_index_service_count{destination="logs"})
service_name öğesini ServiceName olarak, mevcutsa ortamı env olarak ve fiziksel dizin adını name olarak kullanın. name="default" durumunda index öğesini atlayın; kullanıcı tarafından seçilen varsayılan olmayan bir fiziksel dizin için index: "physical_index:<name>" iletin. Arka uç açık fiziksel dizin filtrelemeyi reddederse, index olmadan yeniden deneyin ve açık fiziksel dizin filtrelemenin o arka uç için kullanılamadığını bildirin.
get_service_logs
service(dize, zorunlu)lookback_minutes(tamsayı, isteğe bağlı): Varsayılan: 60.limit(tamsayı, isteğe bağlı): Varsayılan: 20.env(dize, isteğe bağlı)severity_filters(dizi, isteğe bağlı): örn.["error", "warn"]. VEYA mantığı.body_filters(dizi, isteğe bağlı): örn.["timeout", "failed"]. VEYA mantığı.start_time_iso/end_time_iso(dize, isteğe bağlı)index(dize, isteğe bağlı)
Birden çok filtre türü VE ile birleştirilir. Her dizi dahili olarak VEYA kullanır.
Önce geniş toplu sayımlar için get_logs kullanın; get_service_logs öğesini yalnızca bir hizmet/ortam/dizin ve küçük bir örnek kümesine daralttıktan sonra kullanın.
get_log_attributes
lookback_minutes(tamsayı, isteğe bağlı): Varsayılan: 15.start_time_iso/end_time_iso(dize, isteğe bağlı)region(dize, isteğe bağlı)index(dize, isteğe bağlı)
get_log_attributes_for_pipeline
pipeline(dizi, zorunlu): Keşfi kapsamlandırmak için önceki filtre aşamaları, örn.[{"type":"filter","query":{"$eq":["ServiceName","<service>"]}}].lookback_minutes(tamsayı, isteğe bağlı): Varsayılan: 15.start_time_iso/end_time_iso(dize, isteğe bağlı)region(dize, isteğe bağlı)index(dize, isteğe bağlı)
get_drop_rules
Parametre yok.
add_drop_rule
name(dize, zorunlu)filters(dizi, zorunlu): Her filtre:key,value,operator(equals/not_equals),conjunction(and).
get_traces
Geniş aramalar ve toplamalar için kullanın. Tam iz kimliği araması için get_service_traces kullanın.
tracejson_query(dizi, zorunlu)start_time_iso/end_time_iso(dize, isteğe bağlı)lookback_minutes(tamsayı, isteğe bağlı): Varsayılan: 60.limit(tamsayı, isteğe bağlı): Varsayılan: 5000.
get_service_traces
trace_id veya service_name öğelerinden tam olarak biri zorunludur.
trace_id(dize, isteğe bağlı): Varsayılan geriye bakış: 72 saat.service_name(dize, isteğe bağlı): Varsayılan geriye bakış: 60 dakika.lookback_minutes(tamsayı, isteğe bağlı)start_time_iso/end_time_iso(dize, isteğe bağlı)limit(tamsayı, isteğe bağlı): Varsayılan: 10.env(dize, isteğe bağlı)
get_trace_attributes
lookback_minutes(tamsayı, isteğe bağlı): Varsayılan: 15.start_time_iso/end_time_iso(dize, isteğe bağlı)region(dize, isteğe bağlı)
get_trace_attributes_for_pipeline
pipeline(dizi, zorunlu): Keşfi kapsamlandırmak için önceki filtre aşamaları, örn.[{"type":"filter","query":{"$eq":["ServiceName","<service>"]}}].lookback_minutes(tamsayı, isteğe bağlı): Varsayılan: 15.start_time_iso/end_time_iso(dize, isteğe bağlı)region(dize, isteğe bağlı)
get_trace_attribute_values
tag_name(dize, zorunlu):get_trace_attributeskaynağından öznitelik adı (örn.resource_departmentveyaattributes['http.method']).pipeline(dizi, isteğe bağlı): Değerleri kapsamlandırmak için önceki filtre aşamaları; genel değerler için atlayın.region(dize, isteğe bağlı)
get_change_events
start_time_iso/end_time_iso(dize, isteğe bağlı)lookback_minutes(tamsayı, isteğe bağlı): Varsayılan: 60.service(dize, isteğe bağlı)environment(dize, isteğe bağlı)event_name(dize, isteğe bağlı):available_event_namesalmak için önce bu olmadan çağırın.
get_alert_config
search_term(dize, isteğe bağlı): Ad, grup, veri kaynağı, etiketler arasında serbest metin araması.rule_name(dize, isteğe bağlı)severity(dize, isteğe bağlı)rule_type(dize, isteğe bağlı):staticveyaanomaly.alert_group_name/alert_group_type/data_source_name(dize, isteğe bağlı)tags(dizi, isteğe bağlı): Tümü eşleşmelidir (VE mantığı).
get_alerts
time_iso(dize, isteğe bağlı): RFC3339 formatında değerlendirme zamanı.window(tamsayı, isteğe bağlı): Saniye cinsinden geriye bakış. Varsayılan: 900. Aralık: 60–86400.lookback_minutes(tamsayı, isteğe bağlı): Aralık: 1–1440.
get_alert_rule_state
start_time(tamsayı, zorunlu): Aralığın Unix epoch başlangıcı (dahil).end_time(tamsayı, zorunlu): Aralığın Unix epoch sonu (dahil).step(tamsayı, zorunlu): Örnekler arasındaki saniye cinsinden çözünürlük.((end_time - start_time) / step + 1)örnek sayısı 100 ile sınırlıdır.alert_group_id(dize, isteğe bağlı): Uyarı grubu kimliğine göre filtrele.rule_name(dize, isteğe bağlı): Kural adında regex filtresi.alert_group_name(dize, isteğe bağlı): Uyarı grubu adında regex filtresi.label_filters(dize, isteğe bağlı): Virgülle ayrılmışkey=valueetiket filtreleri.state(dize, isteğe bağlı): Duruma göre filtrele (örn.firing).
Bir rule_id -> [{timestamp, is_firing}] JSON haritası döndürür. Bir kuralın yukarı akış yanıtında bulunmadığı bir zaman damgası is_firing=0 olarak raporlanır — bu, "tetikleniyor olarak gözlemlenmedi" anlamına gelir, onaylanmış normal durum değil.
get_notification_channels
Parametre yok. Yapılandırılmış tüm bildirim kanallarını döndürür (Slack, PagerDuty, e-posta, web kancaları vb.).
did_you_mean
query(dize, zorunlu): Aranacak ad — kısmi, yanlış yazılmış veya kısaltılmış.type(dize, isteğe bağlı): Varlık türüne kısıtla:service,environment,host,database,k8s_deployment,k8s_namespace,job.
Benzerlik puanlarıyla en fazla 3 en yakın eşleşmeyi döndürür. Varlık adının belirsiz olduğu herhangi bir araç çağrısından önce bunu kullanın. Önceki bir çağrı boş sonuç döndürdüyse, yeniden denemeden önce bunu deneyin.
list_dashboards
Parametre yok. Kuruluştaki tüm özel panoları id, name ve meta verilerle birlikte bir JSON dizisi olarak döndürür.
get_dashboard
id(dize, zorunlu): Pano UUID'si.region(dize, isteğe bağlı): Panel sorgu popülasyonu için bölge. Varsayılan olarak yapılandırılmış veri kaynağı bölgesi.
create_dashboard
dashboard(nesne, zorunlu):namevepanels[]içeren pano tanımı. Her panelname,version,layout(x,y,w,h),visualization.typevequeries[]gerektirir.metadata(nesne, isteğe bağlı): Pano meta verileri —_categoryve_typealanları (örn.{"_category":"custom","_type":"metrics"}).
update_dashboard
id(dize, zorunlu): Güncellenecek pano UUID'si.dashboard(nesne, zorunlu): Tam değiştirme pano gövdesi (oluşturma ile aynı şekil).metadata(nesne, isteğe bağlı): Değiştirme meta verileri. Salt okunur sistem panoları 403 hatası döndürür.
delete_dashboard
id(dize, zorunlu): Silinecek pano UUID'si. Salt okunur sistem panoları silinemez.
Test
Entegrasyon testi kurulumu ve talimatları için TESTING.md dosyasına bakın.
