菜单
文档面包屑箭头 插件面包屑箭头 面包屑箭头 用于 SAP HANA® 的 Grafana 数据源

用于 SAP HANA® 的 Grafana 数据源

SAP HANA® 是一款高性能的内存数据库,可加速数据驱动的实时决策和行动。它由 SAP® 开发和销售。 Grafana 的 SAP HANA 数据源插件可帮助您将 SAP HANA 实例连接到 Grafana。

使用 SAP HANA® Grafana 企业版插件,您可以将 SAP HANA 数据与 Grafana 中所有其他数据源以及上下文中的日志和指标数据一起可视化。此插件包含一个内置的查询编辑器,支持注释,并允许您设置警报阈值、控制访问、设置权限等。此插件适用于拥有 Grafana 企业版许可证的客户。

image

充分利用 SAP HANA® 和 Grafana 企业版

无需移动即可可视化 SAP HANA 数据:Grafana 直接查询数据所在位置,而不是移动数据,这通常需要您支付冗余存储和摄取费用。

组合来自多个来源的面板:使用预构建和自定义仪表盘,在一个仪表盘中显示来自许多不同数据源的数据。

在用户级别转换和计算:通过减少数据准备工作,用户可以转换数据并运行各种计算。

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

要求

此插件具有以下要求

  • SAP HANA® URL、用户名和密码,以及必要的权限
  • Grafana 服务器和 SAP HANA® 服务器之间的连接,这可能受到防火墙规则的保护,在这种情况下,您需要允许 Grafana 的 IP 连接
  • 以下帐户类型之一

功能

查询编辑器:该插件带有一个内置的 SQL 查询编辑器,具有语法高亮显示功能,允许您可视化时间序列或表格数据,并自动完成基本的 Grafana 宏。

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

注释:在任何 Grafana 图表上叠加 SAP HANA 事件或数据,以将事件与其他图表数据关联起来。

警报:设置基于存储在 SAP HANA 中的指标的警报。

查询变量:在 Grafana 中创建模板变量,这些变量基于 SAP HANA 数据,并在 SAP HANA 查询中包含变量以使仪表盘具有交互性。

租户数据库:通过主机和端口或通过主机、数据库名称和实例编号连接到租户。

查询编辑器

SAP HANA® Grafana 插件带有一个 SQL 查询编辑器,您可以在其中输入任何 HANA 查询。如果您的查询返回时间序列数据,您可以将其格式化为时间序列以在图形面板中进行可视化。

查询编辑器为支持的 Grafana 宏提供自动完成功能,并突出显示 SQL 查询的语法。

image

注释

您可以使用 SAP HANA 查询作为 Grafana 注释的来源。您的注释查询应至少返回一个时间列和一个文本列。有关注释的更多信息,请参阅 注释

从 SAP HANA 创建注释

  1. 点击**仪表盘设置**齿轮图标。
  2. 从左侧菜单中,点击**注释**,然后点击**新建**。
  3. 从**数据源**下拉菜单中,选择您的 SAP HANA 数据源实例。
  4. 在**查询**字段中,输入一个 SAP HANA 查询,该查询至少返回一个时间字段和一个文本字段。
  5. 从**格式化为**下拉菜单中,选择**时间序列**。
  6. 为每个注释配置**从**字段。

注意:注释功能在 Grafana 7.2 或更高版本中可用。

注释编辑器

annotations-editor

图形面板中的注释

annotations-in-graph

模板和变量

有关变量的更多信息,请参阅模板和变量

从 SAP HANA 查询创建 Grafana 变量

要添加新的 SAP HANA 查询变量,请参阅添加查询变量

  1. 从**仪表盘设置**齿轮图标中,点击**变量**,然后点击**新建**按钮。
  2. 使用**查询**变量类型,选择 SAP HANA 数据源作为**数据源**。
  3. 输入返回项目列表的 SAP HANA 查询。

示例

以下查询从users表返回username的唯一列表

sql
select distinct("username") from "users"

另一种选择是创建一个键/值变量的查询。查询应返回两个名为__text__value的列。__text列的值应唯一(如果它不唯一,则使用第一个值)。下拉列表中的选项将具有文本和值,允许您将友好的名称作为文本,并将 ID 作为值。一个使用主机名作为文本和 ID 作为值的示例查询

