Grafana数据源为SAP HANA®

SAP HANA®是一个高性能、加速数据驱动的内存数据库,实时决策和行动。这是开发和销售SAP®Grafana的SAP HANA数据源插件帮助你连接与Grafana SAP HANA实例。

与SAP HANA®Grafana企业插件,你可以想象您的SAP HANA与你所有的其他数据源的数据在Grafana日志和度量数据上下文。这个插件包括一个内置的查询编辑器,支持注释,它允许您设置报警阈值,控制访问,设置权限,等等。这个插件可以客户提供Grafana企业许可证。

充分利用SAP HANA®和Grafana企业

可视化SAP HANA数据不动它:Grafana查询数据直接生活而不是移动,通常需要你支付多余的存储和摄入。

组合板从多个来源:预构建和定制仪表板,来自不同数据源的数据在一个仪表板。

转换和计算在用户级别:用更少的数据准备,用户可以转换数据和运行各种计算。

在面板组合、计算和可视化:创建混合数据源面板显示相关数据从SAP HANA和其他来源。

需求

SAP HANA®数据源有以下要求:

  • 有效的许可证Grafana企业;指激活一个企业许可证
  • Grafana用户与服务器或组织管理作用;指权限
  • SAP HANA®URL、用户名和密码,以及必要的权限。
  • Grafana服务器之间的连接和SAP HANA®服务器,可能受到防火墙规则的保护,在这种情况下,您需要允许Grafana的IP连接。

特性

查询编辑器:插件提供了一个内置的SQL查询与语法高亮编辑器允许您可视化时间序列或表数据和汽车完成基本Grafana宏。

数据源的权限:控制谁可以查看或查询SAP HANA Grafana中的数据。

注释:覆盖SAP HANA事件或数据在任何Grafana图关联事件与其他图形数据。

报警:设置在SAP HANA alerts-based指标。

变量的查询:Grafana创建模板变量,基于SAP HANA数据,包括变量在SAP HANA仪表板交互式查询。

查询编辑器

SAP HANA®Grafana插件附带一个SQL查询编辑器,您可以输入任何HANA查询。如果你的查询返回timeseries数据,你可以作为可视化的timeseries格式在图面板。

查询编辑器提供了支持自动完成Grafana宏和语法高亮显示您的SQL查询。

图像

注释

您可以使用SAP HANA查询Grafana注释的来源。注释应该返回查询至少一次列和一个文本列。关于注释的更多信息,请参考注释

从SAP HANA创建注释

  1. 单击<年代trong>仪表板设置齿轮图标。
  2. 从左侧菜单中,单击<年代trong>注释并单击<年代trong>新。
  3. 从<年代trong>数据源下拉菜单中,选择您的SAP HANA数据源实例。
  4. 在<年代trong>查询字段中,输入至少一个SAP HANA查询,它返回一个时间字段和一个文本字段。
  5. 从<年代trong>格式下拉菜单,选择<年代trong>时间序列。
  6. 对于每一个注释,配置<年代trong>从字段。

注意:注释功能可在Grafana 7.2或更高。

注释编辑器

annotations-editor

注释在图形面板

annotations-in-graph

模板和变量

关于变量的更多信息,请参考模板和变量

从SAP HANA创建Grafana变量查询

添加一个新的SAP HANA查询变量,请参考添加一个查询变量

  1. 从<年代trong>仪表板设置齿轮图标,点击<年代trong>变量,然后单击<年代trong>新按钮。
  2. 使用“查询”变量类型,选择SAP HANA数据源作为“数据源”。
  3. 输入SAP HANA查询返回的项目列表。

例子:

下面的查询返回的不同的列表用户名用户表:

选择不同的(“用户名”)从“用户”

一定要查询只选择1列在你的变量。如果你的查询返回2列,第一列将用作显示值和第二列将被用作变量的实际值。如果你的查询返回超过2列,他们将被拒绝。

使用Grafana变量在SAP HANA查询

您可以使用任何grafana查询变量。下面的例子展示了如何使用您的查询的单/多变量。

——例如,以下查询select *从“用户”“城市”= ${城市},将从“用户”翻译成select *,“城市”=“伦敦”——在那里你可以看到${城市}变量转化为实际值的变量

