Last9

resmi

Gerç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.

Last9 MCP ile neler yapabilirsiniz?

  • Hizmet sağlığını incele — get_service_summary ile istek sayıları, iş hacmi ve hata oranlarının sıralı bir filo özetini isteyin.

  • Ham hizmet günlüklerini çek — Belirli bir hizmet için get_service_logs kullanarak önem düzeyine veya içerik metnine göre filtrelenmiş günlük satırlarını alın.

  • Veritabanı performansını izle — get_databases ve ilgili araçlarla veritabanlarını, yavaş sorguları ve sorgu desenlerini keşfedin.

  • PromQL sorguları çalıştırın — prometheus_range_query veya prometheus_instant_query ile herhangi bir metrik üzerinde aralık veya anlık sorgular yürütün.

  • Değişiklikleri olaylarla ilişkilendirin — get_change_events ile üretim davranışını neyin değiştirdiğini anlamak için dağıtım ve yapılandırma değişikliği olaylarını getirin.

  • Özel panoları yönetin — list_dashboards ve create_dashboard ile panoları programatik olarak listeleyin, oluşturun, güncelleyin veya doğrulayın.

Dokümantasyon

Last9 MCP Sunucusu

last9 mcp demo

Yapay zeka ajanınız üretimde neyin bozuk olduğunu bilmiyor. Bu, bunu düzeltir.

Last9 MCP Sunucusu, Claude, Cursor, Windsurf ve MCP destekli diğer tüm yapay zeka asistanlarını doğrudan üretim gözlemlenebilirlik verilerinize bağlar — loglar, metrikler, izler, istisnalar, veritabanı sorguları, uyarılar ve dağıtımlar. Ajan tahmin etmeyi bırakır ve gerçek sinyali okumaya başlar.


30 Saniyede Başlayın (Barındırılan)

Kurulacak ikili dosya yok. Yönetilecek belirteç yok. Tek URL, tarayıcınızda OAuth, bitti.

Last9 URL'nizde 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. Bu kadar.

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 Pazar Yeri'ni 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 organizasyonunuz için yönetici erişimi gerektirir.


Kendi Kendine Barındırılan (STDIO)

MCP istemciniz HTTP taşımasını desteklemediğinde veya sunucunun yerel olarak çalışmasına ihtiyaç duyduğunuzda 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

İkili sürümler (Windows / manuel):

GitHub Sürümleri adresinden indirin:

PlatformArş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

Yenileme Belirteci Alın

Yalnızca yöneticiler belirteç oluşturabilir.

  1. API Erişimi bölümüne gidin
  2. Yazma izinleriyle Belirteç Oluştur'a tıklayın
  3. 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>"
      }
    }
  }
}

Bunu nereye yapıştırmalı:

İstemciKonum
Claude Web/MasaüstüAyarlar > Geliştirici > Yapılandırmayı Düzenle (claude_desktop_config.json)
CursorAyarlar > Cursor Ayarları > MCP > Yeni Global MCP Sunucusu Ekle
WindsurfAyarlar > Cascade > MCP Pazar Yeri > dişli simgesi (mcp_config.json)
VS Codesettings.json içinde { "mcp": { "servers": { ... } } } ile sarın — ayrıntılar
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 adresinden indirdikten sonra çıkarın ve tam yola işaret edin:

