连接到 ServiceNow 数据来源 - Amazon Managed Grafana

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

连接到 ServiceNow 数据来源

这是用于连接到 ServiceNow 实例的 ServiceNow 数据来源。

注意

此数据来源仅适用于 Grafana Enterprise。有关更多信息,请参阅 管理对 Enterprise 插件的访问

此外,在支持版本 9 或更高版本的工作区中,此数据来源可能需要您安装相应的插件。有关更多信息,请参阅 使用插件扩展您的工作区

功能

  • 查询

    • 统计 API 查询

    • 表 API 查询

      • 事件、变更和任何其他表

  • 提醒

  • 注释(测试版功能)

  • 模板变量

配置

在 Grafana 的左侧面板上选择数据来源。

选择“添加数据来源”:

输入 servicenow 以查找数据来源插件:

输入 ServiceNow URL:

选择保存并测试。您应该会看到一条绿色消息,上面写着“ServiceNow 连接正常”。

控制面板示例

预制控制面板包含在插件中,可通过控制面板选项卡下面的数据来源配置页面导入。

使用量

在查询编辑器中返回数据的方法有两种。

  • TableAPI

  • AggregateAPI

用户目前可以在查询预定义表之间进行选择,如下所示:

  • 更改

  • 意外事件

或者,截止到 v1.4.0,使用其他(自定义表)选项的由 API 驱动的表和字段列表。此选项将允许您查询可用于用户的任何表中用于设置 ServiceNow 数据来源的数据。

自定义表选项应支持所有与预定义表列表相同的功能。

TableAPI 查询

TableAPI 返回适合在表面板中显示的数据。它允许按顺序选择要显示的字段以及筛选选项。查询编辑器还提供了一个用于限制查询返回的行数的字段。

显示上次查询结果的表面板示例。

显示

显示行为要显示的字段提供了一个选择器。也可以指定多个字段。这些字段将按指定的确切顺序返回。

显示值

显示值标志将使查询返回人性化值或显示值,而不是数值。

例如,如果没有此标志,则严重性 1 会仅显示 1。如果启用了该标志,则显示的值将为 1 - High

根据 ServiceNow API 文档,这可能会对性能产生负面影响。

注意

[...] 指定显示值可能会导致性能问题,因为它不是直接从数据库读取数据,并且可能包括引用其他字段和记录。

筛选器(通用)

筛选器行使用户能够根据多个字段和值标准缩小显示行的范围。

所有筛选器都与 ANDOR 运算相结合。

不使用自定义表时,以下字段可用(此列表将来会扩展)。

Active Asset Group Assigned To Escalation Issue Number Description Priority State Type Change Risk Change State Start Date End Date On Hold

选择自定义表时,将自动从 ServiceNow API 填充字段。

日期筛选条件
时间字段 运算符
打开时间 At or Before Today Not Today Before At or Before After At or After timestamp javascript:gs.daysAgo(30)
活动到期时间
关闭时间
到期日
预计开始时间
重新打开时间
解决时间
工作结束时间
工作开始时间
忽略时间

有关其他日期值,请参阅:https://developer.servicenow.com/app.do#!/api_doc?v=newyork&id=r_SGSYS-dateGenerate_S_S

运算符(通用,基于字符串)
  • Starts With

  • Ends With

  • like

  • Not Like

  • 等于

  • Not Equals

  • Is Empty

运算符(基于时间)
  • Today

  • Not Today

  • 早于

  • At or Before

  • 晚于

  • At or After

值选择取决于选择的筛选器的类型。

  • 布尔筛选器有 True/False 选项

  • 文本筛选器将允许键入任何值

  • 升级、优先级有一组固定的数值

排序依据

排序依据行使用户能够根据多个字段和值标准缩小显示行的范围。

所有筛选器均与 AND 运算相结合。将添加对其他运算符的支持。

限制

可以指定行限制以防止返回太多数据。默认值为 25。

时间字段

Time Field 是将您查询到的数据转换为时间序列的原因。将您的数据作为时间序列进行处理意味着所选“时间字段”中未落到控制面板/面板时间范围内的值将不会显示。

使用的默认时间字段是“打开时间”,但可以将该字段更改为任何包含时间值的可用字段。

提供了一个特殊值“忽略时间”,以允许结果“到目前为止”,并使筛选器能够控制显示哪些数据。

AggregateAPI 查询(统计信息)

AggregateAPI 将始终返回指标,其中包含以下聚合:平均值、最小值、最大值、总和。筛选也可用于缩小查询范围。

显示

显示行为要显示的指标提供了一个选择器。也可以指定多个指标。

筛选器(通用)

聚合筛选器提供了根据字段和值标准缩小显示指标范围的功能,类似于表选项。

所有筛选器均与 AND 运算相结合。将添加对其他运算符的支持。

统计筛选器选项与 TableAPI 相同。

聚合

指标聚合有四种类型,外加一个“计数”:

  • 平均值

  • 最低

  • 最高

  • 总和

  • 计数:计数将返回查询返回的指标的“数量”

分组依据

此选择器可以将指标拆分为较小的聚合。按“优先级”分组将返回带有优先级“标签”的指标,其中的唯一值已分隔开。

模板化

您可以使用变量代替查询中的硬编码名称。变量显示为控制面板顶部的下拉选择框。您可以使用这些下拉框来更改控制面板上显示的数据。

请参阅查询变量部分中的示例,了解如何添加查询变量并使用模板值引用该变量。

查询变量

如果添加 Query 类型的模板变量,则可以编写一个查询,该查询可以返回目录名称、键名或键值等显示为下拉选择框的项目。

