观测性数据访问服务

一个为AI代理提供结构化访问SUSE观测性数据的MCP服务器,支持智能故障排查和根因分析。

  • by DavideRutigliano
  • Go
  • 本地部署
  • 4 星标
  • 更新于
在 GitHub 查看 drutigliano19/suse-observability-mcp-server

使用说明

SUSE观察性MCP服务器

一 模型上下文协议 服务器,为AI代理提供对SUSE Observability(StackState)数据的结构化访问,以进行智能故障排除和根本原因分析。

概述

此MCP服务器将AI语言模型与SUSE Observability丰富的操作数据连接起来。它通过一个标准化的接口公开拓扑、指标和监控信息,AI代理可以使用该接口:

  • 查询基础结构拓扑和组件关系
  • 检索实时指标和时间序列数据
  • 访问监控状态和健康检查
  • 在事故期间进行根本原因分析

服务器将StackState的技术标识符(URNs、度量查询、健康状态)标准化为LLM友好格式,使人工智能代理能够在没有幻觉的情况下提供准确、基于数据的诊断。

可用工具

服务器目前为AI代理提供以下工具:

度量工具

  • listMetrics:列出特定组件的绑定指标。

    • 论据: component_id (整数,必填):列出绑定指标的组件的ID(来自拓扑查询)
    • 返回:一个markdown表,显示绑定指标及其名称、单位和查询表达式
  • getMetrics:查询SUSE Observability在一段时间内的指标。

    • 论据:
      • query (string,必填):要执行的PromQL查询
      • start (string,必填):查询的开始时间(例如“now”、“1h”)
      • end (string,必填):查询的结束时间(例如“now”、“1h”)
      • step (字符串,可选):查询解析步长(例如,“15s”、“1m”,默认为“1m”)
    • 返回:一个带有查询结果可视化表示的markdown表

监视器工具

  • listMonitors:列出特定组件的监控器。
    • 论据: component_id (整数,必填):要列出监控器的组件的ID(来自拓扑查询)
    • 返回:一个markdown表,显示与指定组件关联的监视器及其当前状态

拓扑工具

  • getComponents:使用STQL筛选器搜索拓扑组件。
    • 参数(所有参数都支持多个项目的逗号分隔值):
      • names (字符串,可选):要完全匹配的组件名称(逗号分隔,例如“checkout service,redis-master”)
      • types (字符串,可选):组件类型(逗号分隔,例如“pod、service、deployment”)
      • healthstates (字符串,可选):健康状态(逗号分隔,例如“临界、偏离”)。对于同时查询多个状态特别有用
      • domains (字符串,可选):要筛选的群集名称(逗号分隔,例如“prod-Cluster,staging Cluster”)。域表示群集名称
      • namespace (string,可选):要过滤的Kubernetes命名空间(例如,'default'、'kube-system')
      • with_neighbors (布尔值,可选):使用NeighborsOf包含连接的组件
      • with_neighbors_levels (字符串,可选):级别数(1-14)或“全部”(默认值:1)
      • with_neighbors_direction (字符串,可选):“up”、“down”或“both”(默认值:“both)
    • 注意:必须至少提供一个过滤器。所有过滤器都使用STQL IN运算符进行高效的多值查询
    • 返回:一个包含匹配组件及其ID和标识符的markdown表

构建并运行

先决条件

  • 转到1.23或更高版本

构建

要构建服务器,请运行:

go build -o suse-observability-mcp-server cmd/server/main.go

跑

要运行服务器,您需要提供SUSE Observability API的详细信息。您可以使用stdio(默认)或HTTP运行它。

使用Stdio(适用于MCP客户端):

./suse-observability-mcp-server \
  -url "https://your-instance.suse.observability.com" \
  -token "YOUR_API_TOKEN" \
  -apitoken

使用HTTP:

./suse-observability-mcp-server \
  -http ":8080" \
  -url "https://your-instance.suse.observability.com" \
  -token "YOUR_API_TOKEN" \
  -apitoken

使用docker

多阶段 Dockerfile 提供用于构建最小容器映像。

1.构建Docker镜像:

docker build -t suse-observability-mcp-server .

2.运行容器:此示例以HTTP模式运行服务器。这 -p 8080:8080 flag将容器的端口映射到本地计算机。

docker run -p 8080:8080 --rm suse-observability-mcp-server \
  -url "https://your-instance.suse.observability.com" \
  -token "YOUR_API_TOKEN" \
  -apitoken \
  -http ":8080"

配置标志

  • -http:HTTP传输地址(例如“:8080”)。如果为空,则默认为stdio。
  • -url:SUSE可观测性API URL
  • -token:SUSE可观测性API令牌
  • -apitoken:使用SUSE Observability API令牌,而不是服务令牌(布尔值)

资源