sql
SELECT host_name AS "__text", host_id AS "__value" FROM hosts_list_table

确保在变量查询中只选择 1 列。如果您的查询返回 2 列,请确保它们正确设置了__text__value列。否则,第一列将用作显示值,第二列将用作变量的实际值。如果您的查询返回超过 2 列,则只使用第一列,其余列将被忽略。

在 SAP HANA 查询中使用 Grafana 变量

您可以在查询中使用任何 Grafana 变量。以下示例显示了如何在查询中使用单/多变量。

sql
-- For example, following query
select * from "users" where "city" = ${city}
-- will be translated into
select * from "users" where "city" = 'london'
--- where you can see ${city} variable translated into actual value in the variable

与文本类似,变量也适用于数字字段。在下面的示例中,${age}是一个文本框变量,它接受数字,然后与表中的数字字段进行比较。

sql
select * from "users" where "age" > ${age}
--- wil be translated into
select * from "users" where "age" > '36'

如果您的变量返回多个值,则可以在 SAP HANA 查询的in条件中使用它,如下所示。请注意围绕变量的括号,以使where in条件在 SAP HANA 中有效。

sql
select * from "users" where "city" in (${cities})
--- will be translated into
select * from "users" where "city" in ('london','perth','delhi')
--- where you can see ${cities} turned into a list of grafana variables selected.
--- You can also write the same query using shorthand notation as shown below
select * from "users" where "city" in ($cities)

SAP HANA® 查询中的宏

描述
$__timeFilter(<time_column>)在原始查询中使用时,将 Grafana 的时间范围应用于指定的列。适用于日期/时间戳/长时列。
$__timeFilter(<time_column>,<format>)与上面相同。但能够指定数据库中存储的time_column的格式。
$__timeFilter(<time_column>,"epoch",<format>)与上面相同,但当您的时间列为 epoch 时可以使用。format 可以是’s’、‘ms’和’ns’之一。
$__fromTimeFilter(<time_column>)根据 Grafana 的起始时间返回基于时间字段的时间条件
$__fromTimeFilter(<time_column>,<comparison_predicate>)与上面相同,但能够指定comparison_predicate
$__fromTimeFilter(<time_column>,<format>)与上面相同,但能够指定时间列的格式
$__fromTimeFilter(<time_column>,<format>,<comparison_predicate>)与上面相同,但能够指定comparison_predicate
$__toTimeFilter(<time_column>)根据 Grafana 的结束时间返回基于时间字段的时间条件
$__toTimeFilter(<time_column>,<comparison_predicate>)与上面相同,但能够指定comparison_predicate
$__toTimeFilter(<time_column>,<format>)与上面相同,但能够指定时间列的格式
$__toTimeFilter(<time_column>,<format>,<comparison_predicate>)与上面相同,但能够指定comparison_predicate
$__timeGroup(<time_column>,<interval>)将时间列扩展为间隔组。适用于日期/时间戳/长时列。
$__fromTimeStamp()扩展为仪表盘中的起始时间戳。例如:timestamp'2023-01-11T00:02:03Z'
$__toTimeStamp()扩展为仪表盘中的结束时间戳。例如:timestamp'2023-01-12T00:02:03Z'

$__timeFilter(<time_column>) 宏

以下示例解释了$__timeFilter(<time_column>)宏。

sql
-- In the following example, the query
select ts, temperature from weather where $__timeFilter(ts)
--- will be translated into
select ts, temperature from weather where ts > '2021-02-24T12:52:48Z' AND ts < '2021-03-24T12:52:48Z'
--- where you can see the grafana dashboard's time range is applied to the column ts in the query.

$__timeFilter(<time_column>,\<format>)

在某些情况下,数据库中的时间列可能以自定义格式存储。以下示例解释了$__timeFilter(<time_column>,<format>)宏,该宏有助于根据时间选择器过滤自定义时间戳。

sql
SELECT TO_TIMESTAMP("TS",'YYYYMMDDHH24MISS') AS METRIC_TIME , "VALUE" FROM "SCH"."TBL" WHERE $__timeFilter("TS","YYYYMMDDHH24MISS") -- TS is in 20210421162012 format
SELECT TO_TIMESTAMP("TS",'YYYY-MON-DD') AS METRIC_TIME , "VALUE" FROM "SCH"."TBL" WHERE $__timeFilter("TS","YYYY-MON-DD") -- TS is in 2021-JAN-15 format

