跳转至

监控器模板中的函数

2025-09-11

以下是当前 SaaS 版本中所有可用的模板函数。

部分函数尚未正式公开

部分函数可能存在适用面较小,或仅用于调式的目的,因此未在 观测云文档 中列出

此类函数请根据实际情况判断是否使用

本文档可能比 SaaS 版本超前

本文档按照最新开发版撰写,因此如遇某些函数修复 BUG 或优化,可能较 SaaS 版更超前

to_datetime

将数据转换为时间日期形式

参数 默认值 说明
tz "Asia/Shanghai" 时区
fmt "YYYY-MM-DD HH:mm:ss" 日期格式
输入值支持 UNIX 时间戳(单位秒)
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
{% set data = 1735660800 %}

{{ data | to_datetime }}
输出: 2025-01-01 00:00:00

{{ data | to_datetime('+07:00') }}
输出: 2024-12-31 23:00:00

{{ data | to_datetime('UTC') }}
输出: 2024-12-31 16:00:00

{{ data | to_datetime('America/Chicago') }}
输出: 2024-12-31 10:00:00

{{ data | to_datetime('America/Chicago', 'YY-MM-DD HH:mm') }}
输出: 24-12-31 10:00

{{ data | to_datetime(fmt='YY-MM-DD HH:mm') }}
输出: 25-01-01 00:00
输入值支持符合 ISO8601 格式的日期字符串
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
{% set data = '2025-01-01T00:00:00+08:00' %}

{{ data | to_datetime }}
输出: 2025-01-01 00:00:00

{{ data | to_datetime('+07:00') }}
输出: 2024-12-31 23:00:00

{{ data | to_datetime('UTC') }}
输出: 2024-12-31 16:00:00

{{ data | to_datetime('America/Chicago') }}
输出: 2024-12-31 10:00:00

{{ data | to_datetime('America/Chicago', 'YY-MM-DD HH:mm') }}
输出: 24-12-31 10:00

{{ data | to_datetime(fmt='YY-MM-DD HH:mm') }}
输出: 25-01-01 00:00

to_date_range_human

将时长转换为易读形式

参数 默认值 说明
lang "zh" 语言,可选:"zh""en"
输入值为时长(单位秒)
1
2
3
4
5
6
7
{% set data = 26 * 3600 + 180 + 1 %}

{{ data | to_date_range_human }}
输出: 1 天 2 小时 3 分钟 1 秒

{{ data | to_date_range_human('en') }}
输出: 1 day 2 hours 3 minutes 1 second
输入值为字符串时会自动转换
1
2
3
4
5
6
7
{% set data = '93781' %}

{{ data | to_date_range_human }}
输出: 1 天 2 小时 3 分钟 1 秒

{{ data | to_date_range_human('en') }}
输出: 1 day 2 hours 3 minutes 1 second

to_status_human

将 status 转换为易读形式

参数 默认值 说明
lang "zh" 语言,可选:"zh""en"
输入值为 status、事件 df_status 值
1
2
3
4
5
6
7
{% set data = 'critical' %}

{{ data | to_status_human }}
输出: 严重

{{ data | to_status_human(en) }}
输出: Critical

to_fixed

保留小数点

参数 默认值 说明
ndigits 0 小数点位数
输入值为浮点数
1
2
3
4
5
6
7
{% set data = 1.2345 %}

{{ data | to_fixed }}
输出: 1

{{ data | to_fixed(2) }}
输出: 1.23
输入值为字符串时会自动转换
1
2
3
4
5
6
7
{% set data = '1.2345' %}

{{ data | to_fixed }}
输出: 1

{{ data | to_fixed(2) }}
输出: 1.23

to_round

四舍五入

参数 默认值 说明
ndigits 0 小数点位数
输入值为浮点数
1
2
3
4
5
6
7
{% set data = 1.555 %}

{{ data | to_round }}
输出: 2

{{ data | to_round(2) }}
输出: 1.55
输入值为字符串时会自动转换
1
2
3
4
5
6
7
{% set data = '1.555' %}

{{ data | to_round }}
输出: 2

{{ data | to_round(2) }}
输出: 1.55

to_percent

转换为百分比形式

参数 默认值 说明
ndigits 0 小数点位数
输入值为小于 1 的浮点数
1
2
3
4
5
6
7
{% set data = 0.27 %}

{{ data | to_percent }}
输出: 27%

{{ data | to_percent(2) }}
输出: 27.00%
输入值为字符串时会自动转换
1
2
3
4
5
6
7
{% set data = '0.27' %}

{{ data | to_percent }}
输出: 27%

{{ data | to_percent(2) }}
输出: 27.00%

to_pretty_tags

将 Key-Value 转换为美化的标签形式

参数 默认值 说明
separators (':', ', ') Key-Value、Key-Value 对之间的分隔符
输入值为 JSON / dict 对象
1
2
3
4
5
6
7
{% set data = { 'key1': 'value1', 'key2': 'value2' } %}

{{ data | to_pretty_tags }}
输出: key1:value1, key2:value2

{{ data | to_pretty_tags(('=', ' ')) }}
输出: key1=value1 key2=value2
输入值为字符串时会自动转换
1
2
3
4
5
6
7
{% set data = '{ "key1": "value1", "key2": "value2" }' %}

{{ data | to_pretty_tags }}
输出: key1:value1, key2:value2

{{ data | to_pretty_tags(('=', ' ')) }}
输出: key1=value1 key2=value2

limit_lines

限制行数

参数 默认值 说明
lines 3 最大输出行数
chars None 每行最大输出字符数
输入值支持任意可以转换为多行字符串的内容
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
{% set data = '123456789a\n223456789a\n323456789a\n423456789a\n523456789a\n623456789a' %}

{{ data | limit_lines }}
输出:
123456789a
223456789a
323456789a
...

{{ data | limit_lines(2) }}
输出:
123456789a
223456789a
...

{{ data | limit_lines(2, 3) }}
输出:
123...
223...
...

{{ data | limit_lines(chars=3) }}
输出:
123...
223...
323...
...

limit_chars / limit_text

限制字符数

limit_text 是 limit_chars 的别名

limit_text 与 limit_chars 完全等价

参数 默认值 说明
chars 50 最大输出字符数
输入值支持任意可以转换为字符串的内容
1
2
3
4
5
6
7
{% set data = '123456789a223456789a323456789a423456789a523456789a623456789a' %}
{{ data | limit_chars }}
输出: 123456789a223456789a323456789a423456789a523456789a...

{% set data = { 'message': '123456789a223456789a323456789a423456789a523456789a623456789a' } %}
{{ data | limit_chars(35) }}
输出: {'message': '123456789a223456789a32...

type_name

输出数据类型名称

参数 默认值 说明
输入值支持任意内容
1
2
3
4
5
6
7
{% set data = {} %}
{{ data | type_name }}
输出: dict

{% set data = 'hello' %}
{{ data | type_name }}
输出: str

to_int

转换为整数

参数 默认值 说明
输入值支持任意可以转换为整数的内容
1
2
3
4
5
6
7
{% set data = 1.234 %}
{{ data | to_int }}
输出: 1

{% set data = '42' %}
{{ data | to_int }}
输出: 42

to_float

转换为浮点数

参数 默认值 说明
输入值支持任意可以转换为浮点数的内容
1
2
3
{% set data = '1.234' %}
{{ data | to_float }}
输出: 1.234

to_str

转换为字符串

参数 默认值 说明
输入值支持任意可以转换为字符串的内容
1
2
3
{% set data = 1.234 %}
{{ data | to_str }}
输出: 1.234

to_json_dumps

转换为 JSON 序列化字符串

参数 默认值 说明
indent None 缩进空格数
输入值为
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
{% set data = { 'key1': 'value1', 'key2': 'value2' } %}

{{ data | to_json_dumps }}
输出: {"key1":"value1","key2":"value2"}

{{ data | to_json_dumps(2) }}
输出:
{
  "key1":"value1",
  "key2":"value2"
}

length

获取数据长度

参数 默认值 说明
输入值支持任意存在长度概念的内容
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
{% set data = '123456789a' %}
{{ data | length }}
输出: 10

{% set data = [ 1, 2, 3, 4, 5 ] %}
{{ data | length }}
输出: 5

{% set data = { 'a': 1, 'b': 2 } %}
{{ data | length }}
输出: 2