{
  "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 gerekmez.

Ortam Değişkenleri

DeğişkenVarsayılanAçıklama
LAST9_REFRESH_TOKEN(zorunlu)API Erişimi bölümünden yenileme belirteci
LAST9_DATASOURCEkuruluş varsayılanıVeri kaynağı/küme adı — birden fazla Levitate kümeniz olduğunda kullanışlıdır
LAST9_API_HOSTapp.last9.ioAPI ana bilgisayarını geçersiz kıl
LAST9_TOOLSETStüm araçlarVirgülle ayrılmış araç setleri (logs, traces, metrics, alerts, dashboards, profiles, grafana, investigate, all). Takma ad: LAST9_MCP_TOOLSETS
LAST9_MAX_GET_LOGS_ENTRIES5000Parçalı get_logs istekleri için maksimum giriş
LAST9_USE_LOG_SEARCH_APIfalseget_logs ve get_service_logs yanıtlamak için true ayarlayın, istemci tarafı parçalama yerine tek sunucu tarafı arama çağrısıyla
LAST9_DEBUG_CHUNKINGfalseget_logs, get_service_logs, get_traces için parça planlama ayrıntılarını günlüğe kaydetmek için true ayarlayın
LAST9_DISABLE_TELEMETRYtrueDahili OTel izlemeyi etkinleştirmek için false ayarlayın
OTEL_SDK_DISABLED—Standart OTel ortam değişkeni. LAST9_DISABLE_TELEMETRY değerini geçersiz kılar
OTEL_EXPORTER_OTLP_ENDPOINT—OTLP toplayıcı uç noktası (yalnızca telemetri etkinleştirildiğinde)
OTEL_EXPORTER_OTLP_HEADERS—OTLP kimlik doğrulama başlıkları (yalnızca telemetri etkinleştirildiğinde)

Neler Yapabilir

Hizmet Sağlığı

  • get_service_summary — Sıralanmış filo (service, env) satırları: aralık istek sayısı, iş hacmi_rpm, HTTP 4xx/5xx sayıları ve gRPC hata sayıları
  • get_service_environments — Hizmetleriniz için kullanılabilir ortamlar. Önce bunu çalıştırın — diğer APM araçları buradan env gerektirir
  • get_service_performance_details — Tam döküm: iş hacmi, hata oranı, p50/p90/p95/ort/maks, apdex, kullanılabilirlik
  • get_service_operations_summary — HTTP uç noktaları, DB çağrıları, mesajlaşma, HTTP istemcileri tarafından gruplandırılmış işlemler
  • get_service_dependency_graph — Yukarı/akış aşağı/altyapı için iş hacmi, gecikme ve hata oranlarıyla bağımlılık haritası
  • get_apm_service_deviations — Geçerli pencereyi eşit süreli bir taban çizgisiyle karşılaştırın: gerilemeler/iyileştirmeler, Apdex mutabakatı ve terminal sonucu (filo veya tek hizmet)
  • get_exceptions — Hizmet ve yayılma filtreleriyle sunucu tarafı istisnalar

Veritabanı Gözlemlenebilirliği

Doğrudan veritabanı performansınıza giden, OpenTelemetry iz yayılımlarından ve izlerin olmadığı yerlerde CloudWatch gibi altyapı metriklerinden türetilen dört araç. Zaten OTel kullanıyorsanız ekstra enstrümantasyon gerekmez.

  • get_databases — Altyapınızdaki tüm veritabanlarını keşfedin: DB türü, ana bilgisayar, iş hacmi (sorgu/dk), p95 gecikmesi, hata oranı, bağımlı hizmet sayısı. Ayrıca iz enstrümantasyonu gerektirmeden CloudWatch gibi altyapı metriklerinden veritabanlarını keşfeder — bu satırlar iz metrikleri yerine etkinlik değeri taşır
  • get_database_slow_queries — Süreye göre sıralanmış gerçek en yavaş sorgu yürütmeleri, tam izlere inmek için iz kimlikleriyle
  • get_database_queries — Sorgu desenleri ve toplamalar: bir sorgunun ne sıklıkta çalıştığı, ortalama/p95 süresi, hata oranı
  • get_database_server_metrics — DB ana bilgisayarından sunucu tarafı metrikler (CPU, bağlantılar, arabellek isabet oranları — DB sisteminize bağlıdır)

PostgreSQL, MySQL, MongoDB, Redis, Aerospike ve db_system özniteliğine sahip OTel izleri olan diğer her şeyi destekler — ayrıca satırları iz metrikleri yerine etkinlik değeri taşıyan CloudWatch gibi altyapı metriklerinden keşfedilen veritabanları.

Prometheus / PromQL

  • prometheus_range_query — Herhangi bir metrik üzerinde PromQL aralık sorguları
  • prometheus_instant_query — Anlık sorgular; avg_over_time, sum_over_time gibi özet işlevlerini kullanın
  • prometheus_label_values — Belirli bir seri için etiket değerleri
  • prometheus_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.

Loglar

  • get_logs — Tam JSON ardışık düzen log sorguları (toplamalar, filtreler, alan çıkarma)
  • get_service_logs — Bir hizmet için ham log satırları, önem düzeyine ve gövde içeriğine göre filtrelenebilir
  • get_log_attributes — Bir zaman penceresi için log şemasındaki özniteliklerin genel kataloğu
  • get_log_attributes_for_pipeline — Devam eden bir ardışık düzen için gerçekte mevcut log alanları (kapsamlı keşif), her biri tam filter_field ile
  • get_drop_rules — Last9 Kontrol Düzlemi bölümünden log bırakma kuralları
  • add_drop_rule — Log hacmini kaynağında kesmek için yeni bir bırakma kuralı oluşturun

İzler

  • get_traces — Geniş aramalar ve toplamalar için JSON ardışık düzen iz sorguları
  • get_service_traces — Tam iz kimliğine veya hizmet adına göre izler. Bir iz kimliğiniz olduğunda bunu kullanın — daha hızlıdır
  • get_trace_attributes — İz şemasındaki özniteliklerin genel kataloğu
  • get_trace_attributes_for_pipeline — Devam eden bir ardışık düzen için gerçekte mevcut öznitelikler (kapsamlı keşif), her biri tam filter_field ile
  • get_trace_attribute_values — Bir iz özniteliği için farklı değerler, isteğe bağlı olarak bir ardışık düzene kapsamlandırılmış
  • get_trace_attribute_deviations — İki sınırlı yayılma kohortu arasında farklılık gösteren öznitelik değerlerini sıralar (yavaş vs hızlı, hata vs hatasız veya iki zaman penceresi). Korelasyon, neden değil
  • get_trace_waterfall — Aralık-birleşim öz süresi, en yavaş yayılımlar ve grafik uyarılarıyla tek bir tam iz, üst/alt şelale olarak

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şkilendirin
  • get_alert_groups — Meta veri etiketleri, ekip, katman ve kural sayılarıyla yapılandırılmış Compass uyarı grupları — sıfır kuralı olan gruplar ve tetiklenmeyen gruplar dahil
  • get_alert_config — Uyarı kuralı yapılandırmaları — ada, önem düzeyine, türe, etiketlere göre aranabilir
  • get_alerts — Bir zaman penceresi içinde şu anda tetiklenen uyarılar
  • get_alert_rule_state — Bir zaman aralığı boyunca uyarı kuralı başına tarihsel tetiklenme durumu (1/0), rule_id ile gruplandırılmış. Uyarı grubuna, kural adına, etiket filtrelerine 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: kimlikler, adlar ve meta veriler
  • get_dashboard — Kimliğe göre tam pano tanımı, paneller ve sorgular dahil
  • validate_dashboard — Kayıtlı bir pano kimliği veya satır içi dashboard_definition üzerinde ≤24 saatlik bir pencere için salt okunur lint + yürüt + sınıflandır. Asla pano oluşturmaz veya güncellemez
  • create_dashboard — Bir kez tamamen yeni bir özel pano oluşturun (paneller, sorgular, meta veriler). Kimlik döndürüldükten sonra update_dashboard ile iyileştirin.
  • update_dashboard — Kimliğe göre mevcut bir panoyu iyileştirin (tam değiştirme; salt okunur sistem panoları hata döndürür)
  • delete_dashboard — Kimliğe göre özel bir panoyu silin
  • list_dashboard_snapshots — Bir pano için dondurulmuş zaman noktası anlık görüntüleri (yalnızca meta veriler)
  • get_dashboard_snapshot — RCA / paylaşılabilir görünümler için panel verileri dahil tam dondurulmuş anlık görüntü
  • delete_dashboard_snapshot — Kimliğe göre dondurulmuş bir anlık görüntüyü silin

Sürekli Profil Oluşturma

Kuruluş için sürekli profil oluşturmanın etkinleştirilmesini gerektirir. Önce get_profile_services ile hizmetleri keşfedin, ardından bir alev grafiği veya sıralanmış işlevler çekin.

  • get_profile_services — Pencerede profil oluşturma verisi olan hizmetler (sorgulamadan önce dizin)
  • get_flamegraph — Tek bir hizmet için iç içe alev grafiği ağacı (cpu varsayılan; ayrıca alloc, wall)
  • get_top_functions — Tek bir hizmet için en sıcak işlevlerin öz örnek sıralaması
  • get_profile_summary — Tek bir hizmet için profilin kısa doğal dil ön değerlendirmesi

Grafana Panoları

Kuruluşun Grafana örneğine karşı salt okunur araçlar (Last9'un Grafana proxy'si aracılığıyla). Kimlik bilgisi alanları modele asla döndürülmez. LAST9_TOOLSETS=grafana ile etkinleştirin (veya tüm araçlar için araç setlerini ayarsız bırakın).

  • grafana_search_dashboards — Başlık alt dizgisine göre panoları ara (sayfalanmış; sınıra ulaşıldığında truncated: true)
  • grafana_get_dashboard — uid ile pano özeti (paneller, değişkenler, PromQL hedefleri); ham Grafana JSON için full_json=true
  • grafana_list_folders — Klasör ağacı
  • grafana_list_folder_dashboards — Tek klasördeki panolar (sayfalanmış)
  • grafana_list_datasources — Kimlik bilgileri olmadan veri kaynağı envanteri

Bulanık Ad Çözümleme

  • did_you_mean — Aracı bir varlık adından emin olmadığında, bu, kataloğunuzdan en yakın eşleşmeleri döndürür (servisler, ortamlar, ana bilgisayarlar, veritabanları, K8s dağıtımları/ad alanları, işler). Benzerlik puanlarıyla en fazla 3 öneri. Sunucu, bir ad araması boş döndüğünde çoğu araçtan önce bunu otomatik olarak çağırır.

Servis Profili

  • get_service_profile — Bir servisin telemetrisinin gerçekte neye benzediği, sorgulamadan önce: hangi sinyaller mevcut, dil ve çalışma zamanı, dağıtım ortamları, günlüklerinin şekli ve geçerli olduğunda önerilen bir alım düzeltmesi. Aracının, bir serviste iz yoksa iz araçlarını atlamasını ve SeverityText boş olduğunda günlük gövdesinden önem düzeyini ayrıştırmasını sağlar; böylece filtreleyip hiçbir şey bulamaz.

Nasıl Çalışır

Her yanıtta derin bağlantılar. Her araç, deep_link alanı döndürür — bu sorgu ve zaman aralığı için Last9 panosuna doğrudan bir URL. Aracı size bağlantıyı verebilir; siz tıklarsınız; oradasınız.

Araç setleri. Varsayılan olarak sunucu her aracı kullanıma sunar. Yalnızca araştırma (günlükler/izler/metrikler/profiller) gerektiren otomasyon ana bilgisayarları, istemci tarafında toplu devre dışı bırakma olmadan tools/list küçük kalsın diye LAST9_TOOLSETS=investigate (veya --toolsets=investigate geçirin) ayarlayabilir. Adlandırılmış paketler: logs, traces, metrics, alerts, dashboards, profiles, grafana, investigate, all. Bilinmeyen adlar hızla başarısız olur. metrics paketi tek başına list_datasources veya did_you_mean içermez — bu keşif yardımcılarına ihtiyacınız olduğunda investigate (veya araç setlerini birleştirin) kullanın.

Araç referans kaynakları. Uzun logjson/tracejson/service-logs/metrics kılavuzları MCP kaynaklarıdır (last9://reference/logjson, last9://reference/tracejson, last9://reference/service_logs, last9://reference/metrics, last9://reference/investigation), her zaman açık araç açıklama metni değil. Kritik sorgu kuralları araç açıklamasında kalır; böylece resources/read hiç çağırmayan aracılar yine de doğru yapılandırma rehberliği alır. Kuruluşa özgü alanları get_log_attributes / get_log_attributes_for_pipeline (ve iz eşdeğerleri) ile keşfedin — bunlar açıklamalara enjekte edilmez.

Parçalanmış büyük sonuçlar. get_logs ve get_traces, büyük sonuç kümelerini kırpmak yerine parçalama yoluyla işler. Günlükler için varsayılan sınır 5000 girdidir; 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

Streamable HTTP işleyicisi durumsuz modda çalışır, bu nedenle her istek bağımsız olarak sunulur. Bir initialize el sıkışması ve Mcp-Session-Id başlığı isteğe bağlıdır — bunları gönderen istemciler yine de çalışır (başlık kabul edilir ve yok sayılır) ve istemciler doğrudan tools/list / tools/call atlayabilir. Her araç bağımsız bir istek/yanıt sorgusudur; sunucu sunucudan istemciye bildirim göndermez, bu nedenle GET /mcp (SSE akışı) 405 döndürür.

# List tools — a session handshake is optional in stateless mode
curl -s -X POST http://localhost:8080/mcp \
    -H "Content-Type: application/json" \
    -H "Accept: application/json, text/event-stream" \
    -d '{"jsonrpc": "2.0", "id": 1, "method": "tools/list", "params": {}}'

# Call a tool
curl -s -X POST http://localhost:8080/mcp \
    -H "Content-Type: application/json" \
    -H "Accept: application/json, text/event-stream" \
    -d '{
      "jsonrpc": "2.0",
      "id": 2,
      "method": "tools/call",
      "params": {
        "name": "get_service_logs",
        "arguments": {
          "service_name": "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 barındırılan HTTP uç noktası daha kolaydır.


Araç Referansı

Tüm parametreler, zaman giriş standartları ve ayrıntılar

Zaman Girişi

  • Mutlak zamanlar (start_time_iso/end_time_iso veya time_iso), lookback_minutes üzerinde önceliklidir.
  • Göreli pencereler için: lookback_minutes kullanın.
  • Mutlak pencereler için: RFC3339/ISO8601 kullanın — 2026-02-09T15:04:05Z.
  • Eski YYYY-MM-DD HH:MM:SS yalnı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.
  • env (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ı): PromQL normal ifadesi. Varsayılan: .*. Tam eşleşme çapalar gerektirir (örn. ^prod$).
  • sort_by (dize, isteğe bağlı): request_count (varsayılan), throughput_rpm, http_4xx_count, http_5xx_count veya grpc_error_count.
  • limit (tamsayı, isteğe bağlı): Maksimum sıralanmış satır. Atla veya 0, 10 anlamına gelir; 100'ün üzerindeki değerler 100'e kırpılır.

get_service_environments

  • start_time_iso / end_time_iso (dize, isteğe bağlı)

Diğer tüm APM araçları bir env değeri gerektirir. Bu boş dönerse "" kullanın.

get_service_performance_details

  • 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_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_apm_service_deviations

  • service_name (dize, isteğe bağlı): Filo kapsamı için atla; bir servis ve işlem korelasyonları için sağla.
  • lookback_minutes (tamsayı, isteğe bağlı): Geçerli pencere. Varsayılan: 60.
  • start_time_iso / end_time_iso (dize, isteğe bağlı): Açık geçerli pencere.
  • baseline_start_time_iso / baseline_end_time_iso (dize, isteğe bağlı): Açık taban çizgisi. Varsayılan, hemen önceki eşit süreli penceredir.
  • datasource (dize, isteğe bağlı): Karşılaştırmayı tek bir veri kaynağıyla sınırla.
  • env (dize, isteğe bağlı): Varsayılan: prod.
  • max_services / max_operations (tamsayı, isteğe bağlı): Varsayılan 10, her biri maksimum 10.

get_databases

  • env (dize, isteğe bağlı): Ortama göre filtrele. Normal ifade kabul eder. Varsayılan: tümü.
  • lookback_minutes (tamsayı, isteğe bağlı): Varsayılan: 60. Pencere 7 günü aşamaz.
  • 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ı ana bilgisayarı (net_peer_name).
  • service_name (dize, isteğe bağlı): Çağıran servis adı.
  • env (dize, isteğe bağlı)
  • min_duration_ms (kayan nokta, isteğe bağlı): ms 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: son 60 dk.
  • lookback_minutes (kayan nokta, isteğe bağlı): Varsayılan: 60.

prometheus_instant_query

  • query (dize, zorunlu)
  • time_iso (dize, isteğe bağlı): Varsayılan: şimdi.
  • lookback_minutes (kayan nokta, 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 ardışık düzen 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> veya rehydration_index:<block_name>.

Günlük tabanlı servis 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 env öğesini ortam olarak ve name öğesini fiziksel dizin adı olarak kullanın. name="default" ise, index atlayın; kullanıcı tarafından seçilen varsayılan olmayan bir fiziksel dizin için index: "physical_index:<name>" geçirin. Arka uç açık fiziksel dizin filtrelemeyi reddederse, index olmadan yeniden deneyin ve açık fiziksel dizin filtrelemenin bu arka uç için kullanılamadığını bildirin.

get_service_logs

  • service_name (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şir. Her dizi dahili olarak VEYA kullanır. Önce geniş toplu sayımlar için get_logs kullanın; get_service_logs yalnızca bir servis/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 kapsamlamak 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. Bırakma kurallarını GET /otel_settings/drop?region=... aracılığıyla listeler.

add_drop_rule

  • name (dize, zorunlu)
  • filters (dizi, zorunlu): Her filtre: key, value, operator (equals/not_equals), conjunction (and).
  • Filtre anahtarları attributes["key_name"] veya resource.attributes["key_name"] kullanmalıdır (Last9 API'si tarafından zorunlu kılınır).
  • Kuralı POST /otel_settings/drop?region=...&cluster_id=... aracılığıyla oluşturur.

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 (string, isteğe bağlı): Varsayılan geriye bakış: 72 saat.
  • service_name (string, isteğe bağlı): Varsayılan geriye bakış: 60 dakika.
  • lookback_minutes (integer, isteğe bağlı)
  • start_time_iso / end_time_iso (string, isteğe bağlı)
  • limit (integer, isteğe bağlı): Varsayılan: 10.
  • env (string, isteğe bağlı)

get_trace_attributes

  • lookback_minutes (integer, isteğe bağlı): Varsayılan: 15.
  • start_time_iso / end_time_iso (string, isteğe bağlı)
  • region (string, isteğe bağlı)

get_trace_attributes_for_pipeline

  • pipeline (array, zorunlu): Keşfi kapsamlandırmak için önceki filtre aşamaları, örn. [{"type":"filter","query":{"$eq":["ServiceName","<service>"]}}].
  • lookback_minutes (integer, isteğe bağlı): Varsayılan: 15.
  • start_time_iso / end_time_iso (string, isteğe bağlı)
  • region (string, isteğe bağlı)

get_trace_attribute_values

  • tag_name (string, zorunlu): get_trace_attributes kaynağından öznitelik adı (örn. resource_department veya attributes['http.method']).
  • pipeline (array, isteğe bağlı): Değerleri kapsamlandırmak için önceki filtre aşamaları; genel değerler için atlayın.
  • lookback_minutes (integer, isteğe bağlı): Varsayılan: 15.
  • start_time_iso / end_time_iso (string, isteğe bağlı): Tarihsel RFC3339 sınırları; lookback_minutes üzerinde önceliklidir.
  • region (string, isteğe bağlı)

get_trace_attribute_deviations

  • comparison_mode (string, zorunlu): latency, errors veya time.
  • service_name (string, zorunlu)
  • environment (string, zorunlu): Tam deployment.environment değeri.
  • operation (string, isteğe bağlı)
  • filters (array, isteğe bağlı): Trace JSON filtre koşulları.
  • candidate_attributes (array, isteğe bağlı): En fazla 8; sınırlı keşif için atlayın.
  • latency_threshold_ms (number, isteğe bağlı): latency modu için zorunlu; diğer modlar için reddedilir.
  • start_time_iso / end_time_iso (string, isteğe bağlı)
  • lookback_minutes (integer, isteğe bağlı): Varsayılan: 15. Maksimum: 15.
  • baseline_start_time_iso / baseline_end_time_iso (string, isteğe bağlı): time modu için zorunlu; hedef pencereyle çakışmayan ve süresi eşit olmalıdır.
  • minimum_cohort_size (integer, isteğe bağlı): Varsayılan: 100. Minimum: 20.
  • minimum_value_support (integer, isteğe bağlı): Varsayılan: 20. Minimum: 10.
  • limit (integer, isteğe bağlı): Varsayılan: 10. Maksimum: 10.

Eşlik eden arka uç yeteneğinin etkinleştirilmesini gerektirir.

get_trace_waterfall

  • trace_id (string, zorunlu)
  • environment (string, isteğe bağlı)
  • start_time_iso / end_time_iso (string, isteğe bağlı)
  • lookback_minutes (integer, isteğe bağlı): Varsayılan: 4320 (72 saat).
  • selected_span_id (string, isteğe bağlı): Yalnızca o span için öznitelikleri, olayları ve bağlantıları döndürür.
  • max_spans (integer, isteğe bağlı): Varsayılan: 500. Maksimum: 1000.

Bir investigation-evidence/v1 zarfı döndürür; waterfall data altındadır.

get_change_events

  • start_time_iso / end_time_iso (string, isteğe bağlı)
  • lookback_minutes (integer, isteğe bağlı): Varsayılan: 60.
  • service_name (string, isteğe bağlı)
  • env (string, isteğe bağlı)
  • event_name (string, isteğe bağlı): Önce bunu kullanmadan çağırın; available_event_names almak için.

get_alert_groups

Changeboard / etiket kapsamı denetimleri için yapılandırılmış Compass uyarı grubu envanteri. Sıfır kuralı olan grupları ve tetiklenmeyen grupları içerir. PromQL döndürmez.

  • alert_group_name / alert_group_type / data_source_name (string, isteğe bağlı): Büyük/küçük harfe duyarsız alt dize eşleşmesi.
  • team / tier (string, isteğe bağlı): Yapılandırılmış meta verilerde tam büyük/küçük harfe duyarsız eşleşme.
  • label_key + label_value (string, isteğe bağlı): Birlikte ayarlanmalıdır. Tek bir metadata.labels çiftinde tam büyük/küçük harfe duyarsız eşleşme — hem anahtar hem de değer.

{"count":N,"groups":[...]}, id, name, type, entity_class, team, tier, metadata.labels ve kural sayılarıyla kompakt JSON döndürür. Boş team / labels, ayarlanmamış anlamına gelir.

get_alert_config

  • search_term (string, isteğe bağlı): Ad, grup, veri kaynağı, etiketler arasında serbest metin araması.
  • rule_name (string, isteğe bağlı)
  • severity (string, isteğe bağlı)
  • rule_type (string, isteğe bağlı): static veya anomaly.
  • alert_group_name / alert_group_type / data_source_name (string, isteğe bağlı)
  • tags (array, isteğe bağlı): Tümü eşleşmelidir (VE mantığı).

get_alerts

  • time_iso (string, isteğe bağlı): RFC3339 biçiminde değerlendirme zamanı.
  • window (integer, isteğe bağlı): Saniye cinsinden geriye bakış. Varsayılan: 900. Aralık: 60–86400.
  • lookback_minutes (integer, isteğe bağlı): Aralık: 1–1440.

get_alert_rule_state

  • start_time (integer, zorunlu): Aralığın Unix epoch başlangıcı (dahil).
  • end_time (integer, zorunlu): Aralığın Unix epoch sonu (dahil).
  • step (integer, 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 (string, isteğe bağlı): Uyarı grubu kimliğine göre filtrele.
  • rule_name (string, isteğe bağlı): Kural adında regex filtresi.
  • alert_group_name (string, isteğe bağlı): Uyarı grubu adında regex filtresi.
  • label_filters (string, isteğe bağlı): Virgülle ayrılmış key=value etiket filtreleri.
  • state (string, isteğe bağlı): Duruma göre filtrele (örn. firing).

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, "tetiklenmiş olarak gözlemlenmedi" anlamına gelir, doğrulanmış normal bir 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, webhook'lar vb.).

did_you_mean

  • query (string, zorunlu): Aranacak ad — kısmi, yanlış yazılmış veya kısaltılmış.
  • type (string, isteğe bağlı): Varlık türüyle sınırla: service, environment, host, database, k8s_deployment, k8s_namespace, job.

Benzerlik puanlarıyla en fazla 3 yakın eşleşme 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.

get_service_profile

  • service_name (string, zorunlu): Telemetri profili türetilecek hizmet.
  • datasource (string, isteğe bağlı): Veri kaynağı adı. Varsayılan için atlayın.

Kısa bir araştırma özeti ve ardından tam profil ham JSON olarak döndürülür: sinyal varlığı (logs/traces/metrics olarak present, absent veya unknown), dil ve çalışma zamanı, dağıtım ortamları, log signal_shape (log_format, severity_set, level_field) ve geçerli olduğunda önerilen bir alım düzeltmesi. Yukarı akıştan türetilir ve ~15 dakikalık TTL ile önbelleğe alınır.

Araç seçiminin hizmetin gerçek telemetrisiyle eşleşmesi için herhangi bir hizmet kapsamlı araştırmadan önce çağırın — traces absent olduğunda trace araçlarını atlayın ve severity_set none veya partial olduğunda, severity_filters kullanmak yerine log gövdesindeki level_field alanından önem düzeyini ayrıştırın. metrics her zaman unknown'dir ve dependencies v1'de doldurulmamıştır. logs ve traces her ikisi de absent olduğunda, hizmetin izlenmediği sonucuna varmadan önce adı did_you_mean ile doğrulayın.

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 (string, zorunlu): Pano UUID'si.
  • region (string, isteğe bağlı): Panel sorgu popülasyonu için bölge. Varsayılan olarak yapılandırılmış veri kaynağı bölgesi.

validate_dashboard

Salt okunur. Asla pano oluşturmaz veya güncellemez. dashboard_id veya dashboard_definition alanlarından tam olarak birini kabul eder.

  • dashboard_id (string, isteğe bağlı): Doğrulanacak kayıtlı pano UUID'si.
  • dashboard_definition (object, isteğe bağlı): Satır içi kaydedilmemiş pano gövdesi (gerçek kuru çalıştırma).
  • start_time_iso / end_time_iso (string, isteğe bağlı): Doğrulama penceresi (RFC3339). ≤ 24 saat olmalıdır.
  • region (string, isteğe bağlı): Panel sorgu yürütme bölgesi.

dashboard_validation/v1 döndürür: panel başına lint + yürütme sınıflandırması (data / no_data / invalid / error). 1. gün boş sonuçları, tanılama araştırmaları olmadan valid_no_data olarak sınıflandırılır.

create_dashboard

Yalnızca yeni oluşturma. Bu çağrı dashboard.id döndürdükten sonra, update_dashboard ile iyileştirin — panel eklemek, kırpmak veya düzeltmek için tekrar oluşturmayın.

  • dashboard (object, zorunlu): name ve panels[] içeren pano tanımı. Her panel name, version, layout (x, y, w, h), visualization.type ve queries[] gerektirir.
  • metadata (object, isteğe bağlı): Pano meta verileri — _category ve _type alanları (örn. {"_category":"custom","_type":"metrics"}).

update_dashboard

Oluşturduktan sonra bunu tercih edin. Kimliğe göre tam değiştirme (oluşturma ile aynı gövde).

  • id (string, zorunlu): Güncellenecek pano UUID'si.
  • dashboard (object, zorunlu): Tam değiştirme pano gövdesi (oluşturma ile aynı şekil).
  • metadata (object, isteğe bağlı): Değiştirme meta verileri. Salt okunur sistem panoları 403 hatası döndürür.

delete_dashboard

  • id (string, zorunlu): Silinecek pano UUID'si. Salt okunur sistem panoları silinemez.

list_dashboard_snapshots

  • dashboard_id (string, zorunlu): Anlık görüntüleri listelenecek pano UUID'si.

Yalnızca meta verileri döndürür (id, name, expires_at vb.). Dondurulmuş panel verileri için get_dashboard_snapshot kullanın.

get_dashboard_snapshot

  • id (string, zorunlu): Anlık görüntü UUID'si.

dashboard_definition, panel_data, time_range ve variables dahil tam dondurulmuş anlık görüntüyü döndürür.

delete_dashboard_snapshot

  • id (string, zorunlu): Silinecek anlık görüntü UUID'si.

get_profile_services

  • lookback_minutes / start_time_iso / end_time_iso (isteğe bağlı): Pencere; geriye bakış veya açık ISO sınırlarını tercih edin (varsayılan 60 dakika).
  • region (string, isteğe bağlı): Bölge geçersiz kılma.

Pencerede profil verisi olan hizmetleri döndürür. get_flamegraph / get_top_functions / get_profile_summary öncesinde bunu çağırın.

get_flamegraph

  • service (string, zorunlu): get_profile_services kaynağından hizmet adı.
  • profile_type (string, isteğe bağlı): cpu (varsayılan), alloc veya wall. Pencereleri karşılaştırırken bir tür sabitleyin.
  • env / cluster / namespace / runtime (string, isteğe bağlı): Kapsam filtreleri.
  • limit (number, isteğe bağlı): Maksimum toplanmış yığın satırı (varsayılan 1000, maksimum 10000).
  • lookback_minutes / start_time_iso / end_time_iso / region (isteğe bağlı).

İç içe bir flamegraph ağacı döndürür (name / value / self / children). truncated: true, API satır sınırına ulaşıldığı anlamına gelir.

get_top_functions

get_flamegraph ile aynı filtreler. En sıcak işlevlerin öz-örnek sıralamasını döndürür. Kısaltılmış olabilir; truncated kontrol edin.

get_profile_summary

get_flamegraph ile aynı filtreler. Hizmet için profilin kısa bir doğal dil triyajını döndürür.

grafana_search_dashboards

  • query (string, isteğe bağlı): Başlık alt dizesi. Boş, geniş listeler (5.000 satır sınırına tabidir).

{"dashboards":[…], "truncated":bool} ile uid, title, uri, url, type, tags döndürür. uid ile grafana_get_dashboard kullanın.

grafana_get_dashboard

  • uid (string, zorunlu): Grafana pano uid'si.
  • full_json (boolean, isteğe bağlı): true olduğunda, filtrelenmiş özet yerine ham Grafana JSON döndürür. Varsayılan özet: sürüm, etiketler, şablon değişkenleri ve her panelin türü/veri kaynağı/gridPos/promQL hedefleri. Bilinmeyen eklenti panel türleri unsupportedPanelTypes içinde görünür.

grafana_list_folders

Parametre yok. Klasör ağacını döndürür.

grafana_list_folder_dashboards

  • folder_uid (string, zorunlu): Grafana klasör uid'si.

Bu klasördeki panolar için {"dashboards":[…], "truncated":bool} döndürür (5.000'e kadar sayfalanmış).

grafana_list_datasources

Parametre yok. Veri kaynaklarının güvenli bir projeksiyonunu döndürür (kimlik bilgisi alanları yok).


Test

Entegrasyon test kurulumu ve talimatları için TESTING.md dosyasına bakın.


MseeP.ai Security Assessment Badge