类似于文本,也适用于数值字段变量。在以下示例中,${时代}变量是一个文本框,它接受数据,然后比较表中的数值字段。

select *从“用户”,“年龄”> ${时代}- - - - - -会被翻译成select *从“用户”“时代”>“36”

如果你的变量返回多个值,那么您可以使用它在SAP HANA查询的下面的条件等。注意变量使周围的括号在SAP HANA有效条件。

select *从“用户”,“城市”(${城市})——将从“用户”翻译成select *,“城市”(“伦敦”、“珀斯”、“德里”)——在那里你可以看到${}的城市变成了grafana变量列表选择。- - - - - -你也可以使用速记符号编写相同的查询如下所示select *从“用户”“城市”(城市)

宏在SAP HANA®查询

描述
__timeFilter美元(< time_column >) Grafana的时间范围适用于指定的列在原始查询。适用于日期/时间戳/长时间列。
__timeFilter美元(< time_column >、<格式>) 与上面一样。但是给指定的格式time_column存储在数据库中。
$ __timeFilter (< time_column >,“时代”,<格式>) 同上,但可以列在时代时使用你的时间。格式可以是一个“年代”,“女士”和“ns”。
__fromTimeFilter美元(< time_column >) 返回时间条件基于grafana不时在一场
__fromTimeFilter美元(< time_column >、< comparison_predicate >) 同上,但能够指定comparison_predicate
__fromTimeFilter美元(< time_column >、<格式>) 同上,但能够指定格式的时间列
__fromTimeFilter美元(< time_column >、<格式>、< comparison_predicate >) 同上,但能够指定comparison_predicate
__toTimeFilter美元(< time_column >) 返回时间条件基于grafana的时间超过一个时间字段
__toTimeFilter美元(< time_column >、< comparison_predicate >) 同上,但能够指定comparison_predicate
__toTimeFilter美元(< time_column >、<格式>) 同上,但能够指定格式的时间列
__toTimeFilter美元(< time_column >、<格式>、< comparison_predicate >) 同上,但能够指定comparison_predicate
__timeGroup美元(< time_column >、<时间>) 扩展了时间列分成间隔组。适用于日期/时间戳/长时间列。

美元__timeFilter宏(< time_column >)

下面的例子解释了__timeFilter美元(< time_column >)宏。

——在接下来的例子中,查询选择ts,温度从天气__timeFilter美元(ts) - - -将被翻译成选择ts,从天气温度t >的2021 - 02 - 24 t12:52:48z和ts <“2021 - 03 - 24 t12:52:48z”——在那里你可以看到grafana仪表板的时间范围查询中ts应用于列。

__timeFilter美元(< time_column >、<格式>)宏

在某些情况下,列在数据库可以存储在自定义格式。下面的例子解释了__timeFilter美元(< time_column >、<格式>)宏这有助于过滤基于grafana的定制时间戳的时间选择器。

选择TO_TIMESTAMP (“t”,“YYYYMMDDHH24MISS”)作为METRIC_TIME,“价值”从“原理图”。“台“__timeFilter美元(“t”、“YYYYMMDDHH24MISS”)——TS 20210421162012格式选择TO_TIMESTAMP (“t”、“YYYY-MON-DD”)作为METRIC_TIME,“价值”“原理图”。“台”,__timeFilter美元(“t”、“YYYY-MON-DD”)——TS 2021 - 1月- 15格式

宏,格式可以有效HANA格式之一匹配你的时间戳列。例子:YYYYMMDDHH24MISS是当你的数据存储在一个有效的格式20210421162012格式。

$ __timeFilter (< time_column >,“时代”,<格式>)宏

在某些情况下,您可能已经在数据库时间戳作为时代存储时间戳。下面的例子解释了$ __timeFilter (< time_column >,“时代”,<格式>)宏这有助于过滤时代基于grafana时间选择器的时间戳。宏,格式可以之一女士,年代ns。如果不指定,年代将被视为默认格式。

