Last9

chính thức

Mang bối cảnh sản xuất thời gian thực—log, chỉ số và dấu vết—vào môi trường cục bộ của bạn một cách liền mạch để tự động sửa mã nhanh hơn.

Bạn có thể làm gì với Last9 MCP?

Yêu cầu trợ lý của bạn điều tra sự cố production bằng cách sử dụng log trực tiếp, trace và metrics từ Last9.

  • Xếp hạng sức khỏe dịch vụ — Sử dụng get_service_summary để xem số lượng request, throughput và lỗi 4xx/5xx trên toàn bộ hệ thống của bạn.
  • Tìm truy vấn database chậm — Sử dụng get_database_slow_queries để lấy các lần thực thi chậm nhất thực tế kèm trace ID để điều tra sâu.
  • Kéo log dịch vụ — Sử dụng get_service_logs để lấy các dòng log thô được lọc theo mức độ nghiêm trọng và nội dung.
  • Theo dõi một request cụ thể — Sử dụng get_trace_waterfall để xem waterfall parent/child cho một trace ID chính xác.
  • Kiểm tra trạng thái cảnh báo — Sử dụng get_alert_rule_state để xem lịch sử kích hoạt theo từng quy tắc cảnh báo trong một khoảng thời gian.
  • Quản lý dashboard — Sử dụng create_dashboard để xây dựng dashboard tùy chỉnh với các panel và truy vấn.

Tài liệu

Máy chủ MCP Last9

last9 mcp demo

Tác nhân AI của bạn không biết điều gì đang hỏng trong môi trường production. Công cụ này khắc phục điều đó.

Máy chủ MCP Last9 kết nối Claude, Cursor, Windsurf và bất kỳ trợ lý AI nào hỗ trợ MCP trực tiếp với dữ liệu quan sát production của bạn — log, metric, trace, exception, truy vấn cơ sở dữ liệu, cảnh báo và bản triển khai. Tác nhân không còn đoán mò mà bắt đầu đọc tín hiệu thực tế.


Bắt đầu trong 30 giây (Hosted)

Không cần cài đặt binary. Không cần quản lý token. Một URL, OAuth trong trình duyệt, xong.

Tìm org slug của bạn trong URL Last9: app.last9.io/<org_slug>/...

Claude Code

claude mcp add --transport http last9 https://app.last9.io/api/v4/organizations/<org_slug>/mcp

/mcp, chọn last9, xác thực. Vậy là xong.

Cursor

Settings > MCP > Add New MCP Server:

{
  "mcpServers": {
    "last9": {
      "type": "http",
      "url": "https://app.last9.io/api/v4/organizations/<org_slug>/mcp"
    }
  }
}

Nhấp Connect, hoàn tất OAuth.

VS Code

Yêu cầu v1.99+. Mở Command Palette → MCP: Add Server, dán URL, xác thực.

Hoặc trực tiếp trong settings.json:

{
  "mcp": {
    "servers": {
      "last9": {
        "type": "http",
        "url": "https://app.last9.io/api/v4/organizations/<org_slug>/mcp"
      }
    }
  }
}

Windsurf

Settings > Cascade > Open MCP Marketplace > biểu tượng bánh răng (mcp_config.json):

{
  "mcpServers": {
    "last9": {
      "serverUrl": "https://app.last9.io/api/v4/organizations/<org_slug>/mcp"
    }
  }
}

Claude Web/Desktop

Settings > Connectors > Add custom connector. Đặt tên là last9, dán URL, xác thực.

Yêu cầu quyền admin cho tổ chức Claude của bạn.


Tự lưu trữ (STDIO)

Sử dụng khi máy khách MCP của bạn không hỗ trợ giao thức HTTP, hoặc khi bạn cần máy chủ chạy cục bộ.

Cài đặt

Homebrew:

brew install last9/tap/last9-mcp

NPM:

npm install -g @last9/mcp-server@latest
# or directly:
npx -y @last9/mcp-server@latest

Bản phát hành binary (Windows / thủ công):

Tải xuống từ GitHub Releases:

Nền tảngKho lưu trữ
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

Lấy Refresh Token

Chỉ admin mới có thể tạo token.

  1. Đi tới API Access
  2. Nhấp Generate Token với quyền Write
  3. Sao chép nó

Cấu hình máy khách

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>"
      }
    }
  }
}

Nơi dán cấu hình này:

