Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
79 commits
Select commit Hold shift + click to select a range
8fdb5e9
Implement SQL task query result alert via Master-side event handling
Jul 22, 2026
f4ad79c
restore 3.5.0_schema
Jul 29, 2026
c19f72d
Merge branch 'Fix-17854-2' of github.com:njnu-seafish/dolphinschedule…
Jul 29, 2026
5b25a77
Migrate sendEmail field to sendAlert in historical data
Jul 29, 2026
78f0940
refactor prepareTaskResultAlert
Jul 30, 2026
2b76ad1
add sql result log
Jul 30, 2026
e70a6e6
merge dev
Aug 11, 2026
793d28a
update sendTaskResultAlert
Aug 11, 2026
045b78a
Merge remote-tracking branch 'origin/dev' into Fix-17854-2
Aug 12, 2026
03aef24
update incompatible.md
Aug 12, 2026
41221d3
add SqlTask result alert test
Aug 12, 2026
0be063a
update incompatible.md
Aug 12, 2026
68b7934
Revert sendEmail field rename to sendAlert in SQL task params
Aug 14, 2026
84e68ee
revert AlertSendRequest
Aug 14, 2026
67f061a
revert TaskDefinitionMapperTest
Aug 14, 2026
33027f5
Merge branch 'dev' into Fix-17854-2
njnu-seafish Aug 20, 2026
afd36f4
Make task-result alert persistence idempotent and post-state-transition
Aug 20, 2026
42a4271
Merge branch 'dev' into Fix-17854-2
njnu-seafish Aug 24, 2026
1cd5054
Merge branch 'dev' into Fix-17854-2
SbloodyS Aug 25, 2026
caa7d22
Merge branch 'dev' into Fix-17854-2
njnu-seafish Aug 25, 2026
49e8f88
Initialize task-result alert with WAIT_EXECUTION status and add sendT…
Aug 25, 2026
63f85f1
Include task instance ID in alert sign to prevent deduplication of di…
Aug 25, 2026
e8776db
Merge branch 'apache:dev' into Fix-17854-2
njnu-seafish Aug 26, 2026
1ec1b64
Guard null AlertType during rolling upgrade and document Alert Server…
Aug 26, 2026
eaa7cd9
Restore deprecated AbstractTask alert API as compatibility bridges to…
Aug 26, 2026
aa8df24
Enforce task-result alert idempotency at database level with unique c…
Aug 26, 2026
346df77
format incompatible.md
Aug 26, 2026
2cdce6c
Merge branch 'dev' into Fix-17854-2
njnu-seafish Aug 26, 2026
bf36a33
Fix databaseId mismatch and replace INSERT IGNORE with ON DUPLICATE K…
Aug 27, 2026
7647cb2
Merge branch 'dev' into Fix-17854-2
njnu-seafish Aug 28, 2026
385a9de
Merge branch 'Fix-17854-2' of github.com:njnu-seafish/dolphinschedule…
Aug 28, 2026
7e58adc
Restore deprecated protected fields needAlert and taskAlertInfo in Ab…
Aug 28, 2026
30b2c9b
Reject null alertType in AlertSender and document rolling upgrade ord…
Aug 28, 2026
78b2496
format spotless
Aug 28, 2026
2eafba1
update h2 sql
Aug 28, 2026
f67fb50
update h2 sql
Aug 28, 2026
4d797d7
Merge branch 'dev' into Fix-17854-2
njnu-seafish Aug 28, 2026
5c0be35
Merge branch 'dev' into Fix-17854-2
njnu-seafish Aug 31, 2026
949815b
Merge branch 'dev' into Fix-17854-2
njnu-seafish Aug 31, 2026
37f4ae8
Merge branch 'dev' into Fix-17854-2
njnu-seafish Sep 1, 2026
46e40d2
Replace dialect-specific upsert with INSERT...SELECT...WHERE NOT EXIS…
Sep 1, 2026
1830c2b
Merge branch 'dev' into Fix-17854-2
njnu-seafish Sep 2, 2026
24518d0
Merge remote-tracking branch 'origin/dev' into Fix-17854-2
Sep 7, 2026
68653b8
update version 3.5.0
Sep 7, 2026
5d22d11
update version 3.5.0
Sep 7, 2026
f869b06
Merge branch 'dev' into Fix-17854-2
njnu-seafish Sep 7, 2026
2a70139
Merge branch 'dev' into Fix-17854-2
njnu-seafish Sep 9, 2026
9d4ab05
Clean up redundant comments and code
Sep 9, 2026
b1314fd
Merge branch 'dev' into Fix-17854-2
njnu-seafish Sep 9, 2026
aa3af01
Merge branch 'dev' into Fix-17854-2
njnu-seafish Sep 11, 2026
b2ff7d4
Move task-result alert dedup logic from SQL to application code
Sep 11, 2026
c7840ad
Merge branch 'dev' into Fix-17854-2
njnu-seafish Sep 15, 2026
31f6f57
Merge branch 'dev' into Fix-17854-2
njnu-seafish Sep 15, 2026
02ab4a2
Merge branch 'dev' into Fix-17854-2
SbloodyS Sep 18, 2026
5a4501d
Merge branch 'dev' into Fix-17854-2
njnu-seafish Sep 18, 2026
cc7eeba
Remove data deletion from upgrade scripts and update incompatible docs
Sep 18, 2026
a121df8
Merge branch 'dev' into Fix-17854-2
njnu-seafish Sep 22, 2026
b20dab9
Merge branch 'dev' into Fix-17854-2
njnu-seafish Sep 24, 2026
872fc50
Catch DuplicateKeyException in addAlert and saveTimeoutAlert to align…
Sep 28, 2026
004a7c5
Keep full SQL query result in task alert and sync legacy alert fields…
Sep 29, 2026
80690d4
Merge branch 'dev' into Fix-17854-2
njnu-seafish Sep 30, 2026
e49aa57
Merge branch 'dev' into Fix-17854-2
SbloodyS Oct 6, 2026
96134ef
Merge branch 'dev' into Fix-17854-2
njnu-seafish Oct 8, 2026
15c18bd
Only persist task result alert when the task actually transitions to …
Oct 8, 2026
be65492
Document recovery steps when the rolling upgrade order is not followed
Oct 8, 2026
424a311
Merge branch 'dev' into Fix-17854-2
njnu-seafish Oct 9, 2026
37e4552
Reuse BaseMapper.insert to persist task-result alert
Oct 10, 2026
89f40fa
Merge branch 'dev' into Fix-17854-2
njnu-seafish Oct 10, 2026
79a0e12
Dedup task-result alerts by sign only
Oct 10, 2026
7596e45
Drop redundant idx_sign superseded by the alert dedup unique index
Oct 10, 2026
90d4577
update incompatible.md
Oct 10, 2026
77809e5
Merge branch 'Fix-17854-2' of github.com:njnu-seafish/dolphinschedule…
Oct 10, 2026
f4b37e5
Limit SQL task-result alert content size and mark omissions
Oct 12, 2026
e8122a4
Merge branch 'dev' into Fix-17854-2
njnu-seafish Oct 12, 2026
adfc224
Merge branch 'dev' into Fix-17854-2
njnu-seafish Oct 12, 2026
63664d9
Drop the alert sign unique index and keep the schema unchanged
Oct 12, 2026
4f53d83
Bound task-result alert content by serialized UTF-8 byte budget
Oct 12, 2026
ca34da3
Merge branch 'Fix-17854-2' of github.com:njnu-seafish/dolphinschedule…
Oct 12, 2026
eb28624
Make SQL task-result alert limits configurable via common.properties
Oct 12, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions deploy/kubernetes/dolphinscheduler/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -203,6 +203,9 @@ The paths above match the API and Worker server classpaths. Check the configurat
| conf.common."resource.storage.type" | string | `"S3"` | resource storage type: HDFS, S3, OSS, GCS, ABS, NONE |
| conf.common."resource.storage.upload.base.path" | string | `"/dolphinscheduler"` | resource store on HDFS/S3 path, resource file will store to this base path, self configuration, please make sure the directory exists on hdfs and have read write permissions. "/dolphinscheduler" is recommended |
| conf.common."shell.kill.wait.timeout" | int | `10` | If the shell process is still active after this timeout value (in seconds), then will use kill -9 to kill it |
| conf.common."sql.task.alert.max.content.bytes" | int | `60000` | max serialized UTF-8 bytes of the SQL task-result alert content, kept below the 65535-byte capacity of the MySQL TEXT column |
| conf.common."sql.task.alert.max.row.value.length" | int | `100` | max chars of a single string value kept in the SQL task-result alert content, longer values are truncated with an ellipsis |
| conf.common."sql.task.alert.max.rows" | int | `30` | max rows kept in the SQL task-result alert content, rows beyond this are replaced by an omission marker |
| conf.common."sudo.enable" | bool | `true` | use sudo or not, if set true, executing user is tenant user and deploy user needs sudo permissions; if set false, executing user is the deploy user and doesn't need sudo permissions |
| conf.common."support.hive.oneSession" | bool | `false` | Whether hive SQL is executed in the same session |
| conf.common."task.resource.limit.state" | bool | `false` | Task resource limit state |
Expand Down
9 changes: 9 additions & 0 deletions deploy/kubernetes/dolphinscheduler/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -393,6 +393,15 @@ conf:
# -- way to collect applicationId: log, aop
appId.collect: log

