设定周期性报表
在创建仪表板之后,可以给仪表板设置周期性执行计划,每当到达计划的时间点,会提交仪表板中的所有查询到查询引擎,当所有查询完成之后,会将仪表板的内容通过邮件发送给收件人。
信息
使用邮件前,先要由系统管理员完成相关的配置,如SMTP服务器连接、通知邮件发送者等,具体参考这里
步骤
点击左侧导航栏的“仪表板”,进入仪表板管理页面。
点击要设定定时报表计划的仪表板,点击“操作”栏的设定计划按钮(灰色代表此仪表板还未创建过报表,橙色代表已创建过报表)。打开定时报表设置界面。
在定时报表计划设置模态框中,设置执行计划、邮件的收件人、标题、模版以及邮件内容等。
PDF附件、CSV附件
勾选“PDF附件”时,仪表板的可视化内容会被转存为PDF文件,作为邮件附件一同发送。
选择“CSV附件”时,可以将仪表板中选定的图表的原始数据作为邮件附件(CSV格式)一同发送。
邮件模版
选择“默认模版”时,输入的邮件内容会被嵌入炎凰数据平台的默认邮件模版。
选择“不使用默认模版”时,邮件内容则完全使用输入的内容。
正文模式
选择“纯文本”时,邮件内容将以纯文本形式发送,内部所有HTML特殊字符将被转义。
选择“HTML”时,邮件内容将以HTML的形式发送,保留所有HTML特殊字符。
点击“发送邮件”按钮可以即刻将当前邮件标题和内容发送给指定邮件接收人,您会立即收到邮件以查看当前邮件的内容与格式,从而进行必要的修改和调整。
点击“确定”按钮,保存配置,仪表板内容将会按照设定的执行计划被发送给收件人。
备注
报表“执行计划”部分的配置同告警的“执行计划”配置类似,具体参考这里"
生成动态邮件标题、正文
用户在设置邮件标题或正文时,可以使用Jinja2模版语言,结合周期性报表中提供的多种Token,生成动态内容。
- Token格式
Token格式 | 说明 | 使用示例 |
---|---|---|
{{token名}} | 两层花括号 + token名 + 两层反花括号 | 在邮件标题中使用仪表板标题:{{report.result.title}}日报 可用Token请参考 Token清单 |
- Jinjia2模版示例 - 通过表格展示仪表板中所有图表的数据
{%- for widget in report.result.widgets %}
<table>
<caption>
{{widget.title}}
</caption>
<thead>
<tr>
{%- for field in widget.fields %}
<th>
{{field}}
</th>
{%- endfor %}
</tr>
</thead>
<tbody>
{%- for row in widget.rows %}
<tr>
{%- for field in widget.fields %}
<td>{{row[field]}}</td>
{%- endfor %}
</tr>
{%- endfor %}
</tbody>
</table>
<br/>
{%- endfor %}
Token清单
仪表板相关Token
名称 | 说明 |
---|---|
report.result.title | 本仪表板的标题 |
report.result.description | 本仪表板的描述 |
report.result.widgets | 结构为数组,数组的每个元素为本仪表板中的一个图表,元素所包含Token可参照下节内容 |
定时报表相关Token
名称 | 说明 |
---|---|
execution.callbackBaseUrl | https://www.example.com.cn |
execution.callbackUrl | https://www.example.com.cn/zh-CN/app/main/dashboards/fdfd0420-20d2-4d09-b9d4-77abbccd95d7 |
图表相关Token
以仪表板中的第一个图表(数组的索引值为0)为例:
名称 | 说明 |
---|---|
report.result.widgets[0].id | 图表在本仪表板中的UUID |
report.result.widgets[0].title | 图表的标题 |
report.result.widgets[0].description | 图表的描述 |
report.result.widgets[0].fields | 结构为数组,为图表数据的所有字段名 |
report.result.widgets[0].rows | 结构为数组,为图表数据的所有行,每行内容为字段名+字段值组成的多个键值对 |
report.result.widgets[0].status | 图表的加载状态,可能是成功或者失败 |
report.result.widgets[0].earliestEpoch | 图表所对应的查询时间范围的最早时间点,单位为微秒 |
report.result.widgets[0].latestEpoch | 图表所对应的查询时间范围的最晚时间点,单位为微秒 |
report.result.widgets[0].totalResults | 图表所对应的查询结果的总行数 |
report.result.widgets[0].truncatedResults | 图表所对应的查询结果的总行数超过最大限制时,实际返回的行数 |