Máy kháchVị trí
Claude Web/DesktopSettings > Developer > Edit Config (claude_desktop_config.json)
CursorSettings > Cursor Settings > MCP > Add New Global MCP Server
WindsurfSettings > Cascade > MCP Marketplace > biểu tượng bánh răng (mcp_config.json)
VS CodeBọc trong { "mcp": { "servers": { ... } } } trong settings.jsonchi tiết
Cấu hình STDIO cho VS Code
{
  "mcp": {
    "servers": {
      "last9": {
        "type": "stdio",
        "command": "/opt/homebrew/bin/last9-mcp",
        "env": {
          "LAST9_REFRESH_TOKEN": "<your_refresh_token>"
        }
      }
    }
  }
}

Đối với NPM: sử dụng "command": "npx" và thêm "args": ["-y", "@last9/mcp-server@latest"].

Windows

Sau khi tải xuống từ GitHub Releases, giải nén và trỏ đến đường dẫn đầy đủ:

{
  "mcpServers": {
    "last9": {
      "command": "C:\\Users\\<user>\\AppData\\Local\\Programs\\last9-mcp-server.exe",
      "env": {
        "LAST9_REFRESH_TOKEN": "<your_refresh_token>"
      }
    }
  }
}

Đường dẫn NPM dễ hơn trên Windows — không cần quản lý đường dẫn.

Biến môi trường

BiếnMặc địnhMô tả
LAST9_REFRESH_TOKEN(bắt buộc)Refresh token từ API Access
LAST9_DATASOURCEmặc định của orgTên datasource/cluster — hữu ích khi bạn có nhiều cluster Levitate
LAST9_API_HOSTapp.last9.ioGhi đè host API
LAST9_TOOLSETStất cả công cụCác bộ công cụ phân tách bằng dấu phẩy để hiển thị (logs, traces, metrics, alerts, dashboards, investigate, all). Bí danh: LAST9_MCP_TOOLSETS
LAST9_MAX_GET_LOGS_ENTRIES5000Số mục tối đa cho các yêu cầu get_logs được phân khối
LAST9_DEBUG_CHUNKINGfalseĐặt true để ghi log chi tiết lập kế hoạch phân khối cho get_logs, get_service_logs, get_traces
LAST9_DISABLE_TELEMETRYtrueĐặt false để bật tracing OTel nội bộ
OTEL_SDK_DISABLEDBiến môi trường OTel chuẩn. Ghi đè LAST9_DISABLE_TELEMETRY
OTEL_EXPORTER_OTLP_ENDPOINTEndpoint collector OTLP (chỉ khi telemetry được bật)
OTEL_EXPORTER_OTLP_HEADERSHeader xác thực OTLP (chỉ khi telemetry được bật)

Những gì công cụ này có thể làm

Sức khỏe dịch vụ

  • get_service_summary — Các hàng (service, env) của fleet được xếp hạng: interval request_count, throughput_rpm, số lượng HTTP 4xx/5xx và số lỗi gRPC
  • get_service_environments — Các môi trường khả dụng cho dịch vụ của bạn. Chạy công cụ này trước — các công cụ APM khác cần env từ đây
  • get_service_performance_details — Phân tích đầy đủ: throughput, tỷ lệ lỗi, p50/p90/p95/avg/max, apdex, tính khả dụng
  • get_service_operations_summary — Các thao tác được nhóm theo endpoint HTTP, lệnh gọi DB, nhắn tin, máy khách HTTP
  • get_service_dependency_graph — Bản đồ phụ thuộc với throughput, độ trễ và tỷ lệ lỗi cho upstream/downstream/infra
  • get_apm_service_deviations — So sánh cửa sổ hiện tại với đường cơ sở có cùng thời lượng: suy giảm/cải thiện, đối chiếu Apdex và kết quả cuối cùng (fleet hoặc dịch vụ đơn lẻ)
  • get_exceptions — Exception phía máy chủ với bộ lọc dịch vụ và span

Quan sát cơ sở dữ liệu

Bốn công cụ đi thẳng vào hiệu suất cơ sở dữ liệu của bạn, được suy ra từ span trace OpenTelemetry. Không cần instrumentation bổ sung nếu bạn đã sử dụng OTel.

  • get_databases — Khám phá tất cả cơ sở dữ liệu trong hạ tầng của bạn: loại DB, host, throughput (truy vấn/phút), độ trễ p95, tỷ lệ lỗi, số lượng dịch vụ phụ thuộc
  • get_database_slow_queries — Các lần thực thi truy vấn chậm nhất thực tế, được sắp xếp theo thời lượng, kèm trace ID để đào sâu vào trace đầy đủ
  • get_database_queries — Mẫu truy vấn và tổng hợp: tần suất truy vấn chạy, thời lượng trung bình/p95, tỷ lệ lỗi
  • get_database_server_metrics — Số liệu phía máy chủ từ chính host DB (CPU, kết nối, tỷ lệ buffer hit — phụ thuộc vào hệ thống DB của bạn)