在宏中,format 可以是与您的时间戳列匹配的任何有效的 HANA 格式。例如:YYYYMMDDHH24MISS是您的数据存储在20210421162012格式时的一个有效格式。

$__timeFilter(<time_column>,"epoch",\<format>)

在某些情况下,您可能在数据库中将时间戳存储为 epoch 时间戳。以下示例解释了$__timeFilter(<time_column>,"epoch",<format>)宏,该宏有助于根据时间选择器过滤 epoch 时间戳。在宏中,format 可以是mssns之一。如果未指定,则s将被视为默认格式。

sql
SELECT ADD_SECONDS('1970-01-01', "TIMESTAMP") AS "METRIC_TIME", "VALUE" FROM "SCH"."TBL" WHERE $__timeFilter("TIMESTAMP","epoch") -- Example : TIMESTAMP field stored in epoch_second format 1257894000
SELECT ADD_SECONDS('1970-01-01', "TIMESTAMP") AS "METRIC_TIME", "VALUE" FROM "SCH"."TBL" WHERE $__timeFilter("TIMESTAMP","epoch","s") -- Example : TIMESTAMP field stored in epoch_second format 1257894000
SELECT ADD_SECONDS('1970-01-01', "TIMESTAMP"/1000) AS "METRIC_TIME", "VALUE" FROM "SCH"."TBL" WHERE $__timeFilter("TIMESTAMP","epoch","ms") -- Example : TIMESTAMP field stored in epoch_ms format 1257894000000
SELECT ADD_SECONDS('1970-01-01', "TIMESTAMP"/1000000000) AS "METRIC_TIME", "VALUE" FROM "SCH"."TBL" WHERE $__timeFilter("TIMESTAMP","epoch","ns") -- Example : TIMESTAMP field stored in epoch_nanoseconds format 1257894000000000000

无需使用$__timeFilter的第三个参数,您可以使用epoch_sepoch_msepoch_ns之一作为您的第二个参数。

sql
SELECT ADD_SECONDS('1970-01-01', "TIMESTAMP"/1000) AS "METRIC_TIME", "VALUE" FROM "SCH"."TBL" WHERE $__timeFilter("TIMESTAMP","epoch","ms")
-- is same as
SELECT ADD_SECONDS('1970-01-01', "TIMESTAMP"/1000) AS "METRIC_TIME", "VALUE" FROM "SCH"."TBL" WHERE $__timeFilter("TIMESTAMP","epoch_ms")

$__fromTimeFilter() & $__toTimeFilter()

$__fromTimeFilter()宏扩展为基于时间选择器的起始时间在时间字段上的条件。

这接受三个参数。第一个参数是时间字段名称。您可以将comparison_predicate或时间列的格式作为第二个参数传递。如果要同时传递两者,则格式为第二个参数,并将comparison_predicate作为第三个参数使用。

<format> 如果未指定格式,插件将假设时间列为时间戳/日期类型。如果您的时间列存储在时间戳/日期以外的任何其他格式中,则将格式作为第二个参数传递。<format>可以是epoch_sepoch_msepoch_ns或任何其他自定义格式,例如YYYY-MM-DD

<comparison_predicate>:可选参数。如果未传递,插件将使用>作为比较谓词。<comparison_predicate>可以是=!=<><<=>>=之一

$__toTimeFilter()的工作方式与$__fromTimeFilter()相同。它将使用结束时间,而不是 Grafana 的起始时间。此外,默认比较谓词将为<

请参阅下面的宏示例以了解示例。

$__timeGroup(<time_column>,<interval>) 宏

例如,宏$__timeGroup(timecol,1h)在查询中扩展为SERIES_ROUND("timecol", 'INTERVAL 1 HOUR')。有关SERIES_ROUND函数的更多信息,请参阅SAP HANA 文档。以下间隔在 SAP HANA 间隔查询中有效。

间隔持续时间
m分钟
s
h小时
d
M
y

示例

以下示例解释了$__timeGroup(<time_column>,<interval>)宏。间隔应采用1h3m等格式之一。

sql
SELECT $__timeGroup(timestamp,1h),  "user", sum("value") as "value"
FROM "salesdata"
WHERE $__timeFilter("timestamp")
GROUP BY $__timeGroup(timestamp,1h), "user"
ORDER BY $__timeGroup(timestamp,1h) ASC