例如,可以通过在模板变量 Query 设置中指定这样的查询,来获取包含 categories 的所有值的变量。

选择查询设置时,将显示筛选器部分,允许您选择类型字段。目前,类型仅限于事件和更改。选择类型时,系统会为您提供适用于该类型的字段列表。选择类型字段后,底部将显示值的预览,显示该类型/字段的可用选项。这些值将显示在控制面板的下拉列表中,您可以将其与模板一起使用来筛选控制面板的面板上的数据。

例如,如果您添加一个名为 category 的变量,然后选择“类型 = 事件”和“字段 = 类别”,那么将看到类型的选项列表。如果您随后向面板添加筛选器,并选择类别等于 ${category},则面板数据将仅显示从控制面板下拉列表中选择的该类别的数据。

导入按类别划分的事件控制面板以查看示例。

在查询中使用变量

共有两种语法:

$<varname> 名为 hostname 的模板变量的示例:

[[varname]] 名为 hostname 的模板变量的示例:

警报

支持标准 Grafana Alerting。图形面板中定义的任何查询都可用于生成警报。

以下是查询示例和警报。此查询将返回所有未解决的重大高优先级事件的图形:

当有超过五件未解决的重大高优先级事件时,将启动此警报:

测试警报规则将显示警报规则的输出,选择状态历史记录将显示警报从正常过渡到待处理再到警报的过程。

当警报处于待定状态时,图形视图将显示一条垂直线,顶部的心形图标将变为橙色。

满足警报条件后,该规则将变为红色。

在图形视图中,将出现红色垂直线,顶部的心形图标将变为红色。

为警报编写事件

测试版功能

  • 为您的 ServiceNow 数据来源配置通知渠道。

该功能将配置一个 Grafana 通知渠道,该渠道使用您配置的用户在 ServiceNow 实例上为此数据来源创建事件。

此操作要求 ServiceNow 数据来源用户具有编写事件的权限。

使用 HTTP 代理

使用 HTTP 代理时,Amazon Managed Grafana 需要将以下环境变量设置为代理的位置:

  • HTTP_PROXY (或者 http_proxy)

    • 完整路径:http://host:port

    • 或者只是:host:port

  • HTTPS_PROXY(或 https_proxy):

    • 完整路径:https://host:port

    • 或者只是:host:port

注释

截至该数据来源的 v1.4.0,Grafana 注释仍是一项测试版功能。注释使您能够在图表上叠加事件。

“注释”查询支持与标准查询编辑器相同的选项,但有一些细微的区别:

  • 只能选择一个“显示”列。这可能会在将来的改进中得到修复。

  • 时间字段为必填项。

常见问题解答

如果我们没有 ITSM 角色插件会怎样?

需要管理员访问权限才能执行以下操作

选项 1:授予 Grafana 用户管理员权限以允许访问所有表。

选项 2:创建角色并将 ACL 应用于 Grafana 必须访问的所有表。

需要管理员访问权限才能执行以下操作。

  1. 已登录的管理员需要提升对 security_admin 的访问权限级别。

    1. 在右上方的导航窗格中,选择个人资料图标。个人资料图标带有下拉插入符号指示器。

    2. 从下拉列表中,选择提升角色

    3. 在显示的模态中,选中 security_admin 复选框。

    4. 选择确定。

  2. 使用您想要的任何命名约定创建一个新角色。

    1. 导航到左侧导航栏中的“角色”部分:“系统安全”=>“用户和组”=>“角色”

    2. 选择顶部的新建

    3. 输入角色的名称和相关说明。

    4. 选择提交

  3. 创建新用户或修改具有所需角色的现有用户。

    1. 您在步骤 2 中创建的角色

    2. personalize_dictionary

    3. personalize_choices

    4. cmdb_read(这将授予对所有 cmdb 表的读取访问权限)

  4. 为所需的表和字段创建表 ACL。

    1. 为 sys_db_object 表创建 ACL。

      1. 在第二个搜索标题列的名称中,输入 sys_db_object,然后按 Enter

      2. 筛选结果应显示。选择以导航到记录。

      3. 在选项卡部分,选择控件

      4. 在页面的下半部分,确保选择了访问控制选项卡。

      5. 要创建新 ACL,请选择新建

      6. 更改操作选择以进行读取。

      7. 在屏幕下方的需要角色部分中,选择(双击)插入新行,然后搜索您创建的角色。

      8. 选择您创建的角色后,选择绿色复选标记。

      9. 选择屏幕下方的提交以创建 ACL,然后在出现模态时选择继续

  5. 为特定的 sys_db_object 字段创建 ACL。必须对以下每个字段重复以下步骤:“名称”、“标签”、“显示名称”和“扩展”表。

    1. 如果您仍处于 sys_db_object 的表记录视图中,在最靠近屏幕顶部的选项卡组中选择选项卡。

    2. 找到文件名并选择该文件名。

    3. 在下方的选项卡部分,在访问控制选项卡上选择新建

    4. 将操作改为读取。

    5. 在底部的“需要角色”表格中选择(双击)以插入一行文本。

    6. 搜索并选择您创建的角色,并选择绿色复选标记。

    7. 选择提交

    8. 请确保对所有必填字段重复这些步骤:“名称”、“标签”、“显示名称”和“扩展” 表。

  6. 在“更改”、“事件”表以及要从 Grafana 查询的任何其他非 CMDB 表上重复 4.1 中的步骤。不要重复 4.2 中的步骤;只有在 sys_db_object 中才需要执行该步骤。