Hỗ trợ PostgreSQL, MySQL, MongoDB, Redis, Aerospike và mọi thứ khác mà OTel trace có thuộc tính db_system.

Prometheus / PromQL

  • prometheus_range_query — Truy vấn phạm vi PromQL trên bất kỳ metric nào
  • prometheus_instant_query — Truy vấn tức thời; sử dụng các hàm rollup như avg_over_time, sum_over_time
  • prometheus_label_values — Giá trị nhãn cho một chuỗi nhất định
  • prometheus_labels — Tất cả nhãn khả dụng cho một chuỗi

Trỏ các công cụ này đến datasource/cluster khác với mặc định bằng cách đặt LAST9_DATASOURCE.

Log

  • get_logs — Truy vấn log pipeline JSON đầy đủ (tổng hợp, bộ lọc, trích xuất trường)
  • get_service_logs — Dòng log thô cho một dịch vụ, có thể lọc theo mức độ nghiêm trọng và nội dung body
  • get_log_attributes — Danh mục toàn cục các thuộc tính trong lược đồ log cho một khoảng thời gian
  • get_log_attributes_for_pipeline — Các trường log thực sự hiện diện cho một pipeline đang chạy (khám phá có phạm vi), mỗi trường kèm filter_field chính xác
  • get_drop_rules — Quy tắc drop log từ Last9 Control Plane
  • add_drop_rule — Tạo quy tắc drop mới để cắt giảm khối lượng log tại nguồn

Trace

  • get_traces — Truy vấn trace pipeline JSON cho tìm kiếm rộng và tổng hợp
  • get_service_traces — Trace theo ID trace chính xác hoặc tên dịch vụ. Sử dụng khi bạn có ID trace — nhanh hơn
  • get_trace_attributes — Danh mục toàn cục các thuộc tính trong lược đồ trace
  • get_trace_attributes_for_pipeline — Các thuộc tính thực sự hiện diện cho một pipeline đang chạy (khám phá có phạm vi), mỗi thuộc tính kèm filter_field chính xác
  • get_trace_attribute_values — Các giá trị riêng biệt cho một thuộc tính trace, tùy chọn giới hạn phạm vi theo pipeline
  • get_trace_attribute_deviations — Xếp hạng các giá trị thuộc tính khác nhau giữa hai nhóm span có giới hạn (chậm so với nhanh, lỗi so với không lỗi, hoặc hai khoảng thời gian). Tương quan, không phải nguyên nhân
  • get_trace_waterfall — Một trace chính xác dưới dạng waterfall cha/con với self-time hợp nhất theo khoảng, span chậm nhất và cảnh báo đồ thị

Sự kiện thay đổi & Cảnh báo

  • get_change_events — Bản triển khai, thay đổi cấu hình, rollback. Tương quan sự cố với những gì đã thay đổi
  • get_alert_config — Cấu hình quy tắc cảnh báo — có thể tìm kiếm theo tên, mức độ nghiêm trọng, loại, thẻ
  • get_alerts — Cảnh báo đang kích hoạt trong một khoảng thời gian
  • get_alert_rule_state — Trạng thái kích hoạt lịch sử (1/0) cho mỗi quy tắc cảnh báo trong một khoảng thời gian, được nhóm theo rule_id. Có thể lọc theo nhóm cảnh báo, tên quy tắc, bộ lọc nhãn và trạng thái.
  • get_notification_channels — Các kênh thông báo đã cấu hình (Slack, PagerDuty, email, v.v.)

Bảng điều khiển tùy chỉnh

  • list_dashboards — Tất cả bảng điều khiển tùy chỉnh trong tổ chức của bạn: ID, tên và siêu dữ liệu
  • get_dashboard — Định nghĩa bảng điều khiển đầy đủ theo ID, bao gồm panel và truy vấn
  • create_dashboard — Tạo bảng điều khiển tùy chỉnh mới với panel, truy vấn và siêu dữ liệu
  • update_dashboard — Cập nhật bảng điều khiển hiện có theo ID (bảng điều khiển hệ thống chỉ đọc sẽ trả về lỗi)
  • delete_dashboard — Xóa bảng điều khiển tùy chỉnh theo ID
  • list_dashboard_snapshots — Ảnh chụp nhanh đóng băng tại một thời điểm cho một bảng điều khiển (chỉ siêu dữ liệu)
  • get_dashboard_snapshot — Ảnh chụp nhanh đóng băng đầy đủ bao gồm dữ liệu panel cho RCA / chế độ xem chia sẻ
  • delete_dashboard_snapshot — Xóa ảnh chụp nhanh đóng băng theo ID