将转换为以下查询,其中$__timeGroup(timestamp,1h)扩展为SERIES_ROUND("timestamp", 'INTERVAL 1 HOUR')

sql
SELECT SERIES_ROUND("timestamp", 'INTERVAL 1 HOUR') as "timestamp",  "user", sum("value") as "value"
FROM "salesdata"
WHERE "timestamp" > '2020-01-01T00:00:00Z' AND "timestamp" < '2020-01-01T23:00:00Z'
GROUP BY SERIES_ROUND("timestamp", 'INTERVAL 1 HOUR'), "user"
ORDER BY "timestamp" ASC

注意:在使用带$__timeGroup宏的 group by 时,请确保您的 select、sort by 字段与您的 group by 字段具有相同的名称。否则,HANA 可能无法识别查询。

如果您不想在$__timeGroup()函数中硬编码间隔,则可以通过将$__interval指定为您的间隔来将其留给 Grafana。Grafana 将根据仪表盘时间范围计算该间隔。下面给出了示例查询。

sql
SELECT $__timeGroup(timestamp, $__interval), sum("value") as "value"
FROM "salesdata"
WHERE $__timeFilter("timestamp")
GROUP BY $__timeGroup(timestamp, $__interval)
ORDER BY $__timeGroup(timestamp, $__interval) ASC

将根据仪表盘时间范围转换为以下查询。

sql
SELECT SERIES_ROUND("timestamp", 'INTERVAL 1 MINUTE'), sum("value") as "value"
FROM "salesdata"
WHERE "timestamp" > '2019-12-31T23:09:14Z' AND "timestamp" < '2020-01-01T23:17:54Z'
GROUP BY SERIES_ROUND("timestamp", 'INTERVAL 1 MINUTE')
ORDER BY SERIES_ROUND("timestamp", 'INTERVAL 1 MINUTE') ASC

您还可以使用此处描述的任何其他宏此处

宏示例

以下是 Grafana 将2014-11-12T11:45:26.371Z作为起始时间,2015-11-12T11:45:26.371Z作为结束时间时不同宏的示例。

格式扩展为
$__timeFilter("TS")"TS" > '2014-11-12T11:45:26Z' AND "TS" < '2015-11-12T11:45:26Z'
$__timeFilter("TS","YYYYMMDDHH24MISS")TO_TIMESTAMP("TS",'YYYYMMDDHH24MISS') > '2014-11-12T11:45:26Z' AND TO_TIMESTAMP("TS",'YYYYMMDDHH24MISS') < '2015-11-12T11:45:26Z'
$__timeFilter("TS","epoch_ms")"TS" > '1415792726000' AND "TS" < '1447328726000'
$__timeFilter("TS","epoch_ns")"TS" > '1415792726000000000' AND "TS" < '1447328726000000000'
$__fromTimeFilter("TS")"TS" > '2014-11-12T11:45:26Z'
$__fromTimeFilter("TS","epoch")ADD_SECONDS( '1970-01-01', "TS" ) > '2014-11-12T11:45:26Z'
$__fromTimeFilter("TS","epoch_s")ADD_SECONDS( '1970-01-01', "TS" ) > '2014-11-12T11:45:26Z'
$__fromTimeFilter("TS","epoch_ms")ADD_SECONDS( '1970-01-01', ("TS" / 1000)) > '2014-11-12T11:45:26Z'
$__fromTimeFilter("TS","epoch_ns")ADD_SECONDS( '1970-01-01', ("TS" / 1000000000)) > '2014-11-12T11:45:26Z'
$__fromTimeFilter("TS","YYYYMMDDHH24MISS")TO_TIMESTAMP("TS",'YYYYMMDDHH24MISS') > '2014-11-12T11:45:26Z'
$__fromTimeFilter("TS",">=")"TS" >= '2014-11-12T11:45:26Z'
$__fromTimeFilter("TS","epoch_ms",">=")ADD_SECONDS( '1970-01-01', ("TS" / 1000)) >= '2014-11-12T11:45:26Z'
$__fromTimeFilter("TS","YYYYMMDDHH24MISS",">=")TO_TIMESTAMP("TS",'YYYYMMDDHH24MISS') >= '2014-11-12T11:45:26Z'
$__toTimeFilter("TS")"TS" < '2015-11-12T11:45:26Z'
$__timeGroup("TS","1h")SERIES_ROUND("TS", 'INTERVAL 1 HOUR')
$__timeGroup("TS","$__interval")SERIES_ROUND("TS", 'INTERVAL 6 HOUR')

