扩展警报功能:打包并共享 Instana 智能警报

智能警报可以打包使用,从而实现类似于打包事件定义和自定义仪表板那样的可扩展、协作式可观测性。 这种方法将可观测性从个别努力转变为可复用的、覆盖整个生态系统的最佳实践。

智能警报是一种基于指标的智能警报,可提供自动阈值建议以及预测性警报等高级功能,从而实现主动监控。 借助用于集成包管理的 Instana CLI,您可以像处理事件定义和自定义仪表板一样,定义、导出和打包智能警报定义。

在集成工作流中加入智能警报,可确保这些基于指标的智能警报在不同团队和环境中保持一致且可复用。 这种灵活性使组织能够构建模块化、可共享的可观测性资产,并随着需求的变化而灵活扩展。

先决条件

开始之前,请确保已安装用于集成包管理的 Instana CLI。stanctl-integration 有关安装说明,请参阅 stanctl-integration – 用于集成包管理的 Instana CLI

创建集成包(生产者)

作为包制作人员,您需要创建可在不同团队和环境间共享和重复使用的 Smart Alert 配置:

  1. 初始化您的集成包。 要初始化该软件包,请运行 stanctl-integration init 并选择您希望包含的集成类型。 目录结构将根据您的选择生成。 例如,如果您选择了智能警报和仪表板,系统将生成以下结构:
    packages
    └── @instana-integration
       └── packagename
           ├── dashboards
           ├── smart-alerts
           ├── README.md
           └── package.json
    有关初始化的完整详细信息,请参阅《 将您的 Instana 仪表板设为公开共享
  2. 在 Instana 中设置您的智能提醒。 准备好包结构后,请在 Instana 用户界面中创建智能警报定义。 您可以通过导航至相关部分并进入“智能提醒”选项卡,为不同的场景创建智能提醒。 例如:
    • 要设置基础设施智能警报,请转到 “基础设施 > 智能警报 ”选项卡,然后单击 “创建智能警报”
    • 若要设置移动应用智能提醒,请转至 “网站与移动应用 ”> “移动应用 ”选项卡,点击您的移动应用名称,然后点击“添加智能提醒”。
    有关在用户界面中创建智能提醒的更多信息,请参阅:
  3. 导出您的智能提醒定义。 完成智能警报定义后,请使用 CLI 将其导出为可重复使用的 JSON 文件:
    # Export Smart Alerts by name
    $ stanctl-integration export \
      --server $INSTANA_SERVER \
      --token $API_TOKEN \
      --include type=smart-alert name="High CPU" \
      --location ./my-package# Export a Smart Alert by ID
    $ stanctl-integration export \
      --server $INSTANA_SERVER \
      --token $API_TOKEN \
      --include type=smart-alert id=alert12345 \
      --location ./my-package# Export multiple Smart Alerts with different filters
    $ stanctl-integration export \
      --server $INSTANA_SERVER \
      --token $API_TOKEN \
      --include type=smart-alert name="CPU" \
      --include type=smart-alert id=alert1234 \
      --location ./my-package
    CLI 会自动查询 Smart Alert 端点,并将每个警报作为独立的 JSON 文件保存在 smart-alerts 文件夹中,以便随时纳入集成包。
  4. 对您的智能警报定义进行代码检查。 在发布包之前,您可以使用 命令 lint 来验证您的智能警报定义:
    # Navigate to the folder of the package you want to lint
    $ stanctl-integration lint# Linting with a specific package path
    $ stanctl-integration lint --path /path/to/package# Linting with debug mode enabled
    $ stanctl-integration lint --debug
    lint 命令会验证每个 Smart Alert JSON 文件是否包含必需的字段(name, granularity, timeThreshold, 以及 或 rule + threshold rules[]),并为每个文件提供详细的错误或成功消息。
  5. 发布您的软件包。 准备好智能警报定义后,请发布该包,以便其他人可以使用。 您有两个选择:
    • 发布到自建注册表。 要向注册表发布内容,请使用您的注册表凭据运行以下命令:
      $ stanctl-integration publish --package @instana-integration/packagename \
        --registry-username <your_username> --registry-email <your_email>
      如果是首次发布,系统会提示您通过注册表进行身份验证。
    • 为 IBM 托管的代码库做出贡献。 要通过 IBM 托管的官方仓库发布:经过审核和合并后,该软件包将发布到 IBM 托管的中央注册库中。 该软件包现已向整个 Instana 社区开放。

使用集成包(消费者)

如果您是软件包的使用者而非开发者,您只需下载该软件包并将其应用到您的 Instana 环境中即可。

  1. 下载该软件包。 包含智能警报定义的软件包可从中央注册表下载,然后导入到您的 Instana 环境中。
    # Download a package from the central registry
    $ stanctl-integration download --package @instana-integration/packagename
  2. 导入智能警报定义。 下载完成后,您可以将智能警报定义导入到您的 Instana 环境中。
    # Import all Smart Alerts from the package
    $ stanctl-integration import \
      --package @instana-integration/packagename \
      --server $INSTANA_SERVER \
      --include "smart-alerts/**/*.json" \
      --token $API_TOKEN# Import a single Smart Alert from the package
    $ stanctl-integration import \
      --package @instana-integration/packagename \
      --server $INSTANA_SERVER \
      --include "smart-alerts/**/smartAlertTitle.json" \
      --token $API_TOKEN
    导入完成后,智能警报定义即刻生效,可提供基于指标的智能警报,并具备自动阈值建议和预测功能。