Phân giải tên mờ

  • did_you_mean — Khi tác nhân không chắc chắn về tên một thực thể, công cụ này trả về các kết quả khớp gần nhất từ danh mục của bạn (dịch vụ, môi trường, host, cơ sở dữ liệu, bản triển khai/namespace K8s, job). Tối đa 3 gợi ý kèm điểm tương đồng. Máy chủ tự động gọi công cụ này trước hầu hết các công cụ khác khi tra cứu tên trả về rỗng.

Cách hoạt động

Deep link trên mọi phản hồi. Mỗi công cụ trả về trường deep_link — một URL trực tiếp vào bảng điều khiển Last9 cho chính xác truy vấn và khoảng thời gian đó. Tác nhân có thể đưa cho bạn liên kết; bạn nhấp vào; bạn ở đó.

Bộ công cụ. Theo mặc định, máy chủ hiển thị mọi công cụ. Các host tự động hóa chỉ cần điều tra (log/trace/metric) có thể đặt LAST9_TOOLSETS=investigate (hoặc truyền --toolsets=investigate) để tools/list giữ nhỏ mà không cần vô hiệu hóa hàng loạt phía máy khách. Các gói có tên: logs, traces, metrics, alerts, dashboards, investigate, all. Tên không xác định sẽ thất bại nhanh. Riêng gói metrics không bao gồm list_datasources hoặc did_you_mean — hãy sử dụng investigate (hoặc kết hợp các bộ công cụ) khi bạn cần các trợ giúp khám phá đó.

Tài nguyên tham chiếu công cụ. Các sổ tay dài logjson/tracejson/service-logs/metrics là tài nguyên MCP (last9://reference/logjson, last9://reference/tracejson, last9://reference/service_logs, last9://reference/metrics), không phải văn bản mô tả công cụ luôn bật. Các quy tắc truy vấn quan trọng vẫn nằm trong mô tả công cụ để các tác nhân không bao giờ gọi resources/read vẫn nhận được hướng dẫn xây dựng chính xác. Khám phá các trường riêng của org bằng get_log_attributes / get_log_attributes_for_pipeline (và các công cụ tương đương cho trace) — chúng không được chèn vào mô tả.

Kết quả lớn được phân khối. get_logsget_traces xử lý các tập kết quả lớn thông qua phân khối thay vì cắt bớt. Giới hạn mặc định là 5000 mục cho log; có thể cấu hình qua LAST9_MAX_GET_LOGS_ENTRIES.


Phát triển

Chế độ HTTP, kiểm thử curl, xây dựng từ mã nguồn

Chạy ở chế độ HTTP

export LAST9_REFRESH_TOKEN="your_refresh_token"
export LAST9_HTTP=true
export LAST9_PORT=8080
./last9-mcp-server

Máy chủ khởi động tại http://localhost:8080/mcp.

Kiểm thử bằng curl

Trình xử lý HTTP Streamable chạy ở chế độ không trạng thái (stateless), vì vậy mọi yêu cầu đều được phục vụ độc lập. Bắt tay initialize và header Mcp-Session-Id là tùy chọn — các máy khách gửi chúng vẫn hoạt động (header được chấp nhận và bỏ qua), và máy khách cũng có thể bỏ qua để chuyển thẳng đến tools/list / tools/call. Mỗi công cụ là một truy vấn yêu cầu/phản hồi độc lập; máy chủ không gửi thông báo từ máy chủ đến máy khách, vì vậy GET /mcp (luồng SSE) trả về 405.

# 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
        }
      }
    }'

Xây dựng từ mã nguồn

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 dành cho phát triển cục bộ. Để sử dụng thực tế, điểm cuối HTTP được lưu trữ sẽ dễ dàng hơn.


Tham chiếu công cụ

Tất cả tham số, tiêu chuẩn đầu vào thời gian và chi tiết

Đầu vào thời gian

  • Thời gian tuyệt đối (start_time_iso/end_time_iso, hoặc time_iso) được ưu tiên hơn lookback_minutes.
  • Đối với cửa sổ tương đối: sử dụng lookback_minutes.
  • Đối với cửa sổ tuyệt đối: sử dụng RFC3339/ISO8601 — 2026-02-09T15:04:05Z.
  • YYYY-MM-DD HH:MM:SS kế thừa chỉ được chấp nhận cho mục đích tương thích.

get_exceptions

  • limit (số nguyên, tùy chọn): Số ngoại lệ tối đa. Mặc định: 20.
  • lookback_minutes (số nguyên, tùy chọn): Mặc định: 60.
  • start_time_iso / end_time_iso (chuỗi, tùy chọn): Phạm vi thời gian tuyệt đối.
  • service_name (chuỗi, tùy chọn): Lọc theo dịch vụ.
  • span_name (chuỗi, tùy chọn): Lọc theo tên span.
  • env (chuỗi, tùy chọn): Lọc theo môi trường.