将数据可视化为日志

要在资源管理器中的**日志**查看器中可视化数据,请在查询中使用日志格式。

当您使用日志格式查询时,请在查询中包含至少一个时间列和一个字符串列或内容列。或者,您可以使用名为level的第三列设置特定行的日志级别。有关受支持的日志级别及其关键字的信息,请参阅探索中的日志。如果查询返回任何其他列,它们将被视为日志中的其他字段或检测到的字段。

这是一个有效的日志查询示例

sql
SELECT 'hello foo' AS "content", timestamp'2021-12-31 23:59:59' AS "start_time", 'warn'  AS "level" FROM DUMMY UNION
SELECT 'hello bar' AS "content", timestamp'2021-12-30 14:12:59' AS "start_time", 'error' AS "level"FROM DUMMY  UNION
SELECT 'hello baz' AS "content", timestamp'2021-12-30 23:59:59' AS "start_time", 'warn' AS "level" FROM DUMMY UNION
SELECT 'hello qux' AS "content", timestamp'2021-12-29 23:59:59' AS "start_time", 'info' AS "level" FROM DUMMY UNION
SELECT 'hello quux' AS "content", timestamp'2021-12-28 23:59:59' AS "start_time", 'unknown' AS "level" FROM DUMMY UNION
SELECT 'hello quuz' AS "content", timestamp'2021-12-27 23:59:59' AS "start_time", 'info' AS "level" FROM DUMMY;

警报

轻松设置特定 SAP HANA 指标的警报或对您创建的查询发出警报

在 Grafana 中创建 SAP HANA 警报的步骤

  1. 在您的仪表盘中创建一个图形面板。
  2. 以时间序列格式创建 SAP HANA 查询。
  3. 点击**警报**选项卡并指定警报条件。
  4. 点击**测试规则**按钮测试您的警报查询。
  5. 指定警报接收者、消息和错误处理。
  6. 保存仪表盘。

image

对非时间序列数据进行警报

如果需要对非时间序列数据设置警报,请使用TO_TIMESTAMP('${__to:date}')宏将非时间序列指标转换为时间序列。这会将您的指标转换为单点时间序列查询。查询格式如下所示

sql
SELECT TO_TIMESTAMP('${__to:date}'),  <METRIC> FROM <TABLE> WHERE <YOUR CONDITIONS>

示例

在下面的示例中,表有四个字段,称为usernameagecityrole。此表没有任何时间字段。当dev角色的用户数量少于 3 时,我们需要发出通知。

sql
SELECT  TO_TIMESTAMP('${__to:date}'), count(*) as "count" FROM (
   SELECT 'John' AS "username", 32 AS "age", 'Chennai' as "city", 'dev' as "role" FROM dummy
   UNION ALL SELECT 'Jacob' AS "username", 32 AS "age", 'London' as "city", 'accountant' as "role" FROM dummy
   UNION ALL SELECT 'Ali' AS "username", 42 AS "age", 'Delhi' as "city", 'admin' as "role" FROM dummy
   UNION ALL SELECT 'Raja' AS "username", 12 AS "age", 'New York' as "city", 'ceo' as "role" FROM dummy
   UNION ALL SELECT 'Sara' AS "username", 35 AS "age", 'Cape Town' as "city", 'dev' as "role" FROM dummy
   UNION ALL SELECT 'Ricky' AS "username", 25 AS "age", 'London' as "city", 'accountant' as "role" FROM dummy
   UNION ALL SELECT 'Angelina' AS "username", 31 AS "age", 'London' as "city", 'cxo' as "role" FROM dummy
) WHERE "role" = 'dev'

image

配置

安装 SAP HANA® Grafana 插件后,请按照以下步骤配置数据源

  • 以管理员用户身份登录。
  • 从左侧的 Grafana 菜单中导航到配置。

  • 点击数据源 > 添加数据源,并选择**SAP HANA**。
  • 提供必要的资料,如配置编辑器部分所述。

配置编辑器

配置编辑器需要以下信息