选择ADD_SECONDS(“1970-01-01”,“时间戳”)“METRIC_TIME”、“价值”从“原理图”。“台“__timeFilter美元(“时间戳”,“时代”)——例如:时间戳字段存储在epoch_second格式1257894000选择ADD_SECONDS(“1970-01-01”,“时间戳”)作为“METRIC_TIME”、“价值”“原理图”。“资源”,__timeFilter美元(“时间戳”,“时代”、“s”),例如:时间戳字段存储在epoch_second格式1257894000选择ADD_SECONDS(“1970-01-01”,“时间戳”/ 1000)“METRIC_TIME”、“价值”从“原理图”。“台“__timeFilter美元(“时间戳”,“时代”,“女士”),例如:时间戳字段存储在epoch_ms格式1257894000000选择ADD_SECONDS(“1970-01-01”,“时间戳”/ 1000000000)作为“METRIC_TIME”、“价值”“原理图”。“台”,__timeFilter美元(“时间戳”,“时代”、“ns”),例如:时间戳字段存储在epoch_nanoseconds格式1257894000000000000

而不是使用第三个参数__timeFilter美元,你可以使用epoch_s,epoch_msepoch_ns作为第二个参数。

选择ADD_SECONDS(“1970-01-01”,“时间戳”/ 1000)“METRIC_TIME”、“价值”从“原理图”。“台“__timeFilter美元(“时间戳”,“时代”,“女士”)一样——是选择ADD_SECONDS(“1970-01-01”,“时间戳”/ 1000)作为“METRIC_TIME”、“价值”“原理图”。“台”,__timeFilter美元(“时间戳”、“epoch_ms”)

$ __fromTimeFilter ()&$ __toTimeFilter ()

$ __fromTimeFilter ()宏扩展条件在时间领域基于grafana时间选择器的。

这个接受三个参数。第一个参数是时间字段名。你可以通过comparison_predicate或格式的时间列作为第二个参数。如果你想通过,那么格式是第二个参数和使用comparison_predicate作为第三个参数。

<格式>如果没有指定的格式,插件会假定时间时间/日期类型的列。如果你的时间列存储在任何其他比时间/日期格式,然后将该格式作为第二个参数传递。<年代trong><格式>可以是其中一个epoch_s,epoch_ms,epoch_ns或任何其他自定义格式YYYY-MM-DD

< comparison_predicate >:可选参数。如果不通过,插件将使用>比较谓词。<年代trong>< comparison_predicate >可以是其中一个=,! =,< >,<,< =,>,> =

$ __toTimeFilter ()作品一样$ __fromTimeFilter ()。而不是使用grafana从时间,它将使用。也默认比较谓词<

见下面的宏的例子为例子。

__timeGroup美元(< time_column >、<时间>)

例如,宏美元__timeGroup (timecol, 1小时)是扩大到SERIES_ROUND (“timecol”,间隔1小时)在查询。更多信息SERIES_ROUND功能,请参考SAP HANA文档。在SAP HANA区间查询后间隔是有效的。

时间间隔 持续时间
一分钟
年代 第二个
h 小时
d 一天
y 一年

例子:

下面的例子解释了__timeGroup美元(< time_column >、<时间>)宏。区间应该在一个格式1 h,3米等。

选择美元__timeGroup(时间戳、1 h),“用户”,(“价值”)和“价值”从“salesdata __timeFilter美元(“时间戳”)组__timeGroup美元(时间戳、1 h),“用户”令美元__timeGroup ASC(时间戳,1 h)

将翻译成以下查询在哪里美元__timeGroup(时间戳,1小时)是扩展到SERIES_ROUND(“时间戳”,间隔1小时)

选择SERIES_ROUND(“时间戳”,间隔1小时)作为“时间戳”,“用户”,(“价值”)和“价值”与“salesdata”,“时间戳”>“2020 - 01 - 01 t00:00:00z”和“时间戳”<”2020 - 01 - 01 t23:00:00z GROUP BY SERIES_ROUND(“时间戳”,间隔1小时),“用户”,“时间戳”ASC

注意:当使用group by__timeGroup美元宏,确保你的选择,按字段排序字段名称相同的群组。否则,HANA可能无法识别查询。

如果你不想硬编码的时间间隔$ __timeGroup ()函数,那么你可以把grafana通过指定__interval美元作为你的时间间隔。Grafana将从仪表板计算间隔时间范围。下面给出的示例查询。

选择__timeGroup美元(时间戳,__interval美元),(“价值”)和“价值”从“salesdata __timeFilter美元(“时间戳”)组__timeGroup美元(时间戳,__interval美元)ORDER BY __timeGroup美元(时间戳,__interval美元)ASC

基于仪表板将翻译成以下查询时间范围。

选择SERIES_ROUND(“时间戳”,间隔1分钟),(“价值”)和“价值”与“salesdata”,“时间戳”>“2019 - 12 - 31 t23:09:14z”和“时间戳”<”2020 - 01 - 01 t23:17:54z GROUP BY SERIES_ROUND(“时间戳”,间隔1分钟)按SERIES_ROUND(“时间戳”,间隔1分钟)ASC

您还可以使用其他宏所描述在这里

宏的例子

下面是不同的宏当grafana的例子2014 - 11 - 12 - t11:45:26.371z从时间和2015 - 11 - 12 - t11:45:26.371z时间。

格式 扩大到
__timeFilter美元(TS) “t”>“2014 - 11 - 12 t11:45:26z”和“t”<“2015 - 11 - 12 t11:45:26z”
__timeFilter美元(“t”,“YYYYMMDDHH24MISS”) TO_TIMESTAMP (“t”、“YYYYMMDDHH24MISS”) >“2014 - 11 - 12 t11:45:26z”和TO_TIMESTAMP (“t”、“YYYYMMDDHH24MISS”) <“2015 - 11 - 12 t11:45:26z”
__timeFilter美元(“t”,“epoch_ms”) “t”>“1415792726000”和“t”<‘1447328726000’
__timeFilter美元(“t”,“epoch_ns”) “t”>“1415792726000000000”和“t”<‘1447328726000000000’
__fromTimeFilter美元(TS) “t”>“2014 - 11 - 12 t11:45:26z”
__fromTimeFilter美元(“t”,“时代”) ADD_SECONDS (“1970-01-01”、“t”) >“2014 - 11 - 12 t11:45:26z”
__fromTimeFilter美元(“t”,“epoch_s”) ADD_SECONDS (“1970-01-01”、“t”) >“2014 - 11 - 12 t11:45:26z”
__fromTimeFilter美元(“t”,“epoch_ms”) ADD_SECONDS (' 1970-01-01 ', (TS / 1000)) >“2014 - 11 - 12 t11:45:26z”
__fromTimeFilter美元(“t”,“epoch_ns”) ADD_SECONDS (' 1970-01-01 ', (“TS / 1000000000)) >“2014 - 11 - 12 t11:45:26z”
__fromTimeFilter美元(“t”,“YYYYMMDDHH24MISS”) TO_TIMESTAMP (“t”、“YYYYMMDDHH24MISS”) >“2014 - 11 - 12 t11:45:26z”
__fromTimeFilter美元(“t”,“> =”) “t”> = 2014 - 11 - 12 - t11:45:26z”
__fromTimeFilter美元(“t”,“epoch_ms”,“> =”) ADD_SECONDS (' 1970-01-01 ', (TS / 1000)) > = ' 2014 - 11 - 12 t11:45:26z '
__fromTimeFilter美元(“t”,“YYYYMMDDHH24MISS”,“> =”) TO_TIMESTAMP (“t”、“YYYYMMDDHH24MISS”) > = ' 2014 - 11 - 12 t11:45:26z '
__toTimeFilter美元(TS) “t”<“2015 - 11 - 12 t11:45:26z”
美元__timeGroup (“t”,“1 h”) SERIES_ROUND (“t”,间隔1小时)
__timeGroup美元(“t”,“__interval美元”) SERIES_ROUND (“t”,间隔6小时)

报警

轻松设置警报在特定SAP HANA指标或查询您已经创建了警报

步骤创建一个SAP HANA Grafana警报

  1. 创建一个图形面板在仪表板
  2. 在时间序列中创建一个SAP HANA查询格式
  3. 单击<年代trong>警报选项卡并指定警报标准
  4. 点击<年代trong>测试规则查询按钮来测试您的提醒
  5. 指定提醒收件人,消息和错误处理
  6. 保存仪表板

图像

提醒non-timeseries数据

如果你需要设置警报non-timeseries数据,使用TO_TIMESTAMP (“$ {__to:日期}”)宏使non-timeseries指标成为timeseries。这将你的指标转化为单点时间序列查询。查询的格式如下所示

选择TO_TIMESTAMP (“$ {__to:日期}”),从表> < <标准> <你条件>

例子:

在以下示例中,表有四个字段用户名,年龄,城市角色。这个表没有任何时间字段。我们想通知当用户的数量dev小于3的角色。

选择TO_TIMESTAMP (“$ {__to:日期}”),count(*),“数”(选择“约翰”作为“用户名”,32“年龄”、“奈”是“城市”,“开发”“角色”从虚拟联盟选择“雅各”“用户名”,32“年龄”、“伦敦”作为“城市”、“会计”“角色”从虚拟联盟选择“阿里”“用户名”,42“年龄”、“德里”作为“城市”,“管理”“角色”从虚拟联盟选择“拉”“用户名”,12“年龄”、“纽约”作为“城市”、“首席执行官”“角色”从虚拟联盟选择“莎拉”“用户名”,35“年龄”、“开普敦”作为“城市”,“开发”“角色”从虚拟联盟选择“瑞奇”“用户名”,25“年龄”、“伦敦”作为“城市”、“会计”“角色”从虚拟联盟选择“安吉丽娜”“用户名”,31岁的“时代”,“伦敦”作为“城市”、“cxo”假“角色”),“角色”=“开发”

图像

配置

一旦SAP HANA®Grafana安装插件,请执行以下步骤来配置数据源。

  • 作为管理员用户登录
  • 导航到配置从grafana菜单左边
  • 单击数据源>添加数据源和选择<年代trong>SAP HANA
  • 提供必要的信息,解释配置编辑器部分。

配置编辑器

配置编辑器需要以下信息。

字段名 细节
服务器地址 强制性的提供SAP HANA实例的地址。例子:xxxxxxx-xxxx-xxxx-xxxx-xxxxxxx.hana.trial-us10.hanacloud.ondemand.com
服务器端口 强制性的提供SAP HANA实例的端口。例子:443年
用户名 强制性的用户名连接使用SAP HANA实例。注意:这个用户必须要求权限查询数据库如下解释
密码 强制性的密码的用户
跳过TLS验证 可选启用这个选项如果你需要跳过TLS验证。<年代trong>默认值:
TLS客户机身份验证 可选启用这个选项如果你需要提供客户端证书和密钥。<年代trong>默认值:
与CA证书 可选需要验证签名TLS确实的事情<年代trong>默认值:
默认模式 可选使用默认模式。如果不指定,您需要指定每个查询的模式。

一旦你上面的信息,点击<年代trong>保存&测试。这一行动将验证连接设置用户凭证。

注意:保存&测试验证不检查任何访问权限模式。您可能需要明确授予模式读取权限给用户。

访问和权限

连接Grafana SAP HANA®,使用专用凭证。只提供必需的权限给用户。

步骤1:

创建一个受限制的用户提供用户名和密码。下面的查询创建一个受限制的用户就是一个例子。这个查询也禁用密码更改。

创建限制用户<密码> <用户>密码没有FORCE_FIRST_PASSWORD_CHANGE;

步骤2:

允许用户通过客户如grafana连接系统

改变用户<用户>启用客户机连接;

步骤3:

给用户访问必要的视图/表/模式

改变用户<用户>公众授予角色;格兰特选择模式<模式> <用户>;

用户级权限

限制访问SAP HANA通过单击数据源配置的权限选项卡页面启用数据源的权限。在权限页面,管理员可以使权限和限制对特定用户的查询权限和团队。

供应

相反,Grafana UI,您可以使用Grafana提供数据源配置特性。下面给出的示例配置文件

apiVersion: 1数据源:名称:SAP HANA类型:grafana-saphana-datasource uid: sap_hana访问:代理orgId: 1 jsonData:服务器:xxxxxx-xxxxxx-xxxxxx-xxxxxx-xxxxxx.hana.trial-us10.hanacloud.ondemand.com端口:443用户名:GRAFANA_HANA_USERNAME tlsSkipVerify:假tlsAuth:假tlsAuthWithCACert:假defaultSchema:示例secureJsonData:密码:美元SECURE_HANA_PASSWORD_FROM_ENVIRONMENT_VAR tlsCACert: tlsClientCert: tlsClientKey:版本:1可编辑:假的

了解更多

SAP HANA®是SAP SE的商标或注册商标或其附属公司在德国和其他一些国家。