get_service_summary

  • start_time_iso / end_time_iso (chuỗi, tùy chọn)
  • env (chuỗi, tùy chọn): Biểu thức chính quy PromQL. Mặc định là .*. Khớp chính xác cần có neo (ví dụ: ^prod$).
  • sort_by (chuỗi, tùy chọn): request_count (mặc định), throughput_rpm, http_4xx_count, http_5xx_count, hoặc grpc_error_count.
  • limit (số nguyên, tùy chọn): Số hàng xếp hạng tối đa. Bỏ qua hoặc 0 nghĩa là 10; giá trị trên 100 sẽ được giới hạn xuống 100.

get_service_environments

  • start_time_iso / end_time_iso (chuỗi, tùy chọn)

Tất cả các công cụ APM khác đều yêu cầu giá trị env. Sử dụng "" nếu giá trị này trả về rỗng.

get_service_performance_details

  • service_name (chuỗi, bắt buộc)
  • lookback_minutes (số nguyên, tùy chọn): Mặc định: 60.
  • start_time_iso / end_time_iso (chuỗi, tùy chọn)
  • env (chuỗi, tùy chọn): Mặc định là prod.

get_service_operations_summary

  • service_name (chuỗi, bắt buộc)
  • lookback_minutes (số nguyên, tùy chọn): Mặc định: 60.
  • start_time_iso / end_time_iso (chuỗi, tùy chọn)
  • env (chuỗi, tùy chọn): Mặc định là prod.

get_service_dependency_graph

  • service_name (chuỗi, tùy chọn)
  • lookback_minutes (số nguyên, tùy chọn): Mặc định: 60.
  • start_time_iso / end_time_iso (chuỗi, tùy chọn)
  • env (chuỗi, tùy chọn): Mặc định là prod.

get_apm_service_deviations

  • service_name (chuỗi, tùy chọn): Bỏ qua cho phạm vi toàn bộ hệ thống; cung cấp cho một dịch vụ và các tương quan hoạt động của nó.
  • lookback_minutes (số nguyên, tùy chọn): Cửa sổ hiện tại. Mặc định: 60.
  • start_time_iso / end_time_iso (chuỗi, tùy chọn): Cửa sổ hiện tại tường minh.
  • baseline_start_time_iso / baseline_end_time_iso (chuỗi, tùy chọn): Đường cơ sở tường minh. Mặc định là cửa sổ có cùng thời lượng liền kề trước đó.
  • datasource (chuỗi, tùy chọn): Giới hạn so sánh trong một nguồn dữ liệu.
  • env (chuỗi, tùy chọn): Mặc định là prod.
  • max_services / max_operations (số nguyên, tùy chọn): Mặc định 10, tối đa 10 mỗi loại.

get_databases

  • env (chuỗi, tùy chọn): Lọc theo môi trường. Mặc định: tất cả.
  • lookback_minutes (số nguyên, tùy chọn): Mặc định: 60.
  • start_time_iso / end_time_iso (chuỗi, tùy chọn)

get_database_slow_queries

  • db_system (chuỗi, tùy chọn): ví dụ: postgresql, mysql, mongodb, redis.
  • host (chuỗi, tùy chọn): Máy chủ cơ sở dữ liệu (net_peer_name).
  • service_name (chuỗi, tùy chọn): Tên dịch vụ gọi.
  • env (chuỗi, tùy chọn)
  • min_duration_ms (số thực, tùy chọn): Thời lượng truy vấn tối thiểu tính bằng ms.
  • lookback_minutes (số nguyên, tùy chọn): Mặc định: 60.
  • start_time_iso / end_time_iso (chuỗi, tùy chọn)
  • limit (số nguyên, tùy chọn): Mặc định: 20.

get_database_queries

  • db_system (chuỗi, tùy chọn)
  • host (chuỗi, tùy chọn)
  • service_name (chuỗi, tùy chọn)
  • env (chuỗi, tùy chọn)
  • lookback_minutes (số nguyên, tùy chọn): Mặc định: 60.
  • start_time_iso / end_time_iso (chuỗi, tùy chọn)
  • limit (số nguyên, tùy chọn): Mặc định: 20.

get_database_server_metrics

  • db_system (chuỗi, bắt buộc): ví dụ: postgresql, mysql, mongodb, redis, aerospike.
  • host (chuỗi, tùy chọn)
  • lookback_minutes (số nguyên, tùy chọn): Mặc định: 60.
  • start_time_iso / end_time_iso (chuỗi, tùy chọn)

