基于代理的Check API v2中的新功能 - Checkmk
基于代理的 Check API v2 中的新功能
在将插件迁移到 Check API v2 时,您需要特别注意以下关键更改。这些更改主要是针对 API 版本 1 的改进和优化,旨在提升插件开发和管理的效率。
插件目录结构的变更
在旧版本中,插件通常存放在以下路径:
local/lib/check_mk/base/plugins/agent-based
在新的 API 版本中,为了让 Checkmk 发现这些插件,它们必须移动到以下路径:
local/lib/python3/cmk_addons/plugins//agent-based
请确保按照新的目录结构组织您的插件,以避免插件无法被正确加载的问题。
模块和类型的调整
type_defs 模块的移除
type_defs 模块已被废弃。现在,所有类型都需要直接从 v2 模块中导入。这种调整简化了模块的组织结构,同时提升了代码的可读性和维护性。
新的 check_levels() 函数
check_levels() 函数是专为与新规则集 API v1 中的 levels 元素配合设计的。您可以在以下路径找到相关规则集定义:
cmk.rulesets.v1.form_specs
参数类型的引入
API 中新增了参数类型定义,相关类型可以在以下模块中找到:
cmk.agent_based.v2
这种改进为开发者提供了更强的类型约束,减少了潜在的错误风险。
插件注册机制的变化
在新的 API 版本中,插件在导入时不再直接注册,而是由后端在稍后的阶段创建和获取。为此,引入了以下四个新类:
- AgentSection:替代
register.agent_section() - SimpleSNMPSection 和 SNMPSection:替代
register.snmp_section() - CheckPlugin:替代
register.check_plugin() - InventoryPlugin:替代
register.inventory_plugin()
这些新类的设计更倾向于使用类型注释,而非运行时验证,从而代码的可维护性。
其他重要改进
parse_function 的调整
为了简化类型注释,parse_function 不再是可选项。这一改动使得代码逻辑更加清晰,同时减少了不必要的复杂性。
正则表达式的替代方案
对于已移除的功能,您可以使用 Python 的 re.compile() 方法作为替代。这种方式更加灵活,也符合 Python 的标准实践。
新增函数:渲染负数秒数
根据用户需求,Check API v2 添加了一个新函数,用于渲染可能为负数的秒数。这一功能的引入解决了某些场景下的特殊需求。
文档资源
如果您需要更详细的参考文档,可以在 Checkmk 2.3.0 及以上版本的站点中找到完整的 Check API v1 和 v2 文档。路径如下:
Help > Plug-in API references > agent based (“Check API”)
通过以上改进,Check API v2 提供了更强大的功能和更灵活的开发支持。建议开发者尽快迁移到新版本,以充分利用这些新特性。
原文链接: https://checkmk.com/blog/whats-new-check-api-v2
最新文章
- 从零开始的机器学习实践指南
- 解析2024年Gartner® API保护市场指南
- Go工程化(五) API 设计下: 基于 protobuf 自动生成 gin 代码
- 如何在Java、Python、PHP中使用会员短信API?
- 探索物种世界:中科院生物百科API的强大功能
- 如何在 Facebook Developers 上设置 WhatsApp Cloud API
- 解决REST API常见问题:问题清单及解答一览
- OpenAI的API有哪些功能?
- 为开源项目 go-gin-api 增加 WebSocket 模块
- Python调用股票API获取实时数据
- API请求 – 什么是API请求?
- 给初学者的RESTful API 安全设计指南!