字段名称详情
服务器地址**必填** 提供 SAP HANA 实例的基本地址。(不包括 http/https 前缀)例如:xxxxxxx-xxxx-xxxx-xxxx-xxxxxxx.hana.trial-us10.hanacloud.ondemand.com
用户名**必填** 用于连接 SAP HANA 实例的用户名。注意:此用户必须具有查询数据库所需的权限,如下所述
服务器端口可选 提供 SAP HANA 实例的端口。例如:443 / 39013。通常,可以通过 443 连接 SAP HANA 云,并通过其各自的端口连接本地/多租户实例。对于租户实例,使用端口的替代方法是填写数据库名称和实例编号
跳过 TLS 验证可选 如果您需要跳过 TLS 验证,请启用此选项。**默认值**:false
TLS 客户端认证可选 如果您需要提供客户端证书和密钥,请启用此选项。**默认值**:false
使用 CA 证书可选 用于验证自签名 TLS 证书 **默认值**:false
默认模式可选 要使用的默认模式。如果未指定,则需要在每个查询中指定模式。
数据库名称可选 适用于租户。您要连接到的数据库名称
实例编号可选 适用于租户。实例编号。我们将使用以下公式推断服务器端口:3<instance>13 SAP HANA® 文档

填写上述信息后,点击**保存并测试**。此操作将验证连接设置用户凭据。

注意:保存并测试验证不会检查模式的任何访问权限。您可能需要显式地授予用户模式读取权限。

查找正确的连接端口

创建数据源配置时,需要指定 SAP HANA® 实例的正确端口号。对于 SAP HANA® 云实例,通常为443。对于本地/多租户实例,您可以按照SAP HANA® 文档中提供的指南查找相应的端口号。

您可以通过查询M_SERVICES系统视图来确定特定租户数据库使用的端口,无论是从租户数据库本身还是从系统数据库。

  • 从租户数据库:SELECT SERVICE_NAME, PORT, SQL_PORT, (PORT + 2) HTTP_PORT FROM SYS.M_SERVICES WHERE ((SERVICE_NAME='indexserver' and COORDINATOR_TYPE= 'MASTER') or (SERVICE_NAME='xsengine'))
  • 从系统数据库:SELECT DATABASE_NAME, SERVICE_NAME, PORT, SQL_PORT, (PORT + 2) HTTP_PORT FROM SYS_DATABASES.M_SERVICES WHERE DATABASE_NAME='<DBNAME>' and ((SERVICE_NAME='indexserver' and COORDINATOR_TYPE= 'MASTER') or (SERVICE_NAME='xsengine'))

访问和权限

要将 Grafana 连接到 SAP HANA®,请使用专用凭据。仅向用户提供所需的权限。

步骤 1

创建一个具有用户名和密码的受限用户。以下查询是创建受限用户的示例。此查询还禁用强制更改密码

sql
CREATE RESTRICTED USER <USER> PASSWORD <PASSWORD> NO FORCE_FIRST_PASSWORD_CHANGE;

步骤 2

允许用户通过 Grafana 等客户端连接系统

sql
ALTER USER <USER> ENABLE CLIENT CONNECT;

步骤 3

授予用户访问必要的视图、表和模式

sql
ALTER USER <USER> GRANT ROLE PUBLIC;
GRANT SELECT ON SCHEMA <SCHEMA> TO <USER>;

用户级权限

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

预配

您可以使用 Grafana 预配来预配数据源,而不是使用 Grafana UI。例如,请参阅以下 YAML 代码块

yml
apiVersion: 1
datasources:
  - name: SAP HANA
    type: grafana-saphana-datasource
    uid: sap_hana
    access: proxy
    orgId: 1
    jsonData:
      server: xxxxxx-xxxxxx-xxxxxx-xxxxxx-xxxxxx.hana.trial-us10.hanacloud.ondemand.com
      port: 443
      username: GRAFANA_HANA_USERNAME
      tlsSkipVerify: false
      tlsAuth: false
      tlsAuthWithCACert: false
      defaultSchema: EXAMPLE
      databaseName: DATABASE
      instance: "01"
    secureJsonData:
      password: $SECURE_HANA_PASSWORD_FROM_ENVIRONMENT_VAR
      tlsCACert:
      tlsClientCert:
      tlsClientKey:
    version: 1
    editable: false

了解更多

SAP HANA® 是 SAP SE 或其关联公司在德国和若干其他国家/地区的商标或注册商标。