prometheus_range_query

  • query (chuỗi, bắt buộc): Truy vấn PromQL.
  • start_time_iso / end_time_iso (chuỗi, tùy chọn): Mặc định là 60 phút gần nhất.
  • lookback_minutes (số thực, tùy chọn): Mặc định: 60.

prometheus_instant_query

  • query (chuỗi, bắt buộc)
  • time_iso (chuỗi, tùy chọn): Mặc định là hiện tại.
  • lookback_minutes (số thực, tùy chọn)

prometheus_label_values

  • match_query (chuỗi, tùy chọn): Bộ lọc PromQL.
  • label (chuỗi, bắt buộc): Tên nhãn.
  • start_time_iso / end_time_iso (chuỗi, tùy chọn)

prometheus_labels

  • match_query (chuỗi, tùy chọn): Bộ lọc PromQL.
  • start_time_iso / end_time_iso (chuỗi, tùy chọn)

get_logs

  • logjson_query (mảng, bắt buộc): Truy vấn đường ống JSON.
  • lookback_minutes (số nguyên, tùy chọn): Mặc định: 5.
  • start_time_iso / end_time_iso (chuỗi, tùy chọn)
  • limit (số nguyên, tùy chọn): Mặc định máy chủ: 5000.
  • index (chuỗi, tùy chọn): physical_index:<name> hoặc rehydration_index:<block_name>.

Đối với kiểm kê dịch vụ dựa trên nhật ký, hãy truy vấn physical_index_service_count trước:

sum by (name, service_name, env) (physical_index_service_count{destination="logs"})

Sử dụng service_name làm ServiceName, env làm môi trường khi có, và name làm tên chỉ mục vật lý. Nếu name="default", bỏ qua index; đối với chỉ mục vật lý không mặc định do người dùng chọn, hãy truyền index: "physical_index:<name>". Nếu backend từ chối lọc chỉ mục vật lý tường minh, hãy thử lại mà không có index và báo cáo rằng lọc chỉ mục vật lý tường minh không khả dụng cho backend đó.

get_service_logs

  • service_name (chuỗi, bắt buộc)
  • lookback_minutes (số nguyên, tùy chọn): Mặc định: 60.
  • limit (số nguyên, tùy chọn): Mặc định: 20.
  • env (chuỗi, tùy chọn)
  • severity_filters (mảng, tùy chọn): ví dụ: ["error", "warn"]. Logic OR.
  • body_filters (mảng, tùy chọn): ví dụ: ["timeout", "failed"]. Logic OR.
  • start_time_iso / end_time_iso (chuỗi, tùy chọn)
  • index (chuỗi, tùy chọn)

Nhiều loại bộ lọc kết hợp với AND. Mỗi mảng sử dụng OR nội bộ. Sử dụng get_logs cho số liệu tổng hợp rộng trước; chỉ sử dụng get_service_logs sau khi thu hẹp phạm vi đến một dịch vụ/môi trường/chỉ mục và một tập mẫu nhỏ.

get_log_attributes

  • lookback_minutes (số nguyên, tùy chọn): Mặc định: 15.
  • start_time_iso / end_time_iso (chuỗi, tùy chọn)
  • region (chuỗi, tùy chọn)
  • index (chuỗi, tùy chọn)

get_log_attributes_for_pipeline

  • pipeline (mảng, bắt buộc): Các giai đoạn lọc trước để giới hạn phạm vi khám phá, ví dụ: [{"type":"filter","query":{"$eq":["ServiceName","<service>"]}}].
  • lookback_minutes (số nguyên, tùy chọn): Mặc định: 15.
  • start_time_iso / end_time_iso (chuỗi, tùy chọn)
  • region (chuỗi, tùy chọn)
  • index (chuỗi, tùy chọn)

get_drop_rules

Không có tham số. Liệt kê các quy tắc loại bỏ qua GET /otel_settings/drop?region=....

add_drop_rule

  • name (chuỗi, bắt buộc)
  • filters (mảng, bắt buộc): Mỗi bộ lọc: key, value, operator (equals/not_equals), conjunction (and).
  • Các khóa bộ lọc phải sử dụng attributes["key_name"] hoặc resource.attributes["key_name"] (bắt buộc bởi API Last9).
  • Tạo quy tắc qua POST /otel_settings/drop?region=...&cluster_id=....

get_traces

Sử dụng cho các tìm kiếm và tổng hợp rộng. Để tra cứu ID trace chính xác, hãy sử dụng get_service_traces.

  • tracejson_query (mảng, bắt buộc)
  • start_time_iso / end_time_iso (chuỗi, tùy chọn)
  • lookback_minutes (số nguyên, tùy chọn): Mặc định: 60.
  • limit (số nguyên, tùy chọn): Mặc định: 5000.

get_service_traces

