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.

GitHub
62
Dùng thử MCP nàyĐược tài trợ

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

  • Điều tra tình trạng sức khỏe dịch vụ — Yêu cầu tóm tắt tổng quan về đội ngũ theo thứ hạng về số lượng yêu cầu, thông lượng và tỷ lệ lỗi thông qua get_service_summary.

  • Kéo nhật ký dịch vụ thô — Truy xuất các dòng nhật ký đã lọc theo mức độ nghiêm trọng hoặc nội dung thân cho một dịch vụ cụ thể bằng get_service_logs.

  • Theo dõi hiệu suất cơ sở dữ liệu — Khám phá các cơ sở dữ liệu, truy vấn chậm và mẫu truy vấn với get_databases và các công cụ liên quan.

  • Chạy truy vấn PromQL — Thực thi truy vấn phạm vi hoặc tức thời trên bất kỳ số liệu nào bằng prometheus_range_query hoặc prometheus_instant_query.

  • Tương quan thay đổi với sự cố — Tìm nạp các sự kiện triển khai và thay đổi cấu hình để hiểu điều gì đã làm thay đổi hành vi sản xuất qua get_change_events.

  • Quản lý bảng điều khiển tùy chỉnh — Liệt kê, tạo, cập nhật hoặc xác thực bảng điều khiển theo chương trình với list_dashboards và create_dashboard.

Tài liệu

Máy chủ MCP Last9

last9 mcp demo

Tác tử 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, metrics, traces, exceptions, truy vấn cơ sở dữ liệu, cảnh báo và triển khai. Tác tử 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

Nhập /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ảngLư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.json — chi tiết
Cấu hình STDIO 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 orgTên datasource/cluster — hữu ích khi bạn có nhiều cluster Levitate
LAST9_API_HOSTapp.last9.ioGhi đè máy chủ 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, profiles, grafana, 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_USE_LOG_SEARCH_APIfalseĐặt true để trả lời get_logs và get_service_logs bằng một lệnh gọi tìm kiếm phía máy chủ thay vì phân khối phía máy khách
LAST9_DEBUG_CHUNKINGfalseĐặt true để ghi 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 theo dõi OTel nội bộ
OTEL_SDK_DISABLED—Biến môi trường OTel tiêu chuẩn. Ghi đè LAST9_DISABLE_TELEMETRY
OTEL_EXPORTER_OTLP_ENDPOINT—Điểm cuối bộ thu OTLP (chỉ khi telemetry được bật)
OTEL_EXPORTER_OTLP_HEADERS—Tiêu đề xác thực OTLP (chỉ khi telemetry được bật)

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

Sức khỏe dịch vụ

  • get_service_summary — Các hàng (service, env) của nhóm dịch vụ được xếp hạng: request_count theo khoảng thời gian, 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/trung bình/tối đa, apdex, tính khả dụng
  • get_service_operations_summary — Các thao tác được nhóm theo điểm cuối 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: hồi quy/cải thiện, đối chiếu Apdex và kết quả cuối (nhóm dịch vụ hoặc dịch vụ đơn lẻ)
  • get_exceptions — Ngoại lệ 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ừ các span trace OpenTelemetry và, khi không có trace, từ các chỉ số hạ tầng như CloudWatch. Không cần công cụ đo lường 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, máy chủ, throughput (truy vấn/phút), độ trễ p95, tỷ lệ lỗi, số dịch vụ phụ thuộc. Cũng khám phá cơ sở dữ liệu từ các chỉ số hạ tầng như CloudWatch mà không cần công cụ đo lường trace — các hàng đó mang giá trị hoạt động thay vì chỉ số trace
  • 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, với ID trace để đào sâu vào các trace đầy đủ
  • get_database_queries — Các mẫu và tổng hợp truy vấn: 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 — Các chỉ số phía máy chủ từ chính máy chủ DB (CPU, kết nối, tỷ lệ trúng bộ nhớ đệm — phụ thuộc vào hệ thống DB của bạn)

