Last9

공식

실시간 프로덕션 컨텍스트(로그, 메트릭, 트레이스)를 로컬 환경으로 원활하게 가져와 코드를 더 빠르게 자동 수정합니다.

Last9 MCP(으)로 무엇을 할 수 있나요?

어시스턴트에게 Last9의 실시간 로그, 트레이스, 메트릭스를 사용하여 프로덕션 인시던트를 조사하도록 요청하세요.

  • 서비스 상태 순위 지정get_service_summary를 사용하여 요청 수, 처리량, 그리고 전체 서비스의 4xx/5xx 오류를 확인하세요.
  • 느린 데이터베이스 쿼리 찾기get_database_slow_queries를 사용하여 실제 가장 느린 실행과 추적 ID를 가져와 상세 조사하세요.
  • 서비스 로그 가져오기get_service_logs를 사용하여 심각도와 본문 내용으로 필터링된 원시 로그 줄을 가져오세요.
  • 단일 요청 추적get_trace_waterfall을 사용하여 정확한 추적 ID에 대한 부모/자식 워터폴을 확인하세요.
  • 알림 상태 확인get_alert_rule_state를 사용하여 시간 범위에 따른 각 알림 규칙의 발생 이력을 확인하세요.
  • 대시보드 관리create_dashboard를 사용하여 패널과 쿼리로 사용자 지정 대시보드를 구축하세요.

문서

Last9 MCP 서버

last9 mcp demo

당신의 AI 에이전트는 프로덕션에서 무엇이 고장났는지 알지 못합니다. 이 도구가 그 문제를 해결합니다.

Last9 MCP 서버는 Claude, Cursor, Windsurf 및 MCP를 지원하는 모든 AI 어시스턴트를 프로덕션 관측 데이터(로그, 메트릭, 트레이스, 예외, 데이터베이스 쿼리, 알림, 배포)에 직접 연결합니다. 에이전트는 더 이상 추측하지 않고 실제 신호를 읽기 시작합니다.


30초 만에 시작하기 (호스팅)

설치할 바이너리도 없고, 관리할 토큰도 없습니다. URL 하나, 브라우저에서 OAuth 인증, 끝입니다.

Last9 URL에서 조직 슬러그를 찾으세요: app.last9.io/<org_slug>/...

Claude Code

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

/mcp을(를) 입력하고 last9를 선택한 뒤 인증하면 끝입니다.

Cursor

Settings > MCP > Add New MCP Server:

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

Connect를 클릭하고 OAuth를 완료하세요.

VS Code

v1.99+ 필요. Command Palette를 열고 → MCP: Add Server, URL을 붙여넣고 인증하세요.

또는 settings.json에서 직접:

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

Windsurf

Settings > Cascade > Open MCP Marketplace > 톱니바퀴 아이콘(mcp_config.json):

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

Claude Web/Desktop

Settings > Connectors > Add custom connector. 이름을 last9으로 지정하고 URL을 붙여넣은 뒤 인증하세요.

Claude 조직에 대한 관리자 액세스가 필요합니다.


자체 호스팅 (STDIO)

MCP 클라이언트가 HTTP 전송을 지원하지 않거나, 서버를 로컬에서 실행해야 하는 경우에 사용합니다.

설치

Homebrew:

brew install last9/tap/last9-mcp

NPM:

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

바이너리 릴리스 (Windows / 수동 설치):

GitHub Releases에서 다운로드:

플랫폼아카이브
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

리프레시 토큰 받기

토큰 생성은 관리자만 가능합니다.

  1. API 액세스로 이동
  2. 쓰기 권한으로 Generate Token 클릭
  3. 복사

클라이언트 설정

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

붙여넣을 위치:

클라이언트위치
Claude Web/DesktopSettings > Developer > Edit Config (claude_desktop_config.json)
CursorSettings > Cursor Settings > MCP > Add New Global MCP Server
WindsurfSettings > Cascade > MCP Marketplace > 톱니바퀴 아이콘(mcp_config.json)
VS Codesettings.json에서 { "mcp": { "servers": { ... } } }으로 감싸기 — 자세한 내용
VS Code STDIO 설정
{
  "mcp": {
    "servers": {
      "last9": {
        "type": "stdio",
        "command": "/opt/homebrew/bin/last9-mcp",
        "env": {
          "LAST9_REFRESH_TOKEN": "<your_refresh_token>"
        }
      }
    }
  }
}

NPM 사용 시: "command": "npx"을 사용하고 "args": ["-y", "@last9/mcp-server@latest"]을 추가하세요.

Windows

GitHub Releases에서 다운로드한 후 압축을 풀고 전체 경로를 지정하세요:

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

Windows에서는 NPM 방식이 더 쉽습니다 — 경로 관리가 필요 없습니다.

환경 변수

변수기본값설명
LAST9_REFRESH_TOKEN(필수)API 액세스에서 받은 리프레시 토큰
LAST9_DATASOURCE조직 기본값데이터소스/클러스터 이름 — 여러 Levitate 클러스터가 있을 때 유용
LAST9_API_HOSTapp.last9.ioAPI 호스트 재정의
LAST9_TOOLSETS모든 도구쉼표로 구분된 노출할 도구 세트 (logs, traces, metrics, alerts, dashboards, investigate, all). 별칭: LAST9_MCP_TOOLSETS
LAST9_MAX_GET_LOGS_ENTRIES5000청크 처리된 get_logs 요청의 최대 항목 수
LAST9_DEBUG_CHUNKINGfalseget_logs, get_service_logs, get_traces에 대한 청크 계획 세부 정보를 기록하려면 true 설정
LAST9_DISABLE_TELEMETRYtrue내부 OTel 추적을 활성화하려면 false 설정
OTEL_SDK_DISABLED표준 OTel 환경 변수. LAST9_DISABLE_TELEMETRY 재정의
OTEL_EXPORTER_OTLP_ENDPOINTOTLP 수집기 엔드포인트 (텔레메트리 활성화 시에만)
OTEL_EXPORTER_OTLP_HEADERSOTLP 인증 헤더 (텔레메트리 활성화 시에만)

제공 기능

서비스 상태

  • get_service_summary — 순위가 매겨진 fleet (service, env) 행: interval request_count, throughput_rpm, HTTP 4xx/5xx 카운트, gRPC 오류 카운트
  • get_service_environments — 서비스에 사용 가능한 환경. 먼저 실행하세요 — 다른 APM 도구는 여기의 env이 필요합니다
  • get_service_performance_details — 전체 분석: throughput, error rate, p50/p90/p95/avg/max, apdex, 가용성
  • get_service_operations_summary — HTTP 엔드포인트, DB 호출, 메시징, HTTP 클라이언트별로 그룹화된 작업
  • get_service_dependency_graph — 업스트림/다운스트림/인프라에 대한 throughput, latency, error rate를 포함한 의존성 맵
  • get_apm_service_deviations — 현재 시간 창을 동일 기간의 기준선과 비교: 회귀/개선, Apdex 조정, 최종 결과(fleet 또는 단일 서비스)
  • get_exceptions — 서비스 및 스팬 필터가 적용된 서버 측 예외

데이터베이스 관측성

데이터베이스 성능을 직접 분석하는 네 가지 도구로, OpenTelemetry 트레이스 스팬에서 파생됩니다. 이미 OTel을 사용 중이라면 추가 계측이 필요 없습니다.

  • get_databases — 인프라 전반의 모든 데이터베이스 발견: DB 유형, 호스트, throughput(쿼리/분), p95 지연 시간, 오류율, 의존 서비스 수
  • get_database_slow_queries — 실제 가장 느린 쿼리 실행, 기간순 정렬, 전체 트레이스 조회를 위한 트레이스 ID 포함
  • get_database_queries — 쿼리 패턴 및 집계: 쿼리 실행 빈도, 평균/p95 기간, 오류율
  • get_database_server_metrics — DB 호스트 자체의 서버 측 메트릭(CPU, 연결, 버퍼 적중률 — DB 시스템에 따라 다름)

PostgreSQL, MySQL, MongoDB, Redis, Aerospike 및 db_system 속성이 있는 OTel 트레이스를 지원하는 모든 시스템을 지원합니다.

Prometheus / PromQL

  • prometheus_range_query — 모든 메트릭에 대한 PromQL 범위 쿼리
  • prometheus_instant_query — 즉시 쿼리; avg_over_time, sum_over_time 같은 롤업 함수 사용
  • prometheus_label_values — 특정 시리즈에 대한 라벨 값
  • prometheus_labels — 시리즈에 사용 가능한 모든 라벨

LAST9_DATASOURCE을 설정하여 기본값이 아닌 다른 데이터소스/클러스터를 가리킬 수 있습니다.

로그

  • get_logs — 전체 JSON 파이프라인 로그 쿼리(집계, 필터, 필드 추출)
  • get_service_logs — 서비스의 원시 로그 라인, 심각도 및 본문 내용으로 필터링 가능
  • get_log_attributes — 시간 창에 대한 로그 스키마의 속성 전역 카탈로그
  • get_log_attributes_for_pipeline — 진행 중인 파이프라인에 실제로 존재하는 로그 필드(범위 지정 발견), 각각의 정확한 filter_field 포함
  • get_drop_rulesLast9 Control Plane의 로그 드롭 규칙
  • add_drop_rule — 로그 볼륨을 소스에서 줄이기 위한 새 드롭 규칙 생성

트레이스

  • get_traces — 광범위한 검색 및 집계를 위한 JSON 파이프라인 트레이스 쿼리
  • get_service_traces — 정확한 트레이스 ID 또는 서비스 이름으로 트레이스 검색. 트레이스 ID가 있을 때 사용하세요 — 더 빠릅니다
  • get_trace_attributes — 트레이스 스키마의 속성 전역 카탈로그
  • get_trace_attributes_for_pipeline — 진행 중인 파이프라인에 실제로 존재하는 속성(범위 지정 발견), 각각의 정확한 filter_field 포함
  • get_trace_attribute_values — 트레이스 속성의 고유 값, 선택적으로 파이프라인으로 범위 지정
  • get_trace_attribute_deviations — 두 개의 경계가 있는 스팬 코호트(느림 vs 빠름, 오류 vs 비오류, 또는 두 시간 창) 간에 다른 속성 값 순위. 상관관계이지 원인은 아닙니다
  • get_trace_waterfall — 간격 합집합 자기 시간, 가장 느린 스팬, 그래프 경고가 포함된 하나의 정확한 트레이스를 부모/자식 워터폴로 표시

변경 이벤트 및 알림

  • get_change_events — 배포, 구성 변경, 롤백. 변경된 사항과 인시던트의 상관관계 파악
  • get_alert_config — 알림 규칙 구성 — 이름, 심각도, 유형, 태그로 검색 가능
  • get_alerts — 시간 창 내 현재 발생 중인 알림
  • get_alert_rule_state — 시간 범위에 걸친 알림 규칙별 과거 발생 상태(1/0), rule_id으로 그룹화. 알림 그룹, 규칙 이름, 라벨 필터, 상태로 필터링 가능
  • get_notification_channels — 구성된 알림 채널(Slack, PagerDuty, 이메일 등)

커스텀 대시보드

  • list_dashboards — 조직의 모든 커스텀 대시보드: ID, 이름, 메타데이터
  • get_dashboard — ID별 전체 대시보드 정의, 패널 및 쿼리 포함
  • create_dashboard — 패널, 쿼리, 메타데이터가 포함된 새 커스텀 대시보드 생성
  • update_dashboard — ID로 기존 대시보드 업데이트(읽기 전용 시스템 대시보드는 오류 반환)
  • delete_dashboard — ID로 커스텀 대시보드 삭제
  • list_dashboard_snapshots — 대시보드의 특정 시점 스냅샷(메타데이터만)
  • get_dashboard_snapshot — RCA/공유 가능한 뷰를 위한 패널 데이터가 포함된 전체 스냅샷
  • delete_dashboard_snapshot — ID로 스냅샷 삭제

퍼지 이름 해석

  • did_you_mean — 에이전트가 엔티티 이름을 확신하지 못할 때 카탈로그에서 가장 가까운 일치 항목을 반환(서비스, 환경, 호스트, 데이터베이스, K8s 배포/네임스페이스, 작업). 유사도 점수가 포함된 최대 3개 제안. 이름 조회가 빈 결과를 반환할 때 대부분의 도구 앞에서 서버가 자동으로 호출합니다.

작동 방식

모든 응답에 딥 링크. 모든 도구는 deep_link 필드를 반환합니다 — 해당 쿼리와 시간 범위에 대한 Last9 대시보드로의 직접 URL. 에이전트가 링크를 전달하면 클릭만 하면 됩니다.

도구 세트. 기본적으로 서버는 모든 도구를 노출합니다. 조사(로그/트레이스/메트릭)만 필요한 자동화 호스트는 LAST9_TOOLSETS=investigate을 설정(또는 --toolsets=investigate 전달)하여 클라이언트 측 대량 비활성화 없이 tools/list을 작게 유지할 수 있습니다. 명명된 팩: logs, traces, metrics, alerts, dashboards, investigate, all. 알 수 없는 이름은 빠르게 실패합니다. metrics 팩만으로는 list_datasources 또는 did_you_mean포함되지 않습니다 — 해당 발견 도우미가 필요하면 investigate(또는 도구 세트 결합)를 사용하세요.

도구 참조 리소스. 긴 logjson/tracejson/service-logs/metrics 매뉴얼은 MCP 리소스(last9://reference/logjson, last9://reference/tracejson, last9://reference/service_logs, last9://reference/metrics)로 제공되며, 항상 활성화된 도구 설명 텍스트가 아닙니다. 중요한 쿼리 규칙은 도구 설명에 유지되어 resources/read을 호출하지 않는 에이전트도 올바른 구성 지침을 얻습니다. 조직별 필드는 get_log_attributes / get_log_attributes_for_pipeline(및 트레이스 상당 항목)로 발견하세요 — 설명에 주입되지 않습니다.

대용량 결과 청크 처리. get_logsget_traces은 대용량 결과 집합을 잘라내는 대신 청크로 처리합니다. 로그의 기본 제한은 5000개 항목이며, LAST9_MAX_GET_LOGS_ENTRIES으로 구성 가능합니다.


개발

HTTP 모드, curl 테스트, 소스에서 빌드

HTTP 모드로 실행

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

서버가 http://localhost:8080/mcp에서 시작됩니다.

curl로 테스트

Streamable HTTP 핸들러는 무상태(stateless) 모드로 실행되므로 모든 요청이 독립적으로 처리됩니다. initialize 핸드셰이크와 Mcp-Session-Id 헤더는 선택 사항입니다. 이를 전송하는 클라이언트도 정상 작동하며(헤더는 수락된 후 무시됨), 클라이언트는 tools/list / tools/call로 바로 건너뛸 수도 있습니다. 모든 도구는 독립적인 요청/응답 쿼리이며, 서버는 서버→클라이언트 알림을 발행하지 않으므로 GET /mcp(SSE 스트림)는 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
        }
      }
    }'

소스에서 빌드

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은 로컬 개발용입니다. 실제 사용 시에는 호스팅된 HTTP 엔드포인트가 더 간편합니다.


도구 참조

모든 매개변수, 시간 입력 표준 및 세부 정보

시간 입력

  • 절대 시간(start_time_iso/end_time_iso 또는 time_iso)은 lookback_minutes보다 우선합니다.
  • 상대 시간 창: lookback_minutes을 사용하세요.
  • 절대 시간 창: RFC3339/ISO8601 — 2026-02-09T15:04:05Z을 사용하세요.
  • 레거시 YYYY-MM-DD HH:MM:SS은 호환성 목적으로만 허용됩니다.

get_exceptions

  • limit(정수, 선택): 최대 예외 수. 기본값: 20.
  • lookback_minutes(정수, 선택): 기본값: 60.
  • start_time_iso / end_time_iso(문자열, 선택): 절대 시간 범위.
  • service_name(문자열, 선택): 서비스로 필터링.
  • span_name(문자열, 선택): 스팬 이름으로 필터링.
  • env(문자열, 선택): 환경으로 필터링.

get_service_summary

  • start_time_iso / end_time_iso(문자열, 선택)
  • env(문자열, 선택): PromQL 정규식. 기본값은 .*입니다. 정확히 일치하려면 앵커가 필요합니다(예: ^prod$).
  • sort_by(문자열, 선택): request_count(기본값), throughput_rpm, http_4xx_count, http_5xx_count 또는 grpc_error_count.
  • limit(정수, 선택): 최대 순위 행 수. 생략하거나 0이면 10을 의미하며, 100을 초과하는 값은 100으로 제한됩니다.

get_service_environments

  • start_time_iso / end_time_iso(문자열, 선택)

다른 모든 APM 도구에는 env 값이 필요합니다. 이 결과가 비어 있으면 ""을 사용하세요.

get_service_performance_details

  • service_name(문자열, 필수)
  • lookback_minutes(정수, 선택): 기본값: 60.
  • start_time_iso / end_time_iso(문자열, 선택)
  • env(문자열, 선택): 기본값은 prod입니다.

get_service_operations_summary

  • service_name(문자열, 필수)
  • lookback_minutes(정수, 선택): 기본값: 60.
  • start_time_iso / end_time_iso(문자열, 선택)
  • env(문자열, 선택): 기본값은 prod입니다.

get_service_dependency_graph

  • service_name(문자열, 선택)
  • lookback_minutes(정수, 선택): 기본값: 60.
  • start_time_iso / end_time_iso(문자열, 선택)
  • env(문자열, 선택): 기본값은 prod입니다.

get_apm_service_deviations

  • service_name(문자열, 선택): 플릿 범위에서는 생략하고, 단일 서비스 및 해당 운영 상관관계를 보려면 제공하세요.
  • lookback_minutes(정수, 선택): 현재 창. 기본값: 60.
  • start_time_iso / end_time_iso(문자열, 선택): 명시적 현재 창.
  • baseline_start_time_iso / baseline_end_time_iso(문자열, 선택): 명시적 기준선. 기본값은 바로 직전의 동일한 기간 창입니다.
  • datasource(문자열, 선택): 비교를 단일 데이터소스로 제한합니다.
  • env(문자열, 선택): 기본값은 prod입니다.
  • max_services / max_operations(정수, 선택): 기본값 10, 각각 최대 10.

get_databases

  • env(문자열, 선택): 환경별 필터링. 기본값: 전체.
  • lookback_minutes(정수, 선택): 기본값: 60.
  • start_time_iso / end_time_iso(문자열, 선택)

get_database_slow_queries

  • db_system(문자열, 선택): 예: postgresql, mysql, mongodb, redis.
  • host(문자열, 선택): 데이터베이스 호스트(net_peer_name).
  • service_name(문자열, 선택): 호출 서비스 이름.
  • env(문자열, 선택)
  • min_duration_ms(부동소수점, 선택): 최소 쿼리 기간(ms).
  • lookback_minutes(정수, 선택): 기본값: 60.
  • start_time_iso / end_time_iso(문자열, 선택)
  • limit(정수, 선택): 기본값: 20.

get_database_queries

  • db_system(문자열, 선택)
  • host(문자열, 선택)
  • service_name(문자열, 선택)
  • env(문자열, 선택)
  • lookback_minutes(정수, 선택): 기본값: 60.
  • start_time_iso / end_time_iso(문자열, 선택)
  • limit(정수, 선택): 기본값: 20.

get_database_server_metrics

  • db_system(문자열, 필수): 예: postgresql, mysql, mongodb, redis, aerospike.
  • host(문자열, 선택)
  • lookback_minutes(정수, 선택): 기본값: 60.
  • start_time_iso / end_time_iso(문자열, 선택)

prometheus_range_query

  • query(문자열, 필수): PromQL 쿼리.
  • start_time_iso / end_time_iso(문자열, 선택): 기본값은 최근 60분.
  • lookback_minutes(부동소수점, 선택): 기본값: 60.

prometheus_instant_query

  • query(문자열, 필수)
  • time_iso(문자열, 선택): 기본값은 현재 시각.
  • lookback_minutes(부동소수점, 선택)

prometheus_label_values

  • match_query(문자열, 선택): PromQL 필터.
  • label(문자열, 필수): 레이블 이름.
  • start_time_iso / end_time_iso(문자열, 선택)

prometheus_labels

  • match_query(문자열, 선택): PromQL 필터.
  • start_time_iso / end_time_iso(문자열, 선택)

get_logs

  • logjson_query(배열, 필수): JSON 파이프라인 쿼리.
  • lookback_minutes(정수, 선택): 기본값: 5.
  • start_time_iso / end_time_iso(문자열, 선택)
  • limit(정수, 선택): 서버 기본값: 5000.
  • index(문자열, 선택): physical_index:<name> 또는 rehydration_index:<block_name>.

로그 기반 서비스 인벤토리의 경우 먼저 physical_index_service_count을 쿼리하세요:

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

service_nameServiceName으로, env을 환경(있는 경우)으로, name을 물리적 인덱스 이름으로 사용하세요. name="default"인 경우 index을 생략하고, 사용자가 선택한 비기본 물리적 인덱스에 대해서는 index: "physical_index:<name>"을 전달하세요. 백엔드가 명시적 물리적 인덱스 필터링을 거부하면 index 없이 재시도하고, 해당 백엔드에서는 명시적 물리적 인덱스 필터링을 사용할 수 없다고 보고하세요.

get_service_logs

  • service_name(문자열, 필수)
  • lookback_minutes(정수, 선택): 기본값: 60.
  • limit(정수, 선택): 기본값: 20.
  • env(문자열, 선택)
  • severity_filters(배열, 선택): 예: ["error", "warn"]. OR 논리.
  • body_filters(배열, 선택): 예: ["timeout", "failed"]. OR 논리.
  • start_time_iso / end_time_iso(문자열, 선택)
  • index(문자열, 선택)

여러 필터 유형은 AND로 결합됩니다. 각 배열은 내부적으로 OR을 사용합니다. 먼저 get_logs을 사용하여 광범위한 집계 수를 확인하고, 서비스/환경/인덱스 및 소규모 샘플 세트로 범위를 좁힌 후에만 get_service_logs을 사용하세요.

get_log_attributes

  • lookback_minutes(정수, 선택): 기본값: 15.
  • start_time_iso / end_time_iso(문자열, 선택)
  • region(문자열, 선택)
  • index(문자열, 선택)

get_log_attributes_for_pipeline

  • pipeline(배열, 필수): 탐색 범위를 제한하기 위한 이전 필터 단계(예: [{"type":"filter","query":{"$eq":["ServiceName","<service>"]}}]).
  • lookback_minutes(정수, 선택): 기본값: 15.
  • start_time_iso / end_time_iso(문자열, 선택)
  • region(문자열, 선택)
  • index(문자열, 선택)

get_drop_rules

매개변수 없음. GET /otel_settings/drop?region=...을 통해 드롭 규칙을 나열합니다.

add_drop_rule

  • name(문자열, 필수)
  • filters(배열, 필수): 각 필터: key, value, operator(equals/not_equals), conjunction(and).
  • 필터 키는 attributes["key_name"] 또는 resource.attributes["key_name"]을 사용해야 합니다(Last9 API 필수).
  • POST /otel_settings/drop?region=...&cluster_id=...을 통해 규칙을 생성합니다.

get_traces

광범위한 검색 및 집계에 사용합니다. 정확한 트레이스 ID 조회에는 get_service_traces을 사용하세요.

  • tracejson_query(배열, 필수)
  • start_time_iso / end_time_iso(문자열, 선택)
  • lookback_minutes(정수, 선택): 기본값: 60.
  • limit(정수, 선택): 기본값: 5000.

get_service_traces

trace_id 또는 service_name 중 정확히 하나가 필요합니다.

  • trace_id(문자열, 선택): 기본 조회 기간: 72시간.
  • service_name(문자열, 선택): 기본 조회 기간: 60분.
  • lookback_minutes(정수, 선택)
  • start_time_iso / end_time_iso(문자열, 선택)
  • limit(정수, 선택): 기본값: 10.
  • env(문자열, 선택)

get_trace_attributes

  • lookback_minutes(정수, 선택): 기본값: 15.
  • start_time_iso / end_time_iso(문자열, 선택)
  • region(문자열, 선택)

get_trace_attributes_for_pipeline

  • pipeline(배열, 필수): 탐색 범위를 제한하기 위한 이전 필터 단계(예: [{"type":"filter","query":{"$eq":["ServiceName","<service>"]}}]).
  • lookback_minutes(정수, 선택): 기본값: 15.
  • start_time_iso / end_time_iso(문자열, 선택)
  • region(문자열, 선택)

get_trace_attribute_values

  • tag_name(문자열, 필수): get_trace_attributes의 속성 이름(예: resource_department 또는 attributes['http.method']).
  • pipeline(배열, 선택): 값 범위를 제한하기 위한 이전 필터 단계. 생략하면 전역 값을 사용합니다.
  • region(문자열, 선택)

get_trace_attribute_deviations

  • comparison_mode(문자열, 필수): latency, errors 또는 time.
  • service_name(문자열, 필수)
  • environment(문자열, 필수): 정확한 deployment.environment 값.
  • operation(문자열, 선택)
  • filters(배열, 선택): 트레이스 JSON 필터 조건.
  • candidate_attributes(배열, 선택): 최대 8개. 생략하면 제한적 탐색을 수행합니다.
  • latency_threshold_ms(숫자, 선택): latency 모드에 필수이며, 다른 모드에서는 거부됩니다.
  • start_time_iso / end_time_iso(문자열, 선택)
  • lookback_minutes(정수, 선택): 기본값: 15. 최대값: 15.
  • baseline_start_time_iso / baseline_end_time_iso(문자열, 선택): time 모드에 필수이며, 대상 창과 겹치지 않고 기간이 동일해야 합니다.
  • minimum_cohort_size(정수, 선택): 기본값: 100. 최소값: 20.
  • minimum_value_support(정수, 선택): 기본값: 20. 최소값: 10.
  • limit(정수, 선택): 기본값: 10. 최대값: 10.

동반 백엔드 기능이 활성화되어 있어야 합니다.

get_trace_waterfall

  • trace_id(문자열, 필수)
  • environment(문자열, 선택)
  • start_time_iso / end_time_iso(문자열, 선택)
  • lookback_minutes(정수, 선택): 기본값: 4320(72시간).
  • selected_span_id(문자열, 선택): 해당 스팬에 대한 속성, 이벤트 및 링크만 반환합니다.
  • max_spans(정수, 선택): 기본값: 500. 최대값: 1000.

investigation-evidence/v1 봉투(envelope)를 반환하며, 워터폴은 data 아래에 있습니다.

get_change_events

  • start_time_iso / end_time_iso(문자열, 선택)
  • lookback_minutes(정수, 선택): 기본값: 60.
  • service_name(문자열, 선택)
  • env(문자열, 선택)
  • event_name(문자열, 선택): 먼저 이 매개변수 없이 호출하여 available_event_names을 가져옵니다.

get_alert_config

  • search_term (문자열, 선택 사항): 이름, 그룹, 데이터 소스, 태그 전반에 대한 자유 텍스트 검색입니다.
  • rule_name (문자열, 선택 사항)
  • severity (문자열, 선택 사항)
  • rule_type (문자열, 선택 사항): static 또는 anomaly.
  • alert_group_name / alert_group_type / data_source_name (문자열, 선택 사항)
  • tags (배열, 선택 사항): 모두 일치해야 합니다(AND 논리).

알림(get_alerts)

  • time_iso (문자열, 선택 사항): RFC3339 형식의 평가 시간.
  • window (정수, 선택 사항): 조회 기간(초). 기본값: 900. 범위: 60–86400.
  • lookback_minutes (정수, 선택 사항): 범위: 1–1440.

알림 규칙 상태 가져오기(get_alert_rule_state)

  • start_time (정수, 필수): 범위 시작의 Unix epoch(포함).
  • end_time (정수, 필수): 범위 종료의 Unix epoch(포함).
  • step (정수, 필수): 샘플 간 해상도(초). ((end_time - start_time) / step + 1)의 샘플 수는 100으로 제한됩니다.
  • alert_group_id (문자열, 선택 사항): 알림 그룹 ID로 필터링.
  • rule_name (문자열, 선택 사항): 규칙 이름에 대한 정규식 필터.
  • alert_group_name (문자열, 선택 사항): 알림 그룹 이름에 대한 정규식 필터.
  • label_filters (문자열, 선택 사항): 쉼표로 구분된 key=value 라벨 필터.
  • state (문자열, 선택 사항): 상태로 필터링(예: firing).

rule_id -> [{timestamp, is_firing}]의 JSON 맵을 반환합니다. 업스트림 응답에 규칙이 없는 타임스탬프는 is_firing=0로 보고됩니다. 이는 "발화(불이행)로 관찰되지 않음"을 의미하며, 정상 상태로 확인된 것이 아닙니다.

알림 채널 가져오기(get_notification_channels)

매개변수 없음. 구성된 모든 알림 채널(Slack, PagerDuty, 이메일, 웹훅 등)을 반환합니다.

의도한 것(did_you_mean)

  • query (문자열, 필수): 검색할 이름 — 부분적, 오타, 또는 약어.
  • type (문자열, 선택 사항): 엔터티 유형으로 제한: service, environment, host, database, k8s_deployment, k8s_namespace, job.

유사도 점수가 있는 최대 3개의 가장 가까운 일치 항목을 반환합니다. 엔터티 이름이 불확실한 도구 호출 전에 이를 사용하세요. 이전 호출이 빈 결과를 반환한 경우, 재시도하기 전에 이 기능을 시도하세요.

대시보드 목록(list_dashboards)

매개변수 없음. 조직의 모든 사용자 지정 대시보드를 id, name 및 메타데이터가 포함된 JSON 배열로 반환합니다.

대시보드 가져오기(get_dashboard)

  • id (문자열, 필수): 대시보드 UUID.
  • region (문자열, 선택 사항): 패널 쿼리 채우기를 위한 지역. 기본값은 구성된 데이터 소스 지역입니다.

대시보드 생성(create_dashboard)

  • dashboard (객체, 필수): namepanels[]이 포함된 대시보드 정의. 각 패널에는 name, version, layout (x, y, w, h), visualization.type, queries[]이 필요합니다.
  • metadata (객체, 선택 사항): 대시보드 메타데이터 — _category_type 필드(예: {"_category":"custom","_type":"metrics"}).

대시보드 업데이트(update_dashboard)

  • id (문자열, 필수): 업데이트할 대시보드 UUID.
  • dashboard (객체, 필수): 전체 교체 대시보드 본문(생성과 동일한 형태).
  • metadata (객체, 선택 사항): 교체 메타데이터. 읽기 전용 시스템 대시보드는 403 오류를 반환합니다.

대시보드 삭제(delete_dashboard)

  • id (문자열, 필수): 삭제할 대시보드 UUID. 읽기 전용 시스템 대시보드는 삭제할 수 없습니다.

대시보드 스냅샷 목록(list_dashboard_snapshots)

  • dashboard_id (문자열, 필수): 스냅샷을 나열할 대시보드 UUID.

메타데이터만 반환합니다(id, name, expires_at 등). 고정된 패널 데이터는 get_dashboard_snapshot을 사용하세요.

대시보드 스냅샷 가져오기(get_dashboard_snapshot)

  • id (문자열, 필수): 스냅샷 UUID.

dashboard_definition, panel_data, time_range, variables을 포함한 전체 고정 스냅샷을 반환합니다.

대시보드 스냅샷 삭제(delete_dashboard_snapshot)

  • id (문자열, 필수): 삭제할 스냅샷 UUID.

테스트

통합 테스트 설정 및 지침은 TESTING.md를 참조하세요.


MseeP.ai Security Assessment Badge