Chính xác một trong trace_id hoặc service_name là bắt buộc.

  • trace_id (chuỗi, tùy chọn): Khoảng thời gian nhìn lại mặc định: 72 giờ.
  • service_name (chuỗi, tùy chọn): Khoảng thời gian nhìn lại mặc định: 60 phút.
  • lookback_minutes (số nguyên, tùy chọn)
  • start_time_iso / end_time_iso (chuỗi, tùy chọn)
  • limit (số nguyên, tùy chọn): Mặc định: 10.
  • env (chuỗi, tùy chọn)

get_trace_attributes

  • lookback_minutes (số nguyên, tùy chọn): Mặc định: 15.
  • start_time_iso / end_time_iso (chuỗi, tùy chọn)
  • region (chuỗi, tùy chọn)

get_trace_attributes_for_pipeline

  • pipeline (mảng, bắt buộc): Các giai đoạn lọc trước để giới hạn phạm vi khám phá, ví dụ: [{"type":"filter","query":{"$eq":["ServiceName","<service>"]}}].
  • lookback_minutes (số nguyên, tùy chọn): Mặc định: 15.
  • start_time_iso / end_time_iso (chuỗi, tùy chọn)
  • region (chuỗi, tùy chọn)

get_trace_attribute_values

  • tag_name (chuỗi, bắt buộc): Tên thuộc tính từ get_trace_attributes (ví dụ: resource_department hoặc attributes['http.method']).
  • pipeline (mảng, tùy chọn): Các giai đoạn lọc trước để giới hạn phạm vi giá trị; bỏ qua để lấy giá trị toàn cục.
  • region (chuỗi, tùy chọn)

get_trace_attribute_deviations

  • comparison_mode (chuỗi, bắt buộc): latency, errors, hoặc time.
  • service_name (chuỗi, bắt buộc)
  • environment (chuỗi, bắt buộc): Giá trị deployment.environment chính xác.
  • operation (chuỗi, tùy chọn)
  • filters (mảng, tùy chọn): Các điều kiện lọc JSON trace.
  • candidate_attributes (mảng, tùy chọn): Tối đa 8; bỏ qua để khám phá có giới hạn.
  • latency_threshold_ms (số, tùy chọn): Bắt buộc cho chế độ latency; bị từ chối cho các chế độ khác.
  • start_time_iso / end_time_iso (chuỗi, tùy chọn)
  • lookback_minutes (số nguyên, tùy chọn): Mặc định: 15. Tối đa: 15.
  • baseline_start_time_iso / baseline_end_time_iso (chuỗi, tùy chọn): Bắt buộc cho chế độ time; không chồng lấn và có thời lượng bằng với cửa sổ mục tiêu.
  • minimum_cohort_size (số nguyên, tùy chọn): Mặc định: 100. Tối thiểu: 20.
  • minimum_value_support (số nguyên, tùy chọn): Mặc định: 20. Tối thiểu: 10.
  • limit (số nguyên, tùy chọn): Mặc định: 10. Tối đa: 10.

Yêu cầu khả năng backend đi kèm phải được bật.

get_trace_waterfall

  • trace_id (chuỗi, bắt buộc)
  • environment (chuỗi, tùy chọn)
  • start_time_iso / end_time_iso (chuỗi, tùy chọn)
  • lookback_minutes (số nguyên, tùy chọn): Mặc định: 4320 (72 giờ).
  • selected_span_id (chuỗi, tùy chọn): Trả về thuộc tính, sự kiện và liên kết cho span đó.
  • max_spans (số nguyên, tùy chọn): Mặc định: 500. Tối đa: 1000.

Trả về một phong bì investigation-evidence/v1; waterfall nằm dưới data.

get_change_events

  • start_time_iso / end_time_iso (chuỗi, tùy chọn)
  • lookback_minutes (số nguyên, tùy chọn): Mặc định: 60.
  • service_name (chuỗi, tùy chọn)
  • env (chuỗi, tùy chọn)
  • event_name (chuỗi, tùy chọn): Gọi không có tham số này trước để lấy available_event_names.

get_alert_config

  • search_term (chuỗi, tùy chọn): Tìm kiếm văn bản tự do trên tên, nhóm, nguồn dữ liệu, thẻ.
  • rule_name (chuỗi, tùy chọn)
  • severity (chuỗi, tùy chọn)
  • rule_type (chuỗi, tùy chọn): static hoặc anomaly.
  • alert_group_name / alert_group_type / data_source_name (chuỗi, tùy chọn)
  • tags (mảng, tùy chọn): Tất cả phải khớp (logic AND).