Hỗ trợ PostgreSQL, MySQL, MongoDB, Redis, Aerospike và bất kỳ thứ gì khác mà OTel trace với thuộc tính db_system — cộng với các cơ sở dữ liệu được khám phá từ các chỉ số hạ tầng như CloudWatch, có các hàng mang giá trị hoạt động thay vì chỉ số trace.

Prometheus / PromQL

  • prometheus_range_query — Truy vấn phạm vi PromQL trên bất kỳ chỉ số nào
  • prometheus_instant_query — Truy vấn tức thời; sử dụng các hàm tổng hợp 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 một 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 — Các 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
  • get_log_attributes — Danh mục toàn cầu về 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 với filter_field chính xác của nó
  • get_drop_rules — Các quy tắc loại bỏ log từ Last9 Control Plane
  • add_drop_rule — Tạo quy tắc loại bỏ 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 các tìm kiếm và tổng hợp rộng
  • 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ầu về 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 với filter_field chính xác của nó
  • get_trace_attribute_values — Các giá trị riêng biệt cho một thuộc tính trace, tùy chọn có 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 vs nhanh, lỗi vs 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 thời gian tự thân hợp nhất khoảng thời gian, các span chậm nhất và cảnh báo đồ thị

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

  • get_change_events — Triển khai, thay đổi cấu hình, rollback. Tương quan sự cố với những gì đã thay đổi
  • get_alert_groups — Các nhóm cảnh báo Compass đã cấu hình với nhãn siêu dữ liệu, nhóm, cấp độ và số lượng quy tắc — bao gồm các nhóm không có quy tắc và các nhóm không đang kích hoạt
  • 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ác 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 các bảng và truy vấn
  • validate_dashboard — Lint + thực thi + phân loại chỉ đọc cho một id bảng điều khiển đã lưu hoặc một dashboard_definition nội tuyến trong cửa sổ ≤24h. Không bao giờ tạo hoặc cập nhật bảng điều khiển
  • create_dashboard — Tạo một bảng điều khiển tùy chỉnh hoàn toàn mới một lần (bảng, truy vấn, siêu dữ liệu). Sau khi id được trả về, tinh chỉnh bằng update_dashboard.
  • update_dashboard — Tinh chỉnh một bảng điều khiển hiện có theo ID (thay thế toàn bộ; bảng điều khiển hệ thống chỉ đọc trả về lỗi)
  • delete_dashboard — Xóa một 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 bảng để phân tích RCA / chế độ xem chia sẻ
  • delete_dashboard_snapshot — Xóa một ảnh chụp nhanh đóng băng theo ID

Hồ sơ liên tục

Yêu cầu hồ sơ liên tục được bật cho tổ chức. Khám phá dịch vụ trước bằng get_profile_services, sau đó kéo flamegraph hoặc các hàm được xếp hạng.

  • get_profile_services — Các dịch vụ có dữ liệu hồ sơ trong cửa sổ (lập chỉ mục trước khi truy vấn)
  • get_flamegraph — Cây flamegraph lồng nhau cho một dịch vụ (cpu mặc định; cũng có alloc, wall)
  • get_top_functions — Xếp hạng mẫu tự thân của các hàm nóng nhất cho một dịch vụ
  • get_profile_summary — Phân loại ngắn gọn bằng ngôn ngữ tự nhiên về hồ sơ cho một dịch vụ

Bảng điều khiển Grafana

Các công cụ chỉ đọc chống lại phiên bản Grafana của tổ chức (thông qua proxy Grafana của Last9). Các trường thông tin xác thực không bao giờ được trả về cho mô hình. Bật bằng LAST9_TOOLSETS=grafana (hoặc để trống các bộ công cụ cho tất cả công cụ).

  • grafana_search_dashboards — Tìm kiếm dashboard theo chuỗi con trong tiêu đề (phân trang; truncated: true khi đạt giới hạn)
  • grafana_get_dashboard — Tóm tắt dashboard theo uid (panel, biến, mục tiêu PromQL); full_json=true để lấy JSON Grafana thô
  • grafana_list_folders — Cây thư mục
  • grafana_list_folder_dashboards — Dashboard trong một thư mục (phân trang)
  • grafana_list_datasources — Danh sách nguồn dữ liệu không bao gồm thông tin xác thực