# -- max rows kept in the SQL task-result alert content, rows beyond this are replaced by an omission marker
sql.task.alert.max.rows: 30

# -- max chars of a single string value kept in the SQL task-result alert content, longer values are truncated with an ellipsis
sql.task.alert.max.row.value.length: 100

# -- max serialized UTF-8 bytes of the SQL task-result alert content, kept below the 65535-byte capacity of the MySQL TEXT column
sql.task.alert.max.content.bytes: 60000

common:
## Configmap
configmap:
Expand Down
3 changes: 3 additions & 0 deletions docs/docs/en/architecture/configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -223,6 +223,9 @@ The default configuration is as follows:
| sudo.enable | true | whether to enable sudo |
| zeppelin.rest.url | http://localhost:8080 | the RESTful API url of zeppelin |
| appId.collect | log | way to collect applicationId, if use aop, alter the configuration from log to aop, annotation of applicationId auto collection related configuration in `bin/env/dolphinscheduler_env.sh` should be removed. Note: Aop way doesn't support submitting yarn job on remote host by client mode like Beeline, and will failure if override applicationId collection-related environment configuration in dolphinscheduler_env.sh, and . |
| sql.task.alert.max.rows | 30 | max rows kept in the SQL task-result alert content, rows beyond this are replaced by an omission marker. Takes effect after restarting Worker Server |
| sql.task.alert.max.row.value.length | 100 | max chars of a single string value kept in the SQL task-result alert content, longer values are truncated with an ellipsis. Takes effect after restarting Worker Server |
| sql.task.alert.max.content.bytes | 60000 | max serialized UTF-8 bytes of the SQL task-result alert content, kept below the 65535-byte capacity of the MySQL TEXT column that stores alert content. Takes effect after restarting Worker Server |

### Api-server related configuration

Expand Down
5 changes: 5 additions & 0 deletions docs/docs/en/guide/upgrade/incompatible.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,3 +57,8 @@ This document records the incompatible updates between each version. You need to
* **Removed derived properties**: `cmdTypeIfComplement`, `complementData` (related to complement-data executions; use the detail API to obtain them)
* To obtain any of these fields, use the detail API `GET /projects/{projectCode}/workflow-instances/{id}` instead, which continues to return the full `WorkflowInstance` object. ([#18444](https://github.com/apache/dolphinscheduler/pull/18444))

## 3.5.0

* `AlertSender#getAlertData` now explicitly rejects a null `alertType` by throwing `IllegalArgumentException` with an error log, instead of throwing a raw `NullPointerException`. During a rolling upgrade, **the Alert Server must be upgraded before Master/Worker**, otherwise an old Alert Server cannot recognize newly introduced `alert_type` enum values (e.g. `TASK_RESULT`) and alert delivery will fail. See the [upgrade guide](upgrade.md#rolling-upgrade-order) for details.([#18549](https://github.com/apache/dolphinscheduler/pull/18549))
* SQL task-result alert content is size-limited: by default at most 30 rows are kept, string field values longer than 100 characters are truncated with an ellipsis, and the serialized content is bounded to 60000 UTF-8 bytes (below the 65535-byte capacity of the MySQL TEXT column); rows beyond the budget are represented by an omission marker. These defaults are tunable via `sql.task.alert.max.rows`, `sql.task.alert.max.row.value.length` and `sql.task.alert.max.content.bytes` in `common.properties` (worker restart required). ([#18549](https://github.com/apache/dolphinscheduler/pull/18549))

22 changes: 22 additions & 0 deletions docs/docs/en/guide/upgrade/upgrade.md
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,28 @@ Execution result:
- After version 3.3.X and later, we only support upgrading from 3.0.0. For versions lower than this, please download the historical version and upgrade to 3.0.0.
- After version 3.3.X and later, binary packages no longer provide plugins dependencies by default, so when you use them for the first time, you need to download and install them yourself. For more information, please refer to [Pseudo-Cluster](../installation/pseudo-cluster.md).

#### Rolling Upgrade Order

When performing a rolling upgrade, **the Alert Server must be upgraded before Master/Worker**.

Starting from 3.5.0, the Master may persist new `alert_type` enum values (e.g. `TASK_RESULT`) into the `t_ds_alert` table. If the Alert Server has not yet been upgraded to a version that includes the new enum value, MyBatis will deserialize the unknown value as `null`, causing `AlertSender` to throw a `NullPointerException` while building the alert data. The alert will remain stuck in `WAIT_EXECUTION` and never be delivered.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If the upgrade fails, users need to be provided with specific operation steps.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If the upgrade fails, users need to be provided with specific operation steps.

Thanks for the feedback. Fixed in be65492 — the upgrade doc now provides concrete recovery steps for a failed upgrade.

The new "If the upgrade fails" section (after the Rolling Upgrade Order) covers the case where Master/Worker were already upgraded before the Alert Server and new alert_type values were persisted to t_ds_alert:

Upgrade the Alert Server to a version that includes the new enum values and restart it — alerts stuck in WAIT_EXECUTION will be picked up and delivered normally.
If the Alert Server cannot be upgraded immediately, stop the old Alert Server first, then back up and clean up the affected rows (create table t_ds_alert_bak as select * from t_ds_alert where alert_type = 8; followed by delete from t_ds_alert where alert_type = 8;), so they cannot keep blocking alert delivery.

The Chinese upgrade doc is updated in sync.


Upgrading in the order "Alert Server → Master → Worker" eliminates this risk.

#### If the upgrade fails

If the upgrade order was not followed (e.g. Master/Worker has already been upgraded before the Alert Server) and new `alert_type` values have been persisted to the `t_ds_alert` table, follow these steps to recover:

1. Upgrade the Alert Server to a version that includes the new enum values and restart it. Alerts stuck in `WAIT_EXECUTION` will be picked up and delivered normally.
2. If the Alert Server cannot be upgraded immediately, stop the old Alert Server first, then back up and clean up the affected alerts so they cannot keep blocking alert delivery:

```sql
-- 1. back up the affected alerts
create table t_ds_alert_bak as select * from t_ds_alert where alert_type = 8;
-- 2. remove them from the active table
delete from t_ds_alert where alert_type = 8;
```

#### Precautions after the upgrade

The alert plugin may have some dirty data. After the upgrade, clear it manually by referring to SQL.
Expand Down
3 changes: 3 additions & 0 deletions docs/docs/zh/architecture/configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -223,6 +223,9 @@ common.properties配置文件目前主要是配置hadoop/s3/yarn/applicationId
| sudo.enable | true | 是否开启sudo |
| zeppelin.rest.url | http://localhost:8080 | zeppelin RESTful API 接口地址 |
| appId.collect | log | 收集applicationId方式, 如果用aop方法,将配置log替换为aop,并将`bin/env/dolphinscheduler_env.sh`自动收集applicationId相关环境变量配置的注释取消掉,注意:aop不支持远程主机提交yarn作业的方式比如Beeline客户端提交,且如果用户环境覆盖了dolphinscheduler_env.sh收集applicationId相关环境变量配置,aop方法会失效 |
| sql.task.alert.max.rows | 30 | SQL 任务结果告警内容最多保留的行数,超出的行以省略标记表示。修改后需重启 Worker Server 生效 |
| sql.task.alert.max.row.value.length | 100 | SQL 任务结果告警内容中单个字符串字段值最多保留的字符数,超出的值以省略号截断。修改后需重启 Worker Server 生效 |
| sql.task.alert.max.content.bytes | 60000 | SQL 任务结果告警内容序列化后的最大 UTF-8 字节数,小于存储告警内容的 MySQL TEXT 列 65535 字节容量。修改后需重启 Worker Server 生效 |

## Api-server相关配置

Expand Down
5 changes: 5 additions & 0 deletions docs/docs/zh/guide/upgrade/incompatible.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,3 +56,8 @@
* **移除的派生属性**:`cmdTypeIfComplement`、`complementData`(补数执行相关,如需获取请使用详情接口)
* 如需获取这些字段,请使用详情接口 `GET /projects/{projectCode}/workflow-instances/{id}`,该接口仍返回完整的 `WorkflowInstance` 对象 ([#18444](https://github.com/apache/dolphinscheduler/pull/18444))

## 3.5.0

* `AlertSender#getAlertData` 对 null `alertType` 增加了显式拒绝(抛 `IllegalArgumentException` 并记录错误日志),而非直接抛 `NullPointerException`。滚动升级时**必须先升级 Alert Server,再升级 Master/Worker**,否则旧 Alert Server 无法识别新增的 `alert_type` 枚举值(如 `TASK_RESULT`),会导致告警投递失败。详见[升级文档](upgrade.md#滚动升降级顺序)。([#18549](https://github.com/apache/dolphinscheduler/pull/18549))
* SQL 任务结果告警内容有大小限制:默认最多保留 30 行,超过 100 字符的字符串字段值会被截断并以省略号标记;序列化后内容总大小限制在 60000 UTF-8 字节以内(兼容 MySQL TEXT 列 65535 字节容量),超出预算的行以省略标记对象表示。以上默认值可通过 `common.properties` 中的 `sql.task.alert.max.rows`、`sql.task.alert.max.row.value.length`、`sql.task.alert.max.content.bytes` 配置调整,修改后需重启 Worker 生效。 ([#18549](https://github.com/apache/dolphinscheduler/pull/18549))

22 changes: 22 additions & 0 deletions docs/docs/zh/guide/upgrade/upgrade.md
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,28 @@ jar 包 并添加到 `./tools/libs` 目录下,设置以下环境变量
- 在 3.3.X 以及之后的版本,我们仅支持从 3.0.0 开始进行升级,低于此版本的请下载历史版本升级至 3.0.0。
- 在 3.3.X 以及之后的版本,二进制包不再默认提供插件依赖,因此第一次使用时,需要自行下载安装。具体请参考请参照[伪集群部署(Pseudo-Cluster)](../installation/pseudo-cluster.md)

#### 滚动升降级顺序

在滚动升降级场景下,**必须先升级 Alert Server,再升级 Master/Worker**。

从 3.5.0 起,Master 可能向 `t_ds_alert` 表写入新的 `alert_type` 枚举值(如 `TASK_RESULT`)。如果 Alert Server 尚未升级到包含该枚举值的版本,MyBatis 会将未知的枚举值反序列化为 `null`,导致 `AlertSender` 在构建告警数据时抛出 `NullPointerException`,告警将卡在 `WAIT_EXECUTION` 状态无法投递。

按照"Alert Server → Master → Worker"的顺序升级可消除此风险。

#### 如果升级失败

如果未按上述顺序升级(例如在 Alert Server 之前先升级了 Master/Worker),且新的 `alert_type` 枚举值已写入 `t_ds_alert` 表,请按以下步骤恢复:

1. 将 Alert Server 升级到包含新枚举值的版本并重启,卡在 `WAIT_EXECUTION` 状态的告警会被正常拉取并投递。
2. 如果暂时无法升级 Alert Server,请先停止旧版 Alert Server,再备份并清理受影响告警,避免其持续阻塞告警投递:

```sql
-- 1. 备份受影响告警
create table t_ds_alert_bak as select * from t_ds_alert where alert_type = 8;
-- 2. 从主表清理
delete from t_ds_alert where alert_type = 8;
```

#### 升级后的注意事项

在历史版本中可能告警插件会有一些脏数据,升级后请参考一下 SQL 手动清理。
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,13 @@ public List<AlertPluginInstance> getAlertPluginInstanceList(Alert event) {

@Override
public AlertData getAlertData(Alert event) {
if (event.getAlertType() == null) {
log.error("Alert {} has null alertType, refusing to send. This indicates the Alert Server version "
+ "is older than the Master that created the alert. Please upgrade the Alert Server first "
+ "(see upgrade guide: Alert Server -> Master -> Worker).", event.getId());
throw new IllegalArgumentException(
"Cannot build AlertData with null alertType for alert " + event.getId());
}
return AlertData.builder()
.id(event.getId())
.content(event.getContent())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
import static org.mockito.Mockito.when;

import org.apache.dolphinscheduler.alert.api.AlertChannel;
import org.apache.dolphinscheduler.alert.api.AlertData;
import org.apache.dolphinscheduler.alert.api.AlertResult;
import org.apache.dolphinscheduler.alert.config.AlertConfig;
import org.apache.dolphinscheduler.alert.plugin.AlertPluginManager;
Expand Down Expand Up @@ -210,4 +211,33 @@ void testSendAlert() {
.thenReturn(paramsMap);
alertSender.syncTestSend(PLUGIN_DEFINE_ID, PLUGIN_INSTANCE_PARAMS);
}

@Test
void testGetAlertDataWithNullAlertType() {
Alert alert = new Alert();
alert.setId(1);
alert.setTitle(TITLE);
alert.setContent(CONTENT);
alert.setAlertGroupId(ALERT_GROUP_ID);
alert.setWarningType(WarningType.FAILURE);
alert.setAlertType(null);

Assertions.assertThrows(IllegalArgumentException.class,
() -> alertSender.getAlertData(alert));
}

@Test
void testGetAlertDataWithValidAlertType() {
Alert alert = new Alert();
alert.setId(2);
alert.setTitle(TITLE);
alert.setContent(CONTENT);
alert.setAlertGroupId(ALERT_GROUP_ID);
alert.setWarningType(WarningType.FAILURE);
alert.setAlertType(AlertType.TASK_RESULT);

AlertData alertData = alertSender.getAlertData(alert);
Assertions.assertNotNull(alertData);
Assertions.assertEquals(AlertType.TASK_RESULT.getCode(), alertData.getAlertType());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,23 @@ public final class Constants {
*/
public static final String SHELL_KILL_WAIT_TIMEOUT = "shell.kill.wait.timeout";

/**
* sql.task.alert.max.rows: this property defines the max rows kept in the task-result alert content.
*/
public static final String SQL_TASK_ALERT_MAX_ROWS = "sql.task.alert.max.rows";

/**
* sql.task.alert.max.row.value.length: this property defines the max chars of a single string value kept in the
* task-result alert content.
*/
public static final String SQL_TASK_ALERT_MAX_ROW_VALUE_LENGTH = "sql.task.alert.max.row.value.length";

/**
* sql.task.alert.max.content.bytes: this property defines the max serialized UTF-8 bytes of the task-result alert
* content.
*/
public static final String SQL_TASK_ALERT_MAX_CONTENT_BYTES = "sql.task.alert.max.content.bytes";

public static final String SUDO_ENABLE = "sudo.enable";

public static final String RESOURCE_STORAGE_TYPE = "resource.storage.type";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ public enum AlertType {

/**
* 0 workflow instance failure, 1 workflow instance success, 2 workflow instance blocked, 3 workflow instance timeout, 4 fault tolerance warning,
* 5 task failure, 6 task success, 7 task timeout
* 5 task failure, 6 task success, 7 task timeout, 8 task result
*/
WORKFLOW_INSTANCE_FAILURE(0, "workflow instance failure"),
WORKFLOW_INSTANCE_SUCCESS(1, "workflow instance success"),
Expand All @@ -39,6 +39,7 @@ public enum AlertType {
TASK_FAILURE(5, "task failure"),
TASK_SUCCESS(6, "task success"),
TASK_TIMEOUT(7, "task timeout"),
TASK_RESULT(8, "task result"),
;

AlertType(int code, String descp) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -108,3 +108,11 @@ shell.interceptor.type=bash

# Whether to enable remote logging
remote.logging.enable=false

# SQL task-result alert content limits, take effect on worker server restart:
# sql.task.alert.max.rows: max rows kept in the alert content, default: 30
# sql.task.alert.max.row.value.length: max chars of a single string value kept in the alert content, default: 100
# sql.task.alert.max.content.bytes: max serialized UTF-8 bytes of the alert content, default: 60000
sql.task.alert.max.rows=30
sql.task.alert.max.row.value.length=100
sql.task.alert.max.content.bytes=60000
Loading
Loading