get_alerts

  • time_iso (chuỗi, tùy chọn): Thời điểm đánh giá theo RFC3339.
  • window (số nguyên, tùy chọn): Khoảng thời gian nhìn lại tính bằng giây. Mặc định: 900. Phạm vi: 60–86400.
  • lookback_minutes (số nguyên, tùy chọn): Phạm vi: 1–1440.

get_alert_rule_state

  • start_time (số nguyên, bắt buộc): Thời điểm bắt đầu của phạm vi theo Unix epoch (bao gồm).
  • end_time (số nguyên, bắt buộc): Thời điểm kết thúc của phạm vi theo Unix epoch (bao gồm).
  • step (số nguyên, bắt buộc): Độ phân giải tính bằng giây giữa các mẫu. Số lượng mẫu ((end_time - start_time) / step + 1) bị giới hạn ở mức 100.
  • alert_group_id (chuỗi, tùy chọn): Lọc theo ID nhóm cảnh báo.
  • rule_name (chuỗi, tùy chọn): Bộ lọc biểu thức chính quy trên tên quy tắc.
  • alert_group_name (chuỗi, tùy chọn): Bộ lọc biểu thức chính quy trên tên nhóm cảnh báo.
  • label_filters (chuỗi, tùy chọn): Bộ lọc nhãn key=value phân tách bằng dấu phẩy.
  • state (chuỗi, tùy chọn): Lọc theo trạng thái (ví dụ: firing).

Trả về một bản đồ JSON của rule_id -> [{timestamp, is_firing}]. Một dấu mốc thời gian tại đó một quy tắc vắng mặt trong phản hồi từ nguồn được báo cáo là is_firing=0 — điều này có nghĩa là "không được quan sát thấy đang kích hoạt", không phải là trạng thái bình thường đã được xác nhận.

get_notification_channels

Không có tham số. Trả về tất cả các kênh thông báo đã cấu hình (Slack, PagerDuty, email, webhook, v.v.).

did_you_mean

  • query (chuỗi, bắt buộc): Tên cần tìm kiếm — một phần, sai chính tả hoặc viết tắt.
  • type (chuỗi, tùy chọn): Giới hạn theo loại thực thể: service, environment, host, database, k8s_deployment, k8s_namespace, job.

Trả về tối đa 3 kết quả khớp gần nhất kèm điểm tương đồng. Sử dụng công cụ này trước bất kỳ lời gọi công cụ nào khi tên thực thể không chắc chắn. Nếu lời gọi trước đó trả về kết quả rỗng, hãy thử công cụ này trước khi thử lại.

list_dashboards

Không có tham số. Trả về tất cả dashboard tùy chỉnh trong tổ chức dưới dạng mảng JSON với id, name, và siêu dữ liệu.

get_dashboard

  • id (chuỗi, bắt buộc): UUID của dashboard.
  • region (chuỗi, tùy chọn): Vùng cho việc điền truy vấn bảng điều khiển. Mặc định là vùng nguồn dữ liệu đã cấu hình.

create_dashboard

  • dashboard (đối tượng, bắt buộc): Định nghĩa dashboard với namepanels[]. Mỗi bảng điều khiển yêu cầu name, version, layout (x, y, w, h), visualization.type, và queries[].
  • metadata (đối tượng, tùy chọn): Siêu dữ liệu dashboard — các trường _category_type (ví dụ: {"_category":"custom","_type":"metrics"}).

update_dashboard

  • id (chuỗi, bắt buộc): UUID của dashboard cần cập nhật.
  • dashboard (đối tượng, bắt buộc): Nội dung dashboard thay thế hoàn toàn (cùng cấu trúc với create).
  • metadata (đối tượng, tùy chọn): Siêu dữ liệu thay thế. Dashboard hệ thống chỉ đọc trả về lỗi 403.

delete_dashboard

  • id (chuỗi, bắt buộc): UUID của dashboard cần xóa. Các dashboard hệ thống chỉ đọc không thể bị xóa.

list_dashboard_snapshots

  • dashboard_id (chuỗi, bắt buộc): UUID của dashboard cần liệt kê các ảnh chụp nhanh.

Chỉ trả về siêu dữ liệu (id, name, expires_at, v.v.). Sử dụng get_dashboard_snapshot để lấy dữ liệu bảng điều khiển đã đóng băng.

get_dashboard_snapshot

  • id (chuỗi, bắt buộc): UUID của ảnh chụp nhanh.

Trả về ảnh chụp nhanh đã đóng băng đầy đủ bao gồm dashboard_definition, panel_data, time_range, và variables.

delete_dashboard_snapshot

  • id (chuỗi, bắt buộc): UUID của ảnh chụp nhanh cần xóa.

Kiểm thử

Xem TESTING.md để biết cách thiết lập và hướng dẫn kiểm thử tích hợp.


MseeP.ai Security Assessment Badge