Giải quyết tên mờ

  • did_you_mean — Khi agent không chắc chắn về tên một thực thể, chức năng 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, máy chủ, cơ sở dữ liệu, deployment/namespace K8s, công việc). Tối đa 3 gợi ý kèm điểm tương đồng. Máy chủ tự động gọi chức năng này trước hầu hết các công cụ khi tra cứu tên trả về kết quả rỗng.

Hồ sơ dịch vụ

  • get_service_profile — Dữ liệu telemetry của một dịch vụ thực sự trông như thế nào, trước khi bạn truy vấn: tín hiệu nào tồn tại, ngôn ngữ và runtime, môi trường triển khai, hình dạng log của dịch vụ, và đề xuất sửa ingest nếu áp dụng. Giúp agent bỏ qua các công cụ trace khi dịch vụ không có trace, và phân tích mức độ nghiêm trọng từ nội dung log khi SeverityText trống thay vì lọc theo nó và không tìm thấy gì.

Cách hoạt động

Liên kết sâu trên mọi phản hồi. Mỗi công cụ trả về một trường deep_link — một URL trực tiếp vào dashboard Last9 cho đúng truy vấn và khoảng thời gian đó. Agent có thể đưa 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 máy chủ tự động hóa chỉ cần điều tra (log/trace/metrics/profiles) 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 client. Các gói có tên: logs, traces, metrics, alerts, dashboards, profiles, grafana, investigate, all. Tên không xác định sẽ lỗi nhanh. Riêng gói metrics không bao gồm list_datasources hoặc did_you_mean — hãy 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, last9://reference/investigation), 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 agent 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 tổ chức bằng get_log_attributes / get_log_attributes_for_pipeline (và các phiên bản tương đương cho trace)—chúng không được chèn vào mô tả.

Kết quả lớn được chia nhỏ. get_logs và get_traces xử lý các tập kết quả lớn thông qua chia nhỏ 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ý Streamable HTTP chạy ở chế độ không trạng thái, vì vậy mọi yêu cầu được phục vụ độc lập. Bắt tay initialize và tiêu đề Mcp-Session-Id là tùy chọn — các client gửi chúng vẫn hoạt động (tiêu đề được chấp nhận và bỏ qua), và client cũng có thể bỏ qua 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 máy chủ→client, 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ữ dễ dàng hơn.


Tham chiếu công cụ

Tất cả tham số, chuẩn nhập thời gian và chi tiết

Nhập 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: dùng lookback_minutes.
  • Đối với cửa sổ tuyệt đối: dùng RFC3339/ISO8601 — 2026-02-09T15:04:05Z.
  • YYYY-MM-DD HH:MM:SS cũ được chấp nhận 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): Khoảng 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 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ỏ trống hoặc 0 nghĩa là 10; giá trị trên 100 được kẹp 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 yêu cầu giá trị env. Dùng "" nếu chức năng 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ỏ trống cho phạm vi toàn bộ; 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 trước.
  • datasource (chuỗi, tùy chọn): Giới hạn so sánh vào 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. Chấp nhận biểu thức chính quy. Mặc định: tất cả.
  • lookback_minutes (số nguyên, tùy chọn): Mặc định: 60. Cửa sổ không được vượt quá 7 ngày.
  • 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 cuối.
  • 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 pipeline 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 danh sách dịch vụ dựa trên log, truy vấn physical_index_service_count trước:

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

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, truyền index: "physical_index:<name>". Nếu backend từ chối lọc chỉ mục vật lý tường minh, 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 dùng OR nội bộ. Dùng get_logs cho số liệu tổng hợp rộng trước; chỉ dùng get_service_logs sau khi thu hẹp về 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 để thu hẹp 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).
  • Khóa bộ lọc phải 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

Dùng cho tìm kiếm rộng và tổng hợp. Để tra cứu chính xác ID trace, 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

Bắt buộc chính xác một trong trace_id hoặc service_name.

  • 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.
  • 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): Giới hạn RFC3339 lịch sử; được ưu tiên hơn lookback_minutes.
  • 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 chỉ cho span đó.
  • max_spans (số nguyên, tùy chọn): Mặc định: 500. Tối đa: 1000.

Trả về một envelope 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 mà không có tham số này trước để lấy available_event_names.

get_alert_groups

Danh mục nhóm cảnh báo Compass đã cấu hình cho các cuộc kiểm tra changeboard / nhãn phủ sóng. Bao gồm các nhóm không có quy tắc và các nhóm không kích hoạt. Không trả về PromQL.

  • alert_group_name / alert_group_type / data_source_name (chuỗi, tùy chọn): Khớp chuỗi con không phân biệt hoa thường.
  • team / tier (chuỗi, tùy chọn): Khớp chính xác không phân biệt hoa thường trên siêu dữ liệu đã cấu hình.
  • label_key + label_value (chuỗi, tùy chọn): Phải được đặt cùng nhau. Khớp chính xác không phân biệt hoa thường trên một cặp metadata.labels — cả khóa và giá trị.

Trả về JSON nhỏ gọn {"count":N,"groups":[...]} với id, name, type, entity_class, team, tier, metadata.labels, và số lượng quy tắc. team / labels trống nghĩa là chưa được đặt.

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 gian đá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 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 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 ở 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 regex trên tên quy tắc.
  • alert_group_name (chuỗi, tùy chọn): Bộ lọc regex 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 thời gian mà tại đó một quy tắc vắng mặt trong phản hồi upstream được báo cáo là is_firing=0 — điều này có nghĩa là "không 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, webhooks, 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 với điểm tương đồng. Sử dụng công cụ này trước bất kỳ lệnh gọi công cụ nào khi tên thực thể không chắc chắn. Nếu lệnh gọi trước đó trả về kết quả trống, hãy thử công cụ này trước khi thử lại.

get_service_profile

  • service_name (chuỗi, bắt buộc): Dịch vụ để xây dựng hồ sơ telemetry.
  • datasource (chuỗi, tùy chọn): Tên nguồn dữ liệu. Bỏ qua để dùng mặc định.

Trả về một bản tóm tắt điều tra ngắn theo sau là hồ sơ đầy đủ dưới dạng JSON thô: sự hiện diện tín hiệu (logs/traces/metrics dưới dạng present, absent, hoặc unknown), ngôn ngữ và runtime, môi trường triển khai, signal_shape log (log_format, severity_set, level_field), và đề xuất sửa lỗi ingest khi áp dụng. Được xây dựng từ upstream và lưu cache với TTL khoảng 15 phút.

Gọi công cụ này trước bất kỳ cuộc điều tra nào theo phạm vi dịch vụ để việc chọn công cụ khớp với telemetry thực tế của dịch vụ — bỏ qua các công cụ trace khi traces là absent, và khi severity_set là none hoặc partial, phân tích mức độ nghiêm trọng từ level_field trong nội dung log thay vì sử dụng severity_filters. metrics luôn là unknown và dependencies không được điền trong v1. Khi cả logs và traces đều là absent, hãy xác nhận tên bằng did_you_mean trước khi kết luận dịch vụ không được giám sát.

list_dashboards

Không có tham số. Trả về tất cả cá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): Khu vực để điền truy vấn bảng điều khiển. Mặc định là khu vực nguồn dữ liệu đã cấu hình.

validate_dashboard

Chỉ đọc. Không bao giờ tạo hoặc cập nhật dashboard. Chấp nhận chính xác một trong dashboard_id hoặc dashboard_definition.

  • dashboard_id (chuỗi, tùy chọn): UUID dashboard đã lưu để xác thực.
  • dashboard_definition (đối tượng, tùy chọn): Nội dung dashboard chưa lưu nội tuyến (chạy thử thực sự).
  • start_time_iso / end_time_iso (chuỗi, tùy chọn): Cửa sổ xác thực (RFC3339). Phải ≤ 24 giờ.
  • region (chuỗi, tùy chọn): Khu vực để thực thi truy vấn bảng điều khiển.

Trả về dashboard_validation/v1: phân loại lint + thực thi theo từng bảng điều khiển (data / no_data / invalid / error). Kết quả trống ngày đầu tiên được phân loại là valid_no_data mà không có các đầu dò chẩn đoán.

create_dashboard

Chỉ tạo mới. Sau khi lệnh gọi này trả về dashboard.id, hãy tinh chỉnh bằng update_dashboard — không tạo lại để thêm, cắt bớt hoặc sửa các bảng điều khiển.

  • dashboard (đối tượng, bắt buộc): Định nghĩa dashboard với name và panels[]. 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 và _type (ví dụ: {"_category":"custom","_type":"metrics"}).

update_dashboard

Ưu tiên sử dụng công cụ này sau create. Thay thế toàn bộ theo id (cùng nội dung như create).

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

delete_dashboard

  • id (chuỗi, bắt buộc): UUID 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 dashboard cần liệt kê các snapshot.

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 snapshot.

Trả về snapshot đó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 snapshot cần xóa.

get_profile_services

  • lookback_minutes / start_time_iso / end_time_iso (tùy chọn): Cửa sổ; ưu tiên lookback hoặc giới hạn ISO rõ ràng (mặc định 60 phút).
  • region (chuỗi, tùy chọn): Ghi đè khu vực.

Trả về các dịch vụ có dữ liệu profiling trong cửa sổ. Gọi công cụ này trước get_flamegraph / get_top_functions / get_profile_summary.

get_flamegraph

  • service (chuỗi, bắt buộc): Tên dịch vụ từ get_profile_services.
  • profile_type (chuỗi, tùy chọn): cpu (mặc định), alloc, hoặc wall. Cố định một loại khi so sánh các cửa sổ.
  • env / cluster / namespace / runtime (chuỗi, tùy chọn): Bộ lọc phạm vi.
  • limit (số, tùy chọn): Số hàng stack tổng hợp tối đa (mặc định 1000, tối đa 10000).
  • lookback_minutes / start_time_iso / end_time_iso / region (tùy chọn).

Trả về cây flamegraph lồng nhau (name / value / self / children). truncated: true có nghĩa là giới hạn hàng API đã bị vượt.

get_top_functions

Cùng bộ lọc như get_flamegraph. Trả về xếp hạng self-sample của các hàm nóng nhất. Có thể bị cắt ngắn; kiểm tra truncated.

get_profile_summary

Cùng bộ lọc như get_flamegraph. Trả về một bản phân loại ngôn ngữ tự nhiên ngắn về hồ sơ cho dịch vụ.

grafana_search_dashboards

  • query (chuỗi, tùy chọn): Chuỗi con của tiêu đề. Để trống để liệt kê rộng (chịu giới hạn 5.000 hàng).

Trả về {"dashboards":[…], "truncated":bool} với uid, title, uri, url, type, tags. Sử dụng uid với grafana_get_dashboard.

grafana_get_dashboard

  • uid (chuỗi, bắt buộc): UID dashboard Grafana.
  • full_json (boolean, tùy chọn): Khi true, trả về JSON Grafana thô thay vì bản tóm tắt đã lọc. Tóm tắt mặc định: phiên bản, thẻ, biến templating, và loại/nguồn dữ liệu/vị trí lưới/mục tiêu promQL của từng panel. Các loại panel plugin không xác định xuất hiện trong unsupportedPanelTypes.

grafana_list_folders

Không có tham số. Trả về cây thư mục.

grafana_list_folder_dashboards

  • folder_uid (chuỗi, bắt buộc): UID thư mục Grafana.

Trả về {"dashboards":[…], "truncated":bool} cho các dashboard trong thư mục đó (phân trang tối đa 5.000).

grafana_list_datasources

Không có tham số. Trả về một phép chiếu an toàn của các nguồn dữ liệu (không có trường thông tin xác thực).


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