Datadog监控服务器

Datadog MCP服务器提供对Datadog监控功能的访问,包括事件管理、日志查询、仪表板操作和指标分析,适用于系统监控和运维场景。

  • by ndevvy
  • TypeScript
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 ndevvy/mcp-server-datadog

使用说明

Datadog MCP服务器

用于Datadog API的MCP服务器,实现事件管理等功能。分叉自https://github.com/winor30/mcp-server-datadog

特性

  • 观察性工具:提供了一种机制,通过MCP服务器利用关键的Datadog监控功能,如事件、监视器、日志、仪表板和指标。
  • 可扩展设计:旨在轻松与其他Datadog API集成,实现无缝的未来功能扩展。

工具

  1. list_incidents

    • 从Datadog检索事件列表。
    • 输入:
      • pageSize (可选数字):每页返回的最大事件数。
      • pageOffset (可选数字):分页偏移量。
    • 退货:Datadog事件和相关元数据数组。
  2. get_incident

    • 检索有关特定Datadog事件的详细信息。
    • 输入:
      • incidentId (string):要获取详细信息的事件ID。
    • 退货:详细的事件信息(标题、状态、时间戳等)。
  3. get_monitors

    • 获取Datadog监视器的状态。
    • 输入:
      • groupStates (可选数组):要过滤的状态(例如,alert、warn、no data、ok)。
      • name (可选字符串):按名称筛选。
      • tags (可选数组):按标签过滤。
    • 退货:监控数据及其状态摘要。
  4. get_logs

    • 从Datadog搜索和检索日志。
    • 输入:
      • query (可选字符串):Datadog日志查询字符串。
      • from (number):开始时间,以纪元秒为单位。
      • to (number):结束时间,以纪元秒为单位。
      • limit (可选数字):要返回的最大日志数(默认为100)。
    • 退货:匹配日志数组。
  5. list_dashboards

    • 从Datadog获取仪表板列表。
    • 输入:
      • name (可选字符串):按名称筛选仪表板。
      • tags (可选数组):按标签过滤仪表板。
    • 退货:带有URL引用的仪表板数组。
  6. get_dashboard

    • 从Datadog检索特定的仪表板。
    • 输入:
      • dashboardId (string):要获取的仪表板的ID。
    • 退货:仪表板详细信息,包括标题、小部件等。
  7. create_dashboard

    • 在Datadog中创建一个新的仪表板。
    • 输入:
      • title (string):仪表板的标题。
      • description (可选字符串):仪表板的描述。
      • layoutType (可选字符串):布局类型(“有序”或“自由”,默认为“有序”)。
      • widgets (可选数组):要添加到仪表板的小部件。
      • tags (可选数组):与仪表板关联的标签列表。
    • 退货:创建的仪表板的详细信息,包括ID和URL。
  8. query_metrics

    • 从Datadog检索指标数据。
    • 输入:
      • query (string):度量查询字符串(例如,“avg:system.cpu.user{*}”)。
      • from (number):开始时间,以纪元秒为单位。
      • to (number):结束时间,以纪元秒为单位。
    • 退货:查询时间范围的度量数据。
  9. get_metric_metadata

    • 从Datadog获取特定指标的元数据。
    • 输入:
      • metricName (string):要获取元数据的度量的名称。
    • 退货:指定度量的元数据信息。
  10. get_active_metrics

    • 通过按主机、标签和搜索查询进行可选筛选,获取活动指标列表。
    • 输入:
      • query (string):搜索查询字符串以查找指标。
      • from (可选数字):开始查询的Unix时间戳(默认值:24小时前)。
      • host (可选字符串):按主机筛选指标。
      • tagFilter (可选字符串):按标签过滤指标(例如“env:prod,region:us-east”)。
    • 退货:与搜索查询匹配的指标列表和/或基于过滤器的活动指标。
  11. analyze_tag_relationships

    • 显示跨度量的标签之间的层次关系。
    • 输入:
      • from (可选数字):开始分析标签的Unix时间戳(默认值:现在-1天)。
      • limit (可选数字):要分析的最大标记关系数(默认值:50)。
      • metricPrefix (可选字符串):用于过滤指标的可选前缀(例如,“system.”或“aws.”)。
    • 退货:标签关系分析,显示标签的层次关系。
  12. analyze_tag_cardinality

    • 识别可能导致性能问题的高基数标签。
    • 输入:
      • from (可选数字):开始分析标签的Unix时间戳(默认值:现在-1天)。
      • limit (可选数字):要分析的最大标记数(默认值:50)。
      • metricPrefix (可选字符串):用于过滤指标的可选前缀(例如,“system.”或“aws.”)。
      • minCardinality (可选数字):要报告的最小基数阈值(默认值:10)。
    • 退货:分析可能影响性能的高基数标签。
  13. visualize_tag_co_occurrence

    • 可视化特定指标中经常出现的标签。
    • 输入:
      • metricName (string):要分析标签的度量的名称。
      • from (可选数字):开始分析标签的Unix时间戳(默认值:现在-1天)。
      • limit (可选数字):要分析的最大标记对数(默认值:20)。
    • 退货:指定度量的标签共现模式的可视化。
  14. search_events

    • 在Datadog中搜索事件。
    • 输入:
      • query (string):数据狗事件查询字符串。
      • from (可选字符串):开始时间为字符串-纪元秒或相对时间(例如“now-40m”)(默认值:“now-24h”)。
      • to (可选字符串):结束时间为字符串-纪元秒或相对时间(例如“现在”)(默认值:“现在”。
      • limit (可选数字):要返回的最大事件数(默认值:100)。
      • sort (可选字符串):事件的排序顺序(默认值:“-timestamp”)。
    • 退货:Datadog中的匹配事件数组。
  15. list_traces

    • 从Datadog检索APM跟踪列表。
    • 输入:
      • query (string):Datadog APM跟踪查询字符串。
      • from (number):开始时间,以纪元秒为单位。
      • to (number):结束时间,以纪元秒为单位。
      • limit (可选数字):要返回的最大跟踪数(默认为100)。
      • sort (可选字符串):跟踪的排序顺序(默认为“-timestamp”)。
      • service (可选字符串):按服务名称筛选。
      • operation (可选字符串):按操作名称筛选。
    • 退货:Datadog APM的匹配跟踪数组。
  16. list_apm_services

    • 从Datadog获取APM服务列表。
    • 输入:
      • limit (可选数字):要返回的最大服务数(默认为100)。
    • 退货:可用APM服务列表。
  17. list_apm_resources

    • 从Datadog获取特定服务的APM资源列表。
    • 输入:
      • service (string):用于筛选资源的服务名称。
      • entry_spans_only (可选布尔值):筛选以仅显示服务条目跨度。
      • limit (可选数字):要返回的最大资源数(默认为100)。
      • search_query (可选字符串):搜索查询以按筛选资源名称。
    • 退货:指定服务的资源列表。
  18. list_apm_operations

    • 从Datadog获取特定服务的顶级操作名称列表。
    • 输入:
      • service (string):用于筛选操作的服务名称。
      • entry_spans_only (可选布尔值):筛选以仅显示服务条目跨度。
      • limit (可选数字):要返回的最大操作数(默认为100)。
    • 退货:指定服务的操作名称列表。
  19. get_resource_hash

    • 获取服务中特定资源名称的资源哈希值。
    • 输入:
      • service (string):资源所属的服务名称。
      • resource_name (string):获取哈希值的资源名称。
    • 退货:资源哈希信息。
  20. get_all_services

    • 从日志中提取所有唯一的服务名称。
    • 输入:
      • from (可选数字):开始时间,以纪元秒为单位(默认为24小时前)。
      • to (可选数字):结束时间,以纪元秒为单位(默认为当前时间)。
      • limit (可选数字):要搜索的最大日志数(默认为1000)。
      • query (可选字符串):日志搜索的可选查询筛选器。
    • 退货:日志中找到的唯一服务名称列表。
  21. list_hosts

    • 从Datadog获取主机列表。
    • 输入:
      • filter (可选字符串):搜索结果的筛选字符串。
      • sort_field (可选字符串):用于对主机进行排序的字段。
      • sort_dir (可选字符串):排序方向(asc/desc)。
      • start (可选数字):分页的起始偏移量。
      • count (可选数字):要返回的最大主机数(最大值:1000)。
      • from (可选编号):根据此UNIX时间戳搜索主机。
      • include_muted_hosts_data (可选布尔值):包括静音主机状态和到期时间。
      • include_hosts_metadata (可选布尔值):包括主机元数据(版本、平台等)。
    • 退货:包含详细信息的主机数组。
  22. get_active_hosts_count

    • 获取Datadog中活动主机的总数。
    • 输入:
      • from (可选数字):从中获取活动主机总数的秒数(默认为2小时)。
    • 退货:活动主机和向上主机的总数。
  23. mute_host

    • 在Datadog中将主机静音。
    • 输入:
      • hostname (string):要静音的主机的名称。
      • message (可选字符串):与此主机静音相关的消息。
      • end (可选数字):静音结束的POSIX时间戳。
      • override (可选布尔值):如果为true并且主机已静音,则替换现有的结束时间。
    • 退货:成功状态和确认消息。
  24. unmute_host

    • 在Datadog中取消主机静音。
    • 输入:
      • hostname (string):要取消静音的主机的名称。
    • 退货:成功状态和确认消息。
  25. list_notebooks

    • 从Datadog获取笔记本列表。
    • 输入:
      • query (可选字符串):仅返回笔记本名称或作者句柄中包含此查询字符串的笔记本。
      • authorHandle (可选字符串):返回由给定作者句柄创建的笔记本。
      • excludeAuthorHandle (可选字符串):返回不是由给定作者句柄创建的笔记本。
      • start (可选数字):要返回的第一个笔记本的索引。
      • count (可选编号):要退回的笔记本数量。
      • sortField (可选字符串):按字段排序(修改、名称、创建)。
      • sortDir (可选字符串):排序方向(asc、desc)。
      • type (可选字符串):仅返回具有该元数据类型的笔记本。
      • isTemplate (可选布尔值):True值仅返回模板笔记本。
      • includeCells (可选布尔值):false的值不包括每个笔记本的单元格和全局时间。
    • 退货:符合指定条件的笔记本列表。
  26. get_notebook

    • 从Datadog获取一个笔记本。
    • 输入:
      • notebookId (number):要检索的笔记本的唯一ID。
    • 退货:所请求笔记本的详细信息,包括单元格和元数据。
  27. create_notebook

    • 在Datadog中创建一个新笔记本。
    • 输入:
      • name (string):笔记本的名称。
      • cells (可选数组):要包含在笔记本中的单元格。
      • time (可选字符串):笔记本的时间设置(默认为“1h”)。
      • metadata (可选对象):笔记本的其他元数据。
    • 退货:创建的笔记本的详细信息。
  28. add_cell_to_notebook

    • 将单元格添加到现有的Datadog笔记本中。
    • 输入:
      • notebookId (number):要添加单元格的笔记本的ID。
      • cell (object):要添加的单元格定义。
    • 退货:更新了笔记本信息。
  29. list_downtimes

    • 列出Datadog的计划停机时间。
    • 输入:
      • currentOnly (可选布尔值):当为true时,仅返回当前活动的停机时间。
    • 退货:一系列详细的计划停机时间。
  30. schedule_downtime

    • 在Datadog中安排停机时间。
    • 输入:
      • scope (string):应用停机时间的范围(例如“主机:我的主机”)。
      • start (可选数字):停机时间开始的UNIX时间戳。
      • end (可选数字):停机时间结束的UNIX时间戳。
      • message (可选字符串):与停机时间一起包含的消息。
      • timezone (可选字符串):停机时间的时区。
      • monitorId (可选编号):要静音的显示器的ID。
      • monitorTags (可选数组):用于过滤的监视器标签列表。
      • recurrence (可选对象):停机时间的重复设置。
    • 退货:计划停机时间详细信息,包括ID和活动状态。
  31. cancel_downtime

    • 取消Datadog中的计划停机时间。
    • 输入:
      • downtimeId (number):要取消的停机ID。
    • 退货:确认取消停机时间。

设置

Datadog凭据

您需要有效的Datadog API凭据才能使用此MCP服务器:

  • DATADOG_API_KEY:您的Datadog API密钥
  • DATADOG_APP_KEY:您的Datadog应用程序密钥
  • DATADOG_SITE (可选):Datadog网站(例如。 datadoghq.eu)

在运行服务器之前,将它们导出到您的环境中:

export DATADOG_API_KEY="your_api_key"
export DATADOG_APP_KEY="your_app_key"
export DATADOG_SITE="your_datadog_site"

安装

通过Smithery安装

通过以下方式自动安装克劳德桌面版Datadog MCP服务器 铁匠铺:

npx -y @smithery/cli install @ndevvy/mcp-server-datadog --client claude

手动安装

pnpm install
pnpm build
pnpm watch   # for development with auto-rebuild

用法

添加到您的 claude_desktop_config.json 或 .cursor/mcp.json:

{
  "mcpServers": {
    "datadog": {
      "command": "/path/to/mcp-server-datadog/build/index.js",
      "env": {
        "DATADOG_API_KEY": "<YOUR_API_KEY>",
        "DATADOG_APP_KEY": "<YOUR_APP_KEY>",
        "DATADOG_SITE": "<YOUR_SITE>" // Optional
      }
    }
  }
}

调试

由于MCP服务器通过标准输入/输出进行通信,调试有时会很棘手。我们建议使用 MCP检查员。您可以使用以下命令运行检查器:

npm run inspector

检查器将提供一个URL,您可以在浏览器中打开该URL以查看日志并手动发送请求。

许可证

该项目根据 Apache许可证,版本2.0.