All Products
Search
Document Center

DataWorks:Development reference: Event lists and event message formats

Last Updated:Dec 20, 2024

This topic describes the event types, the formats of event messages, and the meaning of each field in an event message in DataWorks.

Background information

In DataWorks, events are classified into regular events and extension point events based on whether the operation process related to an event in DataWorks can be blocked and whether the processing result of an event message can be returned after a self-managed service subscribes to the event message.

  • Regular events: You can subscribe to this type of event message. However, the operations that generate this type of event message cannot be blocked. You can use the OpenEvent module to subscribe to this type of event message. For more information, see OpenEvent.

  • Extension point events: You can subscribe to this type of event message. You can use the Extensions module of DataWorks Open Platform to configure custom responses to this type of event message. For example, if you enable a custom extension to check extension point events in DataWorks and you perform an operation that triggers the check of the custom extension in DataWorks, the operation is blocked until the extension returns the processing result of the event message.

The following tables describe the events supported by each DataWorks service, whether an event is a regular event or an extension point event, the event type defined for an event in EventBridge, and the event code defined for an event in DataWorks Extensions.

  • Type: The type of an event. This field is used to filter event messages in EventBridge. For more information, see Enable event message subscription.

  • eventCode: The event code of an event. During on-premises development, you can determine the event type based on the event code in an event message. The event message is sent from DataWorks to EventBridge.

Workspace-level events

Workspace-level services generate workspace-level events. For example, events that are generated after you run nodes in DataStudio are workspace-level events. Events that are generated due to the status change of auto triggered instances in Operation Center are also workspace-level events. You can know from the following tables the events supported by each DataWorks service, whether an event is a regular event or an extension point event, and the message format of an event.

On the Message formats tabs of this section, you can view only partial content of the format of an event message. To view a complete event message sent to EventBridge or Function Compute, see the Appendix: Message formats section in this topic.

Events of DataStudio

Events

Event category

Event

Regular event

Extension point event

Event type in EventBridge

Event code in Extensions

Node-related events

Create a node

  • Create a node and deploy the node to the production environment

image

image

dataworks:NodeChange:NodeChangeCreated

node-change-created

Update a node

  • Modify a node in the development environment

  • Deploy a modification to the production environment

image

image

dataworks:NodeChange:NodeChangeUpdated

node-change-updated

File-related events

  • Node

  • Resource

  • Function

Delete a file

  • Delete a node in the development environment

  • Delete a node from the recycle bin

image

image

dataworks:FileChange:DeleteFile

delete-file

Commit a file

image

image

dataworks:FileChange:CommitFile

commit-file

Deploy a file

image

image

dataworks:FileChange:DeployFile

deploy-file

Run code

image

image

dataworks:FileChange:RunFile

run-file

Review the code of a node

image

image

dataworks:FileChange:ReviewFile

review-file

Table-related events

Commit a table to the development environment

image

image

dataworks:TableChange:CommitTable

commit-table

Deploy a table to the production environment

image

image

dataworks:TableChange:DeployTabl

deploy-table

Message formats

Node development events (create and update)

Sample code of the message body for a node creation, modification, or deletion event:

{
  "datacontenttype": "application/json;charset=utf-8",
  "data": {
    "nodeName": "****",
    "programType": "ODPS_SQL",
    "cronExpress": "00 04 00 * * ?",
    "blockBusiness": false,
    "schedulerType": "NORMAL",
    "ownerId": "19****735",
    "priority": 1,
    "baselineId": 70***287,
    "operator": "19***735", // The operator.
    "eventCode": "node-change-created",
    "repeatability": true,
    "modifyTime": 17***864,
    "createTime": 17***864,
    "tenantId": 28***656,
    "nodeId": 70***003,
    "projectId": 9***4
  }
}

The following table describes the fields in the preceding sample code.

Field

Type

Description

nodeName

String

The name of the node.

programType

String

The code type of the file.

You can call the ListFileType operation to query the code type of a file or check DataWorks nodes to learn the code type of a file.

cronExpress

String

The CRON expression that represents the periodic scheduling policy of the node.

This parameter is equivalent to the Cron Expression parameter in the Schedule section of the tab on the DataStudio page in the DataWorks console.

After you configure the Scheduling Cycle and Run At parameters in the DataWorks console, DataWorks automatically generates the value of the Cron Expression parameter. Examples:

  • CRON expression for a node that is scheduled to run at 05:30 every day: 00 30 05 * * ?

  • CRON expression for a node that is scheduled to run at the fifteenth minute of each hour: 00 15 * * * ?

  • CRON expression for a node that is scheduled to run every 10 minutes: 00 00/10 * * * ?

  • CRON expression for a node that is scheduled to run every 10 minutes from 08:00 to 17:00 every day: 00 00-59/10 8-17 * * * ?

  • CRON expression for a node that is scheduled to run at 00:20 on the first day of each month: 00 20 00 1 * ?

  • CRON expression for a node that is scheduled to run every three months starting from 00:10 on January 1: 00 10 00 1 1-12/3 ?

  • CRON expression for a node that is scheduled to run at 00:05 every Tuesday and Friday: 00 05 00 * * 2,5

Note

Limits on CRON expressions:

  • A node can be scheduled to run at a minimum interval of 5 minutes.

  • A node can be scheduled to run at 00:05 every day at the earliest.

schedulerType

String

The type of the node. Valid values:

  • 0: NORMAL. The node is a normal auto triggered node. The scheduling system regularly runs the node.

  • 1: MANUAL. The node is a manually triggered node. The scheduling system does not regularly run the node.

  • 2: PAUSE. The node is a frozen node. The scheduling system regularly runs the node but sets the node status to Failed when the scheduling system starts to run the node.

  • 3: SKIP. The node is a dry-run node. The scheduling system regularly runs the node but sets the node status to Succeeded when the scheduling system starts to run the node.

  • 4: SKIP_UNCHOOSE. The node is an unselected node in a temporary workflow. This type of node exists only in temporary workflows. The scheduling system sets the node status to Succeeded when the scheduling system starts to run the node.

  • 5: SKIP_CYCLE. The node is a node that is scheduled by week or month and is waiting for the scheduling time to arrive. The scheduling system regularly runs the node but sets the node status to Succeeded when the scheduling system starts to run the node.

  • 6: CONDITION_UNCHOOSE. The node is not selected by its ancestor branch node and is run as a dry-run node.

  • 7: REALTIME_DEPRECATED. The node has instances that are generated in real time but are deprecated. The scheduling system sets the node status to Succeeded.

ownerId

String

The ID of the Alibaba Cloud account used by the owner of the node. If this field is not configured, the ID of the Alibaba Cloud account of the user who schedules the node is used.

priority

Integer

The priority of the node. Valid values: 1, 3, 5, 7, and 8. A greater value specifies a higher priority.

baselineId

Long

The ID of the baseline.

repeatability

Boolean

Specifies whether the node can be rerun. Valid values:

  • true: The node can be rerun.

  • false: The node cannot be rerun.

modifyTime

Long

The last time when the node was modified.

createTime

Long

The time when the node was created.

nodeId

Long

The ID of the node.

projectId

Long

The ID of the workspace to which the node belongs.

tenantId

Long

The ID of the tenant to which the node belongs.

operator

String

The UID of the user who adds, modifies, or deletes the node.

eventCode

String

The event code of the extension point event.

File change events (commit, deploy, execute, delete, and review code)

  • Sample code of the message body for a file committing or deployment event:

    {
      "datacontenttype": "application/json;charset=utf-8",
      "data": {
        "fileName": "******",
        "extensionBizId": "eb******9ce",
        "changeType": "0",
        "blockBusiness": false,
        "dataSourceName": "0_******engine",
        "operator": "19***735",
        "eventCode": "commit-file",
        "fileCreateTime": "2024-07-12 11:08:50",
        "tenantId": 28***656,
        "fileOwner": "19***735",
        "fileVersion": 1,
        "projectId": 9***4,
        "fileType": 10,
        "fileId": 50***830,
        "resourceType": 1
      }
    }

    The following table describes the fields in the preceding sample code.

    Field

    Type

    Description

    operator

    String

    The UID of the user who commits or deploys the file.

    projectId

    Long

    The ID of the workspace to which the file belongs.

    tenantId

    Long

    The tenant ID.

    nodeId

    Long

    The ID of the auto triggered node.

    fileType

    Long

    The code type of the file.

    fileName

    String

    The name of the file.

    fileOwner

    String

    The owner of the file.

    extensionBizId

    String

    The ID of the check process in an extension.

    changeType

    String

    The type of the change to the file. Valid values:

    • 0: creates the file.

    • 1: updates the file.

    • 2: deletes the file.

    fileCreateTime

    String

    The time when the file was created. The time is in the yyyy-MM-dd HH:mm:ss format.

    fileId

    Long

    The ID of the file.

    fileVersion

    Long

    The version of the file.

    dataSourceName

    String

    The name of the data source.

    eventCode

    String

    The event code of the extension point event.

  • Sample code of the message body for a file deletion or execution event:

    {
      "datacontenttype": "application/json;charset=utf-8",
      "data": {
        "fileName": "***",
        "extensionBizId": "bf******6e3",
        "blockBusiness": false,
        "operator": "19***735",
        "eventCode": "delete-file",
        "fileCreateTime": "2024-07-12 11:08:50", // The creation time of a file.
        "tenantId": 28***656,
        "fileOwner": "19***735", // The file owner.
        "nodeId": 70***003,
        "projectId": 9***4,
        "fileType": 10,
        "fileId": 50***830,
        "resourceType": 1
      }
    }

    The following table describes the fields in the preceding sample code.

    Field

    Type

    Description

    operator

    String

    The UID of the user who deletes or runs the file.

    projectId

    Long

    The ID of the workspace to which the file belongs.

    tenantId

    Long

    The tenant ID.

    nodeId

    Long

    The ID of the auto triggered node.

    fileType

    Long

    The code type of the file.

    fileName

    String

    The name of the file.

    fileOwner

    String

    The owner of the file.

    extensionBizId

    String

    The ID of the check process in an extension.

    fileCreateTime

    String

    The time when the file was created. The time is in the yyyy-MM-dd HH:mm:ss format.

    fileId

    Long

    The ID of the file.

    eventCode

    String

    The event code of the extension point event.

  • Sample code of the message body for a code review event:

    {
      "datacontenttype": "application/json;charset=utf-8",
      "data":{
        "id":111,
        "tenantId": The tenant ID,
        "projectId": The workspace ID,
        "status": "Reviewing",
        "resourceName": "The review file",
        "resourceType": "The review type",
        "resourceId": "50***9789",
        "submitTime": 1688697808000,
        "lastReviewTime": 1688697808000,
        "reviewUrl": "The review URL",
        "reviewer": "The reviewer",
        "submitter": "The submitter"
      }
    }

    The following table describes the fields in the preceding sample code.

    Field

    Type

    Description

    id

    Long

    The ID of the code review ticket.

    tenantId

    Long

    The tenant ID.

    projectId

    Long

    The ID of the workspace.

    status

    String

    The status of the code review ticket. Valid values:

    • Initialized

    • Reviewing

    • Accepted

    • Rejected

    • Canceled

    • AutomaticCanceled

    resourceName

    String

    The name of the reviewed resource.

    resourceType

    String

    The type of the reviewed resource. Valid values:

    • Business

    • File

    • BatchFiles

    resourceId

    String

    The ID of the reviewed resource.

    submitTime

    Long

    The time when the code was committed for review.

    lastReviewTime

    Long

    The time when the code review ticket was most recently viewed.

    reviewUrl

    String

    The URL for the code review.

    reviewer

    String

    The approver of the code review.

    submitter

    String

    The initiator of the code review.

Table change events (commit a table to the development environment and deploy a table to the production environment)

{
  "datacontenttype": "application/json;charset=utf-8",
  "data": {
    "operator": "**************",
    "projectId": 12*****56,
    "tenantId": 12******56,
    "extensionBizId": "123456",
    "tableName":"table1",
    "tableType":"ODPS",  // The type of the table. Valid values: ODPS and EMR.
    "maxComputeProject":"project1"
  }
}

The following table describes the fields in the preceding sample code.

Field

Type

Description

operator

String

The UID of the user who commits or deploys the table.

projectId

Long

The ID of the workspace.

tenantId

Long

The tenant ID.

extensionBizId

String

The ID of the check process in an extension.

tableName

String

The name of the table.

tableType

String

The type of the table. Valid values:

  • ODPS

  • EMR

maxComputeProject

String

The name of the MaxCompute project.

Events of Operation Center

Events

Event category

Event

Regular event

Extension point event

Event type in EventBridge

Event code in Extensions

Node changing

Delete a node

  • Deploy the undeployment operation

  • Undeploy an auto triggered node

image

image

dataworks:NodeChange:NodeChangeDeleted

node-change-deleted

Undeploy a node

  • Undeploy an auto triggered node

image

image

dataworks:NodeChange:UndeployNode

undeploy-node

Freeze a node

image

image

dataworks:NodeChange:FreezeNode

freeze-node

Unfreeze a node

image

image

dataworks:NodeChange:UnFreezeNode

unfreeze-node

Data backfilling for nodes

Backfill data for a node

image

image

dataworks:BackfillDataOperate:BackfillData

backfill-data

Node status changing

Change the status of an auto triggered node

image

image

dataworks:InstanceStatusChanges:InstanceStatusChanges

instance-status-changes

Instance O&M

Freeze an instance

image

image

dataworks:InstanceChange:FreezeInstance

freeze-instance

Unfreeze an instance

image

image

dataworks:InstanceChange:UnfreezeInstance

unfreeze-instance

Terminate an instance

image

image

dataworks:InstanceChange:KillInstance

kill-instance

Rerun an instance

  • Rerun an instance

  • Rerun the descendant instances of an instance

image

image

dataworks:InstanceChange:RerunInstance

rerun-instance

Set the status of an instance to Succeeded

image

image

dataworks:InstanceChange:SetInstanceSuccess

set-instance-success

Workflow status changing

Change the status of a workflow

  • Backfill data for an instance

  • Run a manually triggered workflow

image

image

dataworks:DagStatusChanges:DagStatusChanges

instance-status-changes

Monitoring and alerting

Monitor objects and send alerts

image

image

dataworks:MonitorAlert:WorkbenchMonitorAlert

workbench-monitor-alert

Message formats

Node change events (delete, undeploy, freeze, and unfreeze)

  • Sample code of the message body for a node deletion event:

    {
      "datacontenttype": "application/json;charset=utf-8",
      "data": {
        "nodeName": "",
        "programType": "ODPS_SQL",
        "cronExpress": "00 20 00 * * ?",
        "schedulerType": "NORMAL",
        "ownerId": "1912232488744735",
        "priority": 1,
        "baselineId": 117801853,
        "repeatability": true,
        "modifyTime": 1646364549642,
        "createTime": 1646364549642,
        "datasource": "odps_source",
        "tenantId": 28378****10656,
        "nodeId": 100***150,
        "projectId": 30**95,
        "operator": "**************"  // The operator.
      }
    }

    The following table describes the fields in the preceding sample code.

    Field

    Type

    Description

    nodeName

    String

    The name of the node.

    programType

    String

    The code type of the file. For information about the code type of a file, see DataWorks nodes.

    You can call the ListFileType operation to query the code type of a file.

    cronExpress

    String

    The CRON expression that represents the periodic scheduling policy of the node.

    This parameter is equivalent to the Cron Expression parameter in the Schedule section of the tab on the DataStudio page in the DataWorks console.

    After you configure the Scheduling Cycle and Run At parameters in the DataWorks console, DataWorks automatically generates the value of the Cron Expression parameter. Examples:

    • CRON expression for a node that is scheduled to run at 05:30 every day: 00 30 05 * * ?

    • CRON expression for a node that is scheduled to run at the fifteenth minute of each hour: 00 15 * * * ?

    • CRON expression for a node that is scheduled to run every 10 minutes: 00 00/10 * * * ?

    • CRON expression for a node that is scheduled to run every 10 minutes from 08:00 to 17:00 every day: 00 00-59/10 8-17 * * * ?

    • CRON expression for a node that is scheduled to run at 00:20 on the first day of each month: 00 20 00 1 * ?

    • CRON expression for a node that is scheduled to run every three months starting from 00:10 on January 1: 00 10 00 1 1-12/3 ?

    • CRON expression for a node that is scheduled to run at 00:05 every Tuesday and Friday: 00 05 00 * * 2,5

    Note

    Limits on CRON expressions:

    • A node can be scheduled to run at a minimum interval of 5 minutes.

    • A node can be scheduled to run at 00:05 every day at the earliest.

    schedulerType

    String

    The type of the node. Valid values:

    • 0: NORMAL. The node is a normal auto triggered node. The scheduling system regularly runs the node.

    • 1: MANUAL. The node is a manually triggered node. The scheduling system does not regularly run the node.

    • 2: PAUSE. The node is a frozen node. The scheduling system regularly runs the node but sets the node status to Failed when the scheduling system starts to run the node.

    • 3: SKIP. The node is a dry-run node. The scheduling system regularly runs the node but sets the node status to Succeeded when the scheduling system starts to run the node.

    • 4: SKIP_UNCHOOSE. The node is an unselected node in a temporary workflow. This type of node exists only in temporary workflows. The scheduling system sets the node status to Succeeded when the scheduling system starts to run the node.

    • 5: SKIP_CYCLE. The node is a node that is scheduled by week or month and is waiting for the scheduling time to arrive. The scheduling system regularly runs the node but sets the node status to Succeeded when the scheduling system starts to run the node.

    • 6: CONDITION_UNCHOOSE. The node is not selected by its ancestor branch node and is run as a dry-run node.

    • 7: REALTIME_DEPRECATED. The node has instances that are generated in real time but are deprecated. The scheduling system sets the node status to Succeeded.

    ownerId

    String

    The ID of the Alibaba Cloud account used by the owner of the node. If this field is not configured, the ID of the Alibaba Cloud account of the user who schedules the node is used.

    priority

    Integer

    The priority of the node. Valid values: 1, 3, 5, 7, and 8. A greater value specifies a higher priority.

    baselineId

    Long

    The ID of the baseline.

    repeatability

    Boolean

    Specifies whether the node can be rerun. Valid values:

    • true: The node can be rerun.

    • false: The node cannot be rerun.

    modifyTime

    Long

    The last time when the node was modified.

    createTime

    Long

    The time when the node was created.

    nodeId

    Long

    The ID of the node.

    projectId

    Long

    The ID of the workspace to which the node belongs.

    tenantId

    Long

    The ID of the tenant to which the node belongs.

    operator

    String

    The UID of the user who adds, modifies, or deletes the node.

  • Sample code of the message body for a node freezing, unfreezing, or undeployment event:

    {
      "datacontenttype": "application/json;charset=utf-8",
      "data": {
        "operator": "**************",
        "projectId": 123456,
        "tenantId": 123456,
        "nodeIds":[1,2,3],
        "extensionBizId": "123456"
      }
    }

    The following table describes the fields in the preceding sample code.

    Field

    Type

    Description

    operator

    String

    The UID of the user who freezes, unfreezes, or undeploys the node.

    projectId

    Long

    The ID of the workspace to which the node belongs.

    tenantId

    Long

    The tenant ID.

    nodeIds

    Array

    The IDs of the nodes on which you performed the operation.

    extensionBizId

    String

    The ID of the check process in an extension.

Data backfilling for nodes

Sample code of the message body for a data backfill event:

{
  "datacontenttype": "application/json;charset=utf-8",
  "data": {
    "excludeNodeIds":[],
    "rootNodeId": 10000838271,
    "startFutureInstanceImmediately": false,
    "useMultipleTimePeriods": true,
    "operator": "1320876710332592",
    "eventCode": "backfill-data",
    "multipleTimePeriods": "[{\"bizBeginTime\":\"2022-04-17\",\"bizEndTime\":\"2022-04-17\"}]",
    "parallelGroup": 1,
    "rootNodeProjectId": 12*****8,
    "isParallel": false,
    "name": "P_fff_20220418_215404",
    "tenantId": 16935*****3377,
    "includeNodeIds":
    [
      10***271
    ],
    "projectId": 12958,
    "order": "asc",
    "extensionBizId": "123456"
  }
}

The following table describes the fields in the preceding sample code.

Field

Type

Description

name

String

The name of the workflow that contains the node for which you backfill data.

rootNodeId

Long

The ID of the root node in the workflow that contains the node for which you backfill data.

rootNodeProjectId

Long

The ID of the workspace to which the root node belongs. The root node is in the workflow that contains the node for which you backfill data.

includeNodeIds

Array

The IDs of the nodes for which you backfill data.

excludeNodeIds

Array

The IDs of the nodes for which no data needs to be backfilled. The system generates dry-run instances for all these nodes. After the dry-run instances are scheduled, the statuses of the instances are directly set to Succeeded but the script is not run.

bizBeginTime

String

The time when the node started to run. This field is required only for auto triggered nodes that are scheduled by hour. Specify the value in the HH:mm:ss format. Valid values: 00:00:00 to 23:59:59.

bizEndTime

String

The time when the node finished running. This field is required only for auto triggered nodes that are scheduled by hour. Specify the value in the HH:mm:ss format. Valid values: 00:00:00 to 23:59:59.

isParallel

Boolean

Specifies whether data backfill instances that are scheduled to run at different points in time can be run in parallel.

  • true: Data backfill instances that are scheduled to run at different points in time can be run in parallel.

  • false: Data backfill instances that are scheduled to run at different points in time cannot be run in parallel.

parallelGroup

Integer

The number of data backfill instance groups that are run in parallel. The value 1 indicates that data backfill instances are not grouped.

startFutureInstanceImmediately

Boolean

Specifies whether to immediately run node instances that are scheduled to run at future points in time.

  • true: indicates that node instances that are scheduled to run at future points in time are immediately run.

  • false: indicates that node instances that are scheduled to run at future points in time are not immediately run.

order

String

The node execution sequence based on data timestamps.

  • acs: indicates that nodes are run based on data timestamps in chronological order.

  • desc: indicates that nodes are run based on data timestamps in reverse chronological order.

multipleTimePeriods

String

Multiple data timestamp time periods. The field value is determined by the bizBeginTime and bizEndTime fields. Example: [{\"bizBeginTime\":\"2022-04-17\",\"bizEndTime\":\"2022-04-17\"}].

tenantId

Long

The tenant ID.

projectId

Long

The ID of the workspace in which you perform the data backfill operation.

operator

String

The user who performs the data backfill operation.

extensionBizId

String

The ID of the check process in an extension.

eventCode

String

The event code of the extension point event.

Node status change events

Sample code of the message body for a status change event for an auto triggered node:

{
  "datacontenttype": "application/json;charset=utf-8",
  "data": {
    "beginWaitTimeTime": 1652700576000,
    "dagId": 446555330,
    "dagType": 0,
    "eventCode": "instance-status-changes",
    "taskType": 0,
    "modifyTime": 1652700577000,
    "createTime": 1652543233000,
    "appId": 3*****2,
    "tenantId": 235454***432001,
    "opCode": 31,
    "flowId": 1,
    "nodeId": 1002698219,
    "beginWaitResTime": 1652700577000,
    "taskId": 4532688169,
    "status": 3
  }
}

The following table describes the fields in the preceding sample code.

Field

Type

Description

finishTime

Long

The time when the auto triggered node instance finished running.

beginWaitTimeTime

Long

The time when the auto triggered node instance started to wait for the scheduling time.

beginRunningTime

Long

The time when the auto triggered node instance started to run.

dagId

Long

The ID of the directed acyclic graph (DAG). You can query the details of the DAG based on the dagId field.

dagType

Integer

The type of the DAG. Valid values:

  • 0: for auto triggered nodes

  • 1: for manually triggered nodes

  • 2: for smoke testing

  • 3: for nodes for which you backfill data

  • 4: for temporary workflows

  • 5: for manually triggered workflows

taskType

Integer

The type of the node. Valid values:

  • 0: NORMAL. The node is a normal auto triggered node. The scheduling system regularly runs the node.

  • 1: MANUAL. The node is a manually triggered node. The scheduling system does not regularly run the node.

  • 2: PAUSE. The node is a frozen node. The scheduling system regularly runs the node but sets the node status to Failed when the scheduling system starts to run the node.

  • 3: SKIP. The node is a dry-run node. The scheduling system regularly runs the node but sets the node status to Succeeded when the scheduling system starts to run the node.

  • 4: SKIP_UNCHOOSE. The node is an unselected node in a temporary workflow. This type of node exists only in temporary workflows. The scheduling system sets the node status to Succeeded when the scheduling system starts to run the node.

  • 5: SKIP_CYCLE. The node is a node that is scheduled by week or month and is waiting for the scheduling time to arrive. The scheduling system regularly runs the node but sets the node status to Succeeded when the scheduling system starts to run the node.

  • 6: CONDITION_UNCHOOSE. The node is not selected by its ancestor branch node and is run as a dry-run node.

  • 7: REALTIME_DEPRECATED. The node has instances that are generated in real time but are deprecated. The scheduling system sets the node status to Succeeded.

modifyTime

Long

The last time when the node instance was modified.

createTime

Long

The time when the node instance was created.

appId

Long

The ID of the workspace. You can call the ListProjects operation to query the ID of the workspace.

tenantId

Long

The ID of the tenant that manages the workspace to which the auto triggered node instance belongs.

opCode

Integer

The operation code of the auto triggered node instance. You can ignore the field value.

flowId

Long

The ID of the workflow.

  • For an auto triggered node instance, the field value is 1.

  • For a manually triggered workflow or an auto triggered node instance of the internal workflow type, the field value is the actual workflow ID.

nodeId

Long

The ID of the node for which the auto triggered node instance was generated.

beginWaitResTime

Long

The time when the auto triggered node instance started to wait for resources.

taskId

Long

The ID of the auto triggered node instance.

status

Integer

The status of the node. Valid values:

  • 1: The node is not run.

  • 2: The node is waiting for the scheduling time to arrive. The scheduling time is specified by dueTime or cycleTime.

  • 3: The node is waiting for resources.

  • 4: The node is running.

  • 7: Tables that are specified in the node are issued to Data Quality and data in the tables is checked based on monitoring rules.

  • 8: Branch conditions are being checked.

  • 5: The node failed to be run.

  • 6: The node is successfully run.

eventCode

String

The event code of the extension point event.

Instance operation events (freeze, unfreeze, terminate, rerun, and set the instance status to Succeeded)

Sample code of the message body for an instance operation event:

{
  "datacontenttype": "application/json;charset=utf-8",
  "data": {
    "eventCode": "freeze-instance",
    "operator": "182293110403****",
    "projectId": 123488,
    "projectType": "PROD",
    "taskIds": [
      523536569736
    ],
    "tenantId": 280749521950784
  }
}

The following table describes the fields in the preceding sample code.

Field

Type

Description

operator

String

The UID of the user who performs the operations such as freezing, unfreezing, terminating, or rerunning an instance, or setting the status of an instance to Succeeded.

projectType

String

The runtime environment.

  • PROD: the production environment.

  • DEV: the development environment.

taskIds

List<Long>

The IDs of the instances.

projectId

Long

The ID of the workspace.

tenantId

Long

The ID of the tenant that manages the workspace to which the instance belongs.

eventCode

String

The event code of the extension point event.

Workflow status change events

Sample code of the message body for a status change event for a workflow:

{
  "datacontenttype": "application/json;charset=utf-8",
  "data": {
    "bizDate": "2022-11-07 00:00:00",
    "createTime": "2022-11-08 10:56:32",
    "dagId": 500358972116,
    "dagName": "P_test_spark_true_copy_20221108_105631",
    "eventCode": "dag-status-changes",
    "dagType": 3,
    "flowId": 1,
    "flowName": "ATCLOUD_FLOW",
    "operator": "11****538",
    "projectEnv": "PROD",
    "projectId": 25***63,
    "status": 6,
    "tenantId": 52***736
  }
}

The following table describes the fields in the preceding sample code.

Field

Type

Description

bizDate

String

The data timestamp of the workflow. The value is in the yyyy-mm-dd hh24:mi:ss format.

createTime

String

The time when the workflow was created. The value is in the yyyy-mm-dd hh24:mi:ss format.

dagId

Long

The ID of the DAG. You can query the details of the DAG based on the dagId field.

dagName

String

The name of the workflow.

dagType

Integer

The type of the DAG. Valid values:

  • 0: for auto triggered nodes

  • 1: for manually triggered nodes

  • 2: for smoke testing

  • 3: for nodes for which you backfill data

  • 4: for temporary workflows

  • 5: for manually triggered workflows

flowId

Integer

The ID of the workflow.

flowName

String

The name of the workflow.

operator

String

The UID of the user who created the workflow.

projectEnv

String

The environment to which the workflow belongs. Valid values:

  • DEV: the development environment

  • PROD: the production environment

tenantId

Long

The ID of the tenant that manages the workspace to which the auto triggered node instance belongs.

projectId

Long

The ID of the workspace.

status

Integer

The status of the node in the workflow. Valid values:

  • 1: The node is not run.

  • 4: The node is running.

  • 5: The node failed to be run.

  • 6: The node is successfully run.

eventCode

String

The event code of the extension point event.

Monitoring and alerting

  • Sample code of the message body for a baseline alert:

    {
      "datacontenttype": "application/json;charset=utf-8",
      "data": {
        "eventCode": "workbench-monitor-alert",
        "alarmType": "SLA_ALERT",
        "baselineId": 137000723,
        "baselineName": "Dedicated to the check for hour-level nodes at the ODS layer",
        "baselineStatus": 3,
        "bizDate": 1654444800000,
        "inGroupId": 14,
        "nodeId": 10000398734,
        "projectId": 7634,
        "taskId": 3072893778,
        "tenantId": 260953503125729
      }
    }

    The following table describes the fields in the preceding sample code.

    Field

    Type

    Description

    alarmType

    String

    The type of the alert. Valid values:

    • SLA_ALERT

    • REMIND_ALERT

    • TOPIC_ALERT

    baselineId

    Long

    The ID of the baseline.

    baselineName

    String

    The name of the baseline.

    baselineStatus

    Integer

    The status of the baseline. Valid values:

    • -1: indicates that the baseline is abnormal.

    • 1: indicates that the baseline is safe.

    • 2: indicates that an alert is triggered for the baseline.

    • 3: indicates that the baseline is in the Overtime state.

    bizDate

    Long

    The data timestamp of the baseline instance.

    inGroupId

    Integer

    The ID of the scheduling cycle of the baseline instance. For a baseline instance that is scheduled by day, the field value is 1. For a baseline instance that is scheduled by hour, the field value ranges from 1 to 24.

    nodeId

    Long

    The ID of the node that triggers an exception on the baseline to which the node belongs.

    projectId

    Long

    The ID of the workspace to which the baseline belongs.

    taskId

    Long

    The ID of the instance that triggers an exception on the baseline to which the instance belongs.

    tenantId

    Long

    The tenant ID.

    eventCode

    String

    The event code of the extension point event.

  • Sample code of the message body for an event alert:

    {
      "datacontenttype": "application/json;charset=utf-8",
      "data": {
        "alarmType": "TOPIC_ALERT",
        "nodeId": 10000316315,
        "projectId": 9109,
        "taskId": 3072750357,
        "taskStatus": 5,
        "tenantId": 280749521950784,
        "topicId": 1084769
      }
    }

    The following table describes the fields in the preceding sample code.

    Field

    Type

    Description

    alarmType

    String

    The type of the alert. Valid values:

    • SLA_ALERT

    • REMIND_ALERT

    • TOPIC_ALERT

    topicId

    Long

    The ID of the event.

    taskStatus

    String

    The status of the instance that is generated for the node in which the event occurred.

    nodeId

    Integer

    The ID of the node in which the event occurred.

    projectId

    Long

    The ID of the workspace to which the node in which the event occurred belongs.

    taskId

    Long

    The ID of the instance that is generated for the node in which the event occurred.

    tenantId

    Long

    The tenant ID.

  • Sample code of the message body for a rule-based alert:

    Note

    In most cases, the objects for which you can configure a rule include node, baseline, workspace, and workflow.

    {
      "datacontenttype": "application/json;charset=utf-8",
      "data": {
        "alarmType": "REMIND_ALERT",
        "nodeIds": "10000405472,10000405473,10000405474",
        "projectId": 9876,
        "remindId": 7605,
        "remindName": "Error alert",
        "remindType": "ERROR",
        "remindUnit": "NODE",
        "taskIds": "3072900896,3072900870,3072900855",
        "tenantId": 259025816027648
      }
    }

    The following table describes the fields in the preceding sample code.

    Field

    Type

    Description

    alarmType

    String

    The type of the alert. Valid values:

    • SLA_ALERT

    • REMIND_ALERT

    • TOPIC_ALERT

    nodeIds

    String

    The IDs of the nodes for which the rule-based alert is triggered.

    remindId

    Long

    The ID of the rule.

    remindType

    Stirng

    The trigger condition of the rule. Valid values:

    • FINISHED: The object finishes running.

    • UNFINISHED: The object does not finish running.

    • ERROR: An error occurs when the object runs.

    • CYCLE_UNFINISHED: The object does not finish running in the current scheduling cycle.

    • TIMEOUT: The execution of the object times out.

    projectId

    Long

    The ID of the workspace. The workspace contains the node for which the rule-based alert is triggered.

    remindUnit

    String

    The type of the object for which the rule-based alert is triggered. Valid values:

    • NODE: a node

    • GATEWAY_RES: an exclusive resource group for scheduling

    • DI_RES: a resource group for Data Integration

    tenantId

    Long

    The tenant ID.

    taskId

    String

    The IDs of the instances for which the rule-based alert is triggered.

    remindName

    String

    The name of the rule.

  • Sample code of the message body for a rule-based alert for a resource group:

    {
      "datacontenttype": "application/json;charset=utf-8",
      "data": {
        "alarmType": "REMIND_ALERT",
        "projectId": 2991,
        "remindId": 200000186,
        "remindName": "Alert for an exclusive resource group",
        "remindType": "RES_GROUP_THRESHOLD",
        "remindUnit": "GATEWAY_RES",
        "resourceGroupIdentifier": "S_res_group_195820716552192_1650965857744",
        "resourceGroupName": "emr_exclusive_scheduld",
        "resourceGroupType": "GATEWAY",
        "tenantId": 195820716552192
      }
    }

    The following table describes the fields in the preceding sample code.

    Field

    Type

    Description

    alarmType

    String

    The type of the alert. Valid values:

    • SLA_ALERT

    • REMIND_ALERT

    • TOPIC_ALERT

    remindId

    Long

    The ID of the rule.

    remindType

    Stirng

    The trigger condition of the rule. Valid values:

    • FINISHED: The object finishes running.

    • UNFINISHED: The object does not finish running.

    • ERROR: An error occurs when the object runs.

    • CYCLE_UNFINISHED: The object does not finish running in the current scheduling cycle.

    • TIMEOUT: The execution of the object times out.

    • RES_GROUP_THRESHOL: The resource usage of a resource group reaches the upper limit of the threshold.

    • RES_GROUP_WAIT_AMOUNT: The number of instances that are run on a resource group and are waiting for the resources in the resource group reaches the upper limit of the threshold.

    projectId

    Long

    The ID of the workspace. The workspace contains the node for which the rule-based alert is triggered.

    remindUnit

    String

    The type of the object for which the rule-based alert is triggered. Valid values:

    • NODE: a node

    • GATEWAY_RES: an exclusive resource group for scheduling

    • DI_RES: a resource group for Data Integration

    tenantId

    Long

    The tenant ID.

    remindName

    String

    The name of the rule.

    resourceGroupIdentifier

    String

    The ID of the resource group.

    resourceGroupName

    String

    The name of the resource group.

    resourceGroupType

    String

    The type of the resource group. Valid values:

    • GATEWAY: a resource group for scheduling

    • DI: a resource group for Data Integration

Events of Security Center

Events

Event category

Event

Regular event

Extension point event

Event type in EventBridge

Event code in Extensions

Approval Center (creation or completion of a request processing order)

Create a request processing order

image

image

dataworks:ApprovalChange:ApprovalChangeCreated

approval-change-created

Complete a request processing order

image

image

dataworks:ApprovalChange:ApprovalChangeFinished

approval-change-finished

Security Center (table permission requesting)

Request permissions on tables

image

image

dataworks:ApprovalChange:ApprovalChangeBeforeCreate

approval-change-before-create

Message formats

Message body for an Approval Center event (creation or completion of a request processing order)

  • Sample code of the message body for the event of creating a request processing order:

    {
      "datacontenttype": "application/json;charset=utf-8",
      "data": {
        "appId":194209,
        "assignee":"286098539641742899",
        "assigneeName":"yupeng.sunyp",
        "createTime":1652094363000,
        "eventType":"approval",
        "process":{
          "applicant":"286098539641742899",
          "applicantName":"yupeng.sunyp",
          "approvalContent":{
            "applyPeriod":"2997964800000",
            "applyReason":"test",
            "arrayData":[
              {
                "ownerBaseId":"1822***45",
                "objectType":"TABLE",
                "odpsTable":"loghub_070103",
                "envType":1,
                "projectGuid":"odps.b_mc1",
                "objectGuid":"odps.b_mc1.loghub_070103",
                "tenantId":0,
                "objectName":"loghub_070103",
                "ownerAccountName":"ALIYUN$******(******)",
                "odpsProject":"B_MC1",
                "projectName":"B_MC1",
                "actions":[
                  "Select",
                  "Describe"
                ],
                "projectId":194209,
                "workspaceId":"194209"
              }
            ],
            "contentType":"application/json",
            "granteeAccounts":[
              {
                "granteeId":"2860985***99",
                "granteeTypeSub":103,
                "granteeType":1,
                "granteeName":"RAM$dataworks_3h1_1:yupeng.sunyp"
              },
              {
                "granteeId":"237857631119109360",
                "granteeTypeSub":105,
                "granteeType":1,
                "granteeName":"RAM$dataworks_3h1_1:dev"
              }
            ],
            "odpsProjectName":"B_MC1",
            "projectEnv":"1",
            "resourceSummary":"loghub_070103",
            "tenantId":280749521950784,
            "workspaceId":194209
          },
          "assignmentCategory":"MaxCompute",
          "createTime":1652094363000,
          "processDefinitionId":"definition-3dcc9ce7-d29d-435d-a908-60d4355ff5e2",
          "processId":"528535869984706",
          "status":"Pending",
          "title":"MaxComputeTable",
          "updateTime":1652094363000
        },
        "processId":"528535869984706",
        "status":"Submit",
        "eventCode": "approval-change-created",
        "taskId":"528535870015424",
        "tenantId":280749521950784,
        "updateTime":1652094364000
      }
    }{
      "datacontenttype": "application/json;charset=utf-8",
      "data": {
        "appId":227859,
        "assignee":"286098539641742899",
        "eventCode": "approval-change-finished",
        "assigneeName":"******.******",
        "comments":"ces",
        "createTime":1652095981000,
        "eventType":"approval",
        "process":{
            "applicant":"286098539641742899",
            "applicantName":"yupeng.sunyp",
            "approvalContent":{
                "applyPeriod":"2997964800000",
                "applyReason":"test",
                "arrayData":[
                    {
                        "ownerBaseId":"238266539737108884", 
                        "objectType":"TABLE",
                        "odpsTable":"cdd",
                        "objectNameCn":"******",
                        "envType":1,
                        "projectGuid":"odps.da_simple_202112",
                        "objectGuid":"odps.da_simple_202112.cdd",
                        "tenantId":0,
                        "objectName":"cdd",
                        "ownerAccountName":"RAM$******(******)",
                        "odpsProject":"da_simple_202112",
                        "projectName":"da_simple_202112",
                        "actions":[
                            "Select",
                            "Describe"
                        ],
                        "projectId":227859,
                        "workspaceId":"227859"
                    }
                ],
                "contentType":"application/json",
                "granteeAccounts":[
                    {
                        "granteeId":"286098539641742899",
                        "granteeTypeSub":103,
                        "granteeType":1,
                        "granteeName":"RAM$dataworks_3h1_1:yupeng.sunyp"
                    }
                ],
                "odpsProjectName":"da_simple_202112",
                "projectEnv":"1",
                "resourceSummary":"cdd",
                "tenantId":280749521950784,
                "workspaceId":227859
            },
            "assignmentCategory":"MaxCompute",
            "createTime":1652095981000,
            "processDefinitionId":"definition-6e6418e6-c65f-4f26-a673-88576b1c1e4a",
            "processId":"528539182432192",
            "status":"Pending",
            "title":"MaxComputeTable",
            "updateTime":1652095981000
        }

    The following table describes the fields in the preceding sample code.

    Field

    Type

    Description

    appId

    Long

    The ID of the workspace.

    assignee

    String

    The base ID of the Alibaba Cloud account used by the request approver.

    assigneeName

    String

    The name of the Alibaba Cloud account used by the request approver.

    comments

    String

    The comment.

    createTime

    Long

    The timestamp when the request processing order is created.

    processId

    String

    The ID of the request processing order.

    status

    String

    The status of the request processing order.

    taskId

    String

    The ID of the request processing task.

    tenantId

    String

    The tenant ID.

    updateTime

    String

    The timestamp when the request processing order is updated.

    eventType

    String

    The type of the event.

    process

    Object

    The process for the request processing task.

    applicant

    String

    The base ID of the applicant.

    applicantName

    String

    The name of the applicant.

    assignmentCategory

    String

    The type of the content on which you request permissions.

    createTime

    String

    The timestamp when the request processing order is created.

    processDefinitionId

    String

    The unique ID of the defined approval workflow.

    processId

    String

    The ID of the workflow.

    status

    String

    The status of the workflow.

    title

    String

    The title of the workflow.

    updateTime

    Long

    The timestamp when the request processing order is updated.

    approvalContent

    Object

    The content of the request processing order.

    applyPeriod

    String

    The validity period of the requested permissions.

    applyReason

    String

    The reason for the request.

    contentType

    String

    The data type of the content.

    odpsProjectName

    String

    The name of the MaxCompute project.

    resourceSummary

    String

    The description of the resource.

    tenantId

    Long

    The tenant ID.

    workspaceId

    Long

    The ID of the workspace.

    projectEnv

    String

    The environment of the MaxCompute project.

    granteeAccounts

    Array

    The accounts of the requesters.

    .granteeId

    String

    The ID of the requester.

    granteeType

    String

    The authorization type.

    granteeTypeSub

    String

    The account type of the requester.

    granteeName

    String

    The name of the requester.

    arrayData

    Array

    The authorized content. For more information, see the appendixes in this topic.

    eventType

    String

    The type of the event.

  • Sample code of the message body for the event of completing a request processing order:

    {
      "datacontenttype": "application/json;charset=utf-8",
      "data": {
        "appId": 227859,
        "assignee": "286098539641742899",
        "eventCode": "approval-change-finished",
        "assigneeName": "******.******",
        "comments": "ces",
        "createTime": 1652095981000,
        "eventType": "approval",
        "process": {
          "applicant": "286098539641742899",
          "applicantName": "yupeng.sunyp",
          "approvalContent": {
            "applyPeriod": "2997964800000",
            "applyReason":"test",
            "arrayData": [
              {
                "ownerBaseId": "238266539737108884",
                "objectType": "TABLE",
                "odpsTable": "cdd",
                "objectNameCn": "******",
                "envType": 1,
                "projectGuid": "odps.da_simple_202112",
                "objectGuid": "odps.da_simple_202112.cdd",
                "tenantId": 0,
                "objectName": "cdd",
                "ownerAccountName": "RAM$******(******)",
                "odpsProject": "da_simple_202112",
                "projectName": "da_simple_202112",
                "actions": [
                  "Select",
                  "Describe"
                ],
                "projectId": 227859,
                "workspaceId": "227859"
              }
            ],
            "contentType": "application/json",
            "granteeAccounts": [
              {
                "granteeId": "286098539641742899",
                "granteeTypeSub": 103,
                "granteeType": 1,
                "granteeName": "RAM$dataworks_3h1_1:yupeng.sunyp"
              }
            ],
            "odpsProjectName": "da_simple_202112",
            "projectEnv": "1",
            "resourceSummary": "cdd",
            "tenantId": 280749521950784,
            "workspaceId": 227859
          },
          "assignmentCategory": "MaxCompute",
          "createTime": 1652095981000,
          "processDefinitionId": "definition-6e6418e6-c65f-4f26-a673-88576b1c1e4a",
          "processId": "528539182432192",
          "status": "Pending",
          "title": "MaxComputeTable",
          "updateTime": 1652095981000
        }
      }
    }

    The following table describes the fields in the preceding sample code.

    Field

    Type

    Description

    appId

    Long

    The ID of the workspace.

    assignee

    String

    The base ID of the Alibaba Cloud account used by the request approver.

    assigneeName

    String

    The name of the Alibaba Cloud account used by the request approver.

    comments

    String

    The comment.

    createTime

    Long

    The timestamp when the request processing order is created.

    processId

    String

    The ID of the request processing order.

    status

    String

    The status of the request processing order.

    taskId

    String

    The ID of the request processing task.

    tenantId

    String

    The tenant ID.

    updateTime

    String

    The timestamp when the request processing order is last updated.

    eventType

    String

    The type of the event.

    process

    Object

    The process for the request processing task.

    applicant

    String

    The base ID of the applicant.

    applicantName

    String

    The name of the applicant.

    assignmentCategory

    String

    The type of the content on which you request permissions.

    createTime

    String

    The timestamp when the request processing order is created.

    processDefinitionId

    String

    The unique ID of the defined approval workflow.

    processId

    String

    The ID of the workflow.

    status

    String

    The status of the workflow.

    title

    String

    The title of the workflow.

    updateTime

    Long

    The timestamp when the request processing order is updated.

    approvalContent

    Object

    The content of the request processing order.

    applyPeriod

    String

    The validity period of the requested permissions.

    applyReason

    String

    The reason for the request.

    contentType

    String

    The data type of the content.

    odpsProjectName

    String

    The name of the MaxCompute project.

    resourceSummary

    String

    The description of the resource.

    tenantId

    Long

    The tenant ID.

    workspaceId

    Long

    The ID of the workspace.

    projectEnv

    String

    The environment of the MaxCompute project.

    granteeAccounts

    Array

    The accounts of the requesters.

    granteeId

    String

    The ID of the requester.

    granteeType

    String

    The authorization type.

    granteeTypeSub

    String

    The account type of the requester. Valid values:

    • ACCOUNT_PRD(101): the account that is used for node scheduling in the production environment

    • ACCOUNT_APP(102): the account for an application

    • ACCOUNT_USER(103): the account for a user

    • ACCOUNT_DEPT(104): the account for a department

    • ACCOUNT_MOCK(106): the account for MOCK

    • ACCOUNT_OTHER_USER(105): the account for another user

    granteeName

    String

    The name of the requester.

    arrayData

    Array

    The authorized content. For more information, see the appendixes in this topic.

    eventType

    String

    The type of the event.

Message body for a Security Center event (table permission requesting)

Sample code of the message body for a pre-event for table permission request:

{
  "datacontenttype": "application/json;charset=utf-8",
  "data": {
    "eventType": "approval-create-before",
    "operator":"1239****8872",
    "order":{
      "applyReason":"test",
      "deadlineDate":"1",
      "deadlineType":"month",
      "granteeObjectList":[
        {
          "granteeId":"1239****8872"
        }
      ],
      "projectMeta":{
        "envCode":1,
        "labelSecurity":false,
        "objectMetaList":[
          {
            "action":[
              "Select",
              "Describe"
            ],
            "name":"tablei",
            "projectGuid":"odps.d11aa"
          }
        ],
        "projectId":2****0,
        "projectName":"d11aa"
      }
    },
    "projectId":2****0,
    "tenantId":5564****6465
  }
}

The following table describes the fields in the preceding sample code.

Field

Type

Description

operator

String

The ID of the user who requests for permissions on a table (pre-event).

projectId

Long

The ID of the workspace in which a pre-event for table permission request is identified.

tenantId

Long

The ID of the tenant within which a pre-event for table permission request is identified.

order

Object

The information about the request order.

applyReason

String

The reason for the request.

deadlineDate

String

The validity period of the request order.

deadlineType

String

The unit of the validity period of the request order. Valid values: Day and Month.

granteeObjectList

Object

The list of authorized objects.

granteeId

String

The ID of the authorized object, which is the ID of a RAM user.

projectMeta

Object

The information about the workspace.

envCode

Integer

The code of the workspace environment. The value 0 indicates the development environment. The value 1 indicates the production environment.

labelSecurity

Boolean

Specifies whether to enable label-level control. Valid values:

  • true: enable

  • false: disable

objectMetaList

Array

The list of authorized objects.

action

Array

The authorized operation. For example, the authorized object is granted the SELECT or DESCRIBE permission.

name

String

The name of the table on which you want to request for permissions.

projectGuid

String

The GUID of the workspace to which the table belongs.

projectName

String

The name of the workspace to which the table belongs.

eventType

String

The type of the event.

Appendix: Authorized content (MaxCompute)

When table permissions are requested or requests are processed, event messages are generated in DataWorks Security Center. The arrayData field is added to the event messages that are sent to EventBridge. Sample data content of arrayData if the assignmentCategory field is set to MaxCompute:

{
    "ownerBaseId":"1822931104031845",
    "objectType":"TABLE",
    "odpsTable":"oracle_************",
    "envType":1,
    "projectGuid":"odps.***********",
    "objectGuid":"odps.******.******",
    "tenantId":0,
    "objectName":"oracle_******",
    "ownerAccountName":"ALIYUN***************",
    "odpsProject":"dataworks******",
    "projectName":"dataworks******",
    "actions":[
      "Select",
      "Describe"
    ],
    "projectId":107100,
    "workspaceId":"107100"
  }

The following table describes the fields in the preceding sample code.

Field

Type

Description

ownerBaseId

String

The base ID of the table owner.

ownerAccountName

String

The name of the table owner.

objectType

String

The type of the object.

odpsTable

String

The name of the table.

envType

String

The type of the environment in which the table is used.

projectGuid

String

The GUID of the MaxCompute project.

objectGuid

String

The GUID of the object.

objectName

String

The name of the object.

odpsProject

String

The name of the MaxCompute project.

projectName

String

The code of the MaxCompute project.

projectId

Long

The ID of the project.

workspaceId

String

The ID of the workspace.

actions

Array

The actions.

Appendix: Authorized content (DataService)

When table permissions are requested or requests are processed, event messages are generated in DataWorks Security Center. The arrayData field is added to the event messages that are sent to EventBridge. Sample data content of arrayData if the assignmentCategory field is set to DataService:

{
    "resourceId":"DsApiDeploy/******/workspaceId/******/dsDeployId/******",
    "ownerName":"******",
    "resourceVersion":1,
    "name":"api_api",
    "dsDeployId":"******",
    "workspaceName":"da_******",
    "id":"******",
    "type":1,
    "ownerId":"******",
    "url":"https://******.data.aliyun.com/?projectId=******&type=api&id=******&version=***&defaultProjectId=******",
    "workspaceId":"******"
  }

The following table describes the fields in the preceding sample code.

Field

Type

Description

resourceId

String

The ID of the resource.

ownerName

String

The name of the resource owner.

resourceVersion

Long

The version of the resource.

name

String

The name of the resource.

dsDeployId

String

The ID of the API published in DataService Studio.

workspaceName

String

The name of the workspace.

id

String

The unique identifier of the resource.

type

String

The type of the resource. Valid values:

  • 1: API

  • 2: function

  • 3: service orchestration

ownerId

String

The base ID of the resource owner.

url

String

The URL for DataService Studio.

workspaceId

String

The ID of the workspace.

Events of Data Quality

Events

Event category

Event

Regular event

Extension point event

Event type in EventBridge

Event code in Extensions

Data quality check

Provide feedback on data quality check results

  • Provide feedback on data quality check results

image

image

dataworks:DqcCheck:DqcCheckFeedbackEvent

dqc-check-feedback-event

Report that a data quality check is complete

  • Send data quality check results, including whether the check is passed and the sampling information

image

image

dataworks:DqcCheck:DqcCheckFinishedEvent

dqc-check-finished-event

Message formats

Message body for a Data Quality check event

  • Sample code of the message body for a check result feedback event:

    {
      "datacontenttype": "application/json;charset=utf-8",
      "data": {
        "ruleCheckId": 521771452,
        "feedbackContent": "Skip",
        "ruleId": 28610334,
        "createUser": "110755000425****",
        "taskId": "167644814****9a26ecf4063a88797",
        "beginTime": "1676448145000",
        "envType": "ODPS",
        "projectName": "test_mc_2303_kongjian",
        "projectId": 242601,
        "tenantId": 524257424564736
      }
    }

    The following table describes the fields in the preceding sample code.

    Field

    Type

    Description

    ruleId

    Long

    The ID of the monitoring rule.

    ruleCheckId

    Long

    The auto-increment ID of the data quality check result.

    feedbackContent

    String

    The feedback content.

    createUser

    String

    The ID of the user who provides the feedback.

    taskid

    String

    The ID of the node that is associated with the monitoring rule.

    beginTime

    String

    The time when the feedback is provided.

    envType

    String

    The type of the data source to which the table associated with the monitoring rule belongs. Valid values: ODPS, EMR, and HOLO.

    projectName

    String

    The name of the data source to which the table associated with the monitoring rule belongs.

    projectId

    Long

    The ID of the workspace.

    tenantId

    Long

    The ID of the DataWorks tenant.

  • Sample code of the message body for a check completion event:

    {
      "datacontenttype": "application/json;charset=utf-8",
      "data": {
        "projectId": 242601,
        "tenantId": 52425742456****,
        "id": 52177****,
        "taskId": "1676463288449d1b2102ac40048aeb7a628753363****",
        "entityId": 1562***,
        "ruleId": 28610334,
        "property": "-",
        "bizdate": "2023-02-09 00:00:00",
        "dateType": "YMD",
        "actualExpression": "ds\u003d20230210",
        "matchExpression": "ds\u003d$[yyyymmdd]",
        "blockType": 1,
        "checkResult": 0,
        "eventCode": "dqc-check-finished-event",
        "checkResultStatus": 0,
        "methodName": "table_count",
        "beginTime": "2023-02-15 20:14:48",
        "endTime": "2023-02-15 20:14:55",
        "timeConsuming": "7s",
        "externalType": "CWF2",
        "externalId": "triggerByManual",
        "discrete": false,
        "fixedCheck": true,
        "referenceValue": [
          {
            "bizDate": "3000-12-31 00:00:00",
            "discreteProperty": "Number of rows, one day difference",
            "value": 0.0,
            "singleCheckResult": 0
          }
        ],
        "sampleValue": [
          {
            "bizDate": "2023-02-09 00:00:00",
            "value": 3.0
          }
        ],
        "trend": "\u003e\u003d",
        "expectValue": 0.0,
        "op": "\u003e\u003d",
        "projectName": "test_mc_2303_kongjian",
        "tableName": "sx_dim_1209_001",
        "templateId": 47,
        "checkerType": 0,
        "ruleName": "Difference compared with the previous day",
        "isPrediction": false,
        "feedbackStatus": 0,
        "whetherToFilterDirtyData": false
      }
    }

    The following table describes the fields in the preceding sample code.

    Field

    Type

    Description

    id

    Long

    The ID of the primary key for the check process. Each time a check is triggered, a record of the primary key ID is added.

    projectId

    Long

    The ID of the DataWorks workspace.

    tenantId

    Long

    The ID of the DataWorks tenant.

    taskId

    String

    The ID of the monitoring task.

    entityId

    Long

    The ID of the partition filter expression.

    ruleId

    Long

    The ID of the rule.

    property

    String

    The field whose data quality is checked based on the monitoring rule. This field is a column in the data source table that is monitored.

    bizdate

    Long

    The data timestamp. If the quality of offline data needs to be checked, the value is one day earlier than the time when you perform the data quality check in most cases.

    dateType

    String

    The scheduling frequency. In most cases, the value is YMD, which indicates that the node is scheduled by year, month, or day.

    actualExpression

    String

    The partition in the monitored data source table.

    matchExpression

    String

    The partition filter expression.

    blockType

    Integer

    The strength of the monitoring rule. The strength of a monitoring rule indicates the importance of the rule. Valid values:

    • 1: indicates that the monitoring rule is a strong rule.

    • 0: indicates that the monitoring rule is a weak rule.

    You can specify whether a monitoring rule is a strong rule based on your business requirements. If a monitoring rule is a strong rule and the critical threshold is exceeded, a critical alert is reported and nodes that are associated with the rule are blocked from running.

    checkResult

    Integer

    The status of the check result. Valid values:

    • -1: An exception occurs during the check.

    • 0: The monitored data passes the quality check.

    • 1: The warning threshold is exceeded.

    • 2: The critical threshold is exceeded.

    methodName

    String

    The method used to collect sample data, such as avg, count, sum, min, max, count_distinct, user_defined, table_count, table_size, table_dt_load_count, table_dt_refuseload_count, null_value, null_value/table_count, (table_count-count_distinct)/table_count, or table_count-count_distinct.

    beginTime

    Long

    The time when the check process started.

    endTime

    Long

    The time when the check process ended.

    timeConsuming

    String

    The time that was taken to run the monitoring task.

    externalType

    String

    The type of the scheduling system. Only CWF2 is supported. If the externalType field is left empty, a manual test node is used.

    externalId

    String

    • If the externalType field is set to CWF2, the value is the ID of a node that is periodically scheduled.

    • If the externalType field is left empty, the externalId field is set to triggerByManual, which indicates that the node is manually triggered.

    discrete

    Boolean

    Indicates whether discrete monitoring is performed. Valid values:

    • true: indicates that discrete monitoring is performed.

    • false: indicates that non-discrete monitoring is performed.

    fixedCheck

    Boolean

    Indicates whether the monitoring is performed based on a fixed value. Valid values:

    • true: indicates that the monitoring is performed based on a fixed value.

    • false: indicates that the monitoring is performed based on a non-fixed value.

    referenceValue

    The historical sample values.

    bizDate

    Long

    The data timestamp. If the quality of offline data needs to be checked, the value is one day earlier than the time when you perform the data quality check in most cases.

    discreteProperty

    String

    The values of the sample field that are grouped by using the GROUP BY clause. For example, the values of the Gender field are grouped by using the GROUP BY clause. In this case, the values of the DiscreteProperty parameter are Male, Female, and null.

    value

    Decimal

    The sample value.

    singleCheckResult

    Integer

    The string of the check result.

    sampleValue

    The current sample values.

    bizDate

    Long

    The data timestamp. If the quality of offline data needs to be checked, the value is one day earlier than the time when you perform the data quality check in most cases.

    value

    Decimal

    The sample value.

    trend

    String

    The trend of the check result.

    expectValue

    Double

    The expected value.

    op

    String

    The comparison operator.

    projectName

    String

    The name of the compute engine or data source whose data quality you want to monitor.

    tableName

    String

    The name of the table that is monitored.

    templateId

    Integer

    The ID of the data quality monitoring template you use.

    checkerType

    Integer

    The type of the checker.

    ruleName

    String

    The name of the rule.

    isPrediction

    Boolean

    Indicates whether the check result meets your business requirements. Valid values:

    • true: indicates that the check result meets your business requirements.

    • false: indicates that the check result does not meet your business requirements.

    comment

    String

    The description of the monitoring rule.

    eventCode

    String

    The event code of the extension point event.

Tenant-level events

Tenant-level services generate tenant-level events. For example, an event that is generated when a workspace is deleted in the DataWorks console is a tenant-level event. In this section, the tables describe the events supported by each DataWorks service, whether an event is a regular event or an extension point event, and the message format of an event.

On the Message formats tabs of this section, you can view only partial content of the format of an event message. To view a complete event message sent to EventBridge or Function Compute, see the Appendix: Message formats section in this topic.

Events of the DataWorks console

Events

Event category

Event

Regular event

Extension point event

Event type in EventBridge

Event code in Extensions

Delete a workspace

Delete a workspace (pre-event)

image

image

dataworks:ProjectChange:DeleteProject

delete-project

Delete a workspace (post-event)

image

image

dataworks:ProjectChange:ProjectDeleted

project-deleted

Message formats

Message body for a workspace deletion event

  • Sample code of the message body for a pre-event for workspace deletion within a tenant:

    {
     
      "data": {
        "eventCode": "delete-project",
        "projectId": 7***7, // The ID of the workspace.
        "tenantId": 2807****0784, // The ID of the tenant.
        "operator": "The base ID of the operator"
    }

    The following table describes the fields in the preceding sample code.

    Field

    Type

    Description

    operator

    String

    The ID of the user who deletes the DataWorks workspace.

    projectId

    Long

    The ID of the DataWorks workspace that you want to delete.

    tenantId

    Long

    The ID of the tenant to which the workspace that you want to delete belongs.

    eventCode

    String

    The event code of the extension point event.

  • Sample code of the message body for a post-event for workspace deletion within a tenant:

    {
        
        "data": {
            "eventCode": "project-deleted",
            "tenantId": 605355236006144,
            "blockBusiness": false,
            "projectName": "test2",
            "projectId": 380708,
            "operator": "1493189603770213",
            "timestamp": 1702260556896
       } 
    }

    The following table describes the fields in the preceding sample code.

    Field

    Type

    Description

    operator

    String

    The ID of the user who deletes the DataWorks workspace.

    projectId

    Long

    The ID of the DataWorks workspace that you want to delete.

    projectName

    String

    The name of the DataWorks workspace that you want to delete.

    tenantId

    Long

    The ID of the tenant to which the workspace that you want to delete belongs.

    timestamp

    Long

    The timestamp when the message was sent.

    eventCode

    String

    The event code of the extension point event.

Events of Upload and Download

Events

Event category

Event

Regular event

Extension point event

Event type in EventBridge

Event code in Extensions

Data download and upload

Download data (pre-event) (file generation)

image

image

dataworks:ResourcesDownload:DownloadResources

download-resources

Download data (pre-event) (file download)

image

image

dataworks:ResourcesDownload:DownloadResourcesExecute

download-resources-execute

Upload data (pre-event)

image

image

dataworks:ResourcesUpload:UploadDataToTable

upload-data-to-table

Message formats

Message body for a data download and upload event

  • Sample code of the message body for a pre-event for data download (file generation):

    { 
        "data": {
            "eventCode": "download-resources",
            "moduleType": "sqlx_query",
            "operatorBaseId": "123936573******",
            "operatorUid": "14931896037*******",
            "fileName": "File name.csv",
            "fileSize": 10241024,
            "datasourceId": "1111",
            "datasourceName": "odps_first",
            "queryDwProjectId": "22222",
            "queryDwProjectName": "test_project",
            "dataRowSize": "123456",
            "sqlText": "select sku_code, sku_name from dim_sku",
        }

    The following table describes the fields in the preceding sample code.

    Field

    Type

    Description

    moduleType

    String

    Source of data that you can download:

    • entity_transfer: indicates that you download data from the Transfer log tab. To go to this tab, click Security policy in the top navigation bar of Security Center. In the left-side navigation pane, click Entity transfer. On the Entity transfer page, click the Transfer log tab.

    • develop_query: indicates that you download data from the DataStudio page. You can execute SQL statements on the DataStudio page to query and download data.

    • sqlx_query: indicates that you download data from the SQL Query page. You can execute SQL statements on the SQL Query page of DataAnalysis to query and download data.

    • dw_excel: indicates that you download data from the Spreadsheet page of DataAnalysis.

    operatorBaseId

    String

    The base ID of the user who downloads data.

    operatorUid

    String

    The UID of the user who downloads data.

    fileName

    String

    The name of the downloaded file.

    fileSize

    Long

    The size of the downloaded file.

    datasourceId

    String

    The ID of the data source to which the downloaded data belongs.

    datasourceName

    String

    The name of the data source to which the downloaded data belongs.

    queryDwProjectId

    String

    The ID of the DataWorks workspace to which the downloaded data belongs.

    queryDwProjectName

    String

    The name of the DataWorks workspace to which the downloaded data belongs.

    dataRowSize

    Long

    The number of downloaded data records.

    sqlText

    String

    The SQL statement that is used to query and download data.

    eventCode

    String

    The event code of the extension point event.

  • Sample code of the message body for a pre-event for data download (file download):

    {
      "datacontenttype": "application/json;charset=utf-8",
      "aliyunaccountid": "1493189603770213",
      "aliyunpublishtime": "2023-12-11T02:10:00.194Z",
      "data": {
        "eventCode": "download-resources-execute",
        "moduleType": "sqlx_query",
        "operatorBaseId": "123936573******",
        "operatorUid": "14931896037*******",
        "fileName": "File name.csv",
        "fileSize": 10241024,
        "datasourceId": "1111",
        "datasourceName": "odps_first",
        "queryDwProjectId": "22222",
        "queryDwProjectName": "test_project",
        "dataRowSize": "123456",
        "sqlText": "select sku_code, sku_name from dim_sku",
        "ip": "198.10.X.X"
      },
      "aliyunoriginalaccountid": "149318960******",
      "specversion": "1.0",
      "aliyuneventbusname": "default",
      "id": "2c3e41e5-3486-40ce-87d4-910f989cf2a7",
      "source": "acs.dataworks",
      "time": "2023-12-11T10:10:00.117Z",
      "aliyunregionid": "cn-shanghai",
      "type": "dataworks:ResourcesDownload:DownloadResourcesExecute"
    }

    The following table describes the fields in the preceding sample code.

    Field

    Type

    Description

    moduleType

    String

    Source of data that you can download:

    • entity_transfer: indicates that you download data from the Transfer log tab. To go to this tab, click Security policy in the top navigation bar of Security Center. In the left-side navigation pane, click Entity transfer. On the Entity transfer page, click the Transfer log tab.

    • develop_query: indicates that you download data from the DataStudio page. You can execute SQL statements on the DataStudio page to query and download data.

    • sqlx_query: indicates that you download data from the SQL Query page. You can execute SQL statements on the SQL Query page of DataAnalysis to query and download data.

    • dw_excel: indicates that you download data from the Spreadsheet page of DataAnalysis.

    operatorBaseId

    String

    The base ID of the user who downloads data.

    operatorUid

    String

    The UID of the user who downloads data.

    fileName

    String

    The name of the downloaded file.

    fileSize

    Long

    The size of the downloaded file.

    datasourceId

    String

    The ID of the data source to which the downloaded data belongs.

    datasourceName

    String

    The name of the data source to which the downloaded data belongs.

    queryDwProjectId

    String

    The ID of the DataWorks workspace to which the downloaded data belongs.

    queryDwProjectName

    String

    The name of the DataWorks workspace to which the downloaded data belongs.

    dataRowSize

    Long

    The number of downloaded data records.

    sqlText

    String

    The SQL statement that is used to query and download data.

    ip

    String

    The IP address of the device used by the user who downloads data.

    eventCode

    String

    The event code of the extension point event.

  • Sample code of the message body for a pre-event for data upload:

    {
      "datacontenttype": "application/json;charset=utf-8",
      "aliyunaccountid": "1493189603770213",
      "aliyunpublishtime": "2023-12-11T02:10:00.194Z",
      "data": {
        "eventCode": "upload-data-to-table",
        "uploadSourceType": "LOCAL",
        "optTableType": "CREATE",
        "targetEngineType": "MAXCOMPUTE",
        "writeType": "OVERWRITE",
        "conflictMode": "IGNORE",
        "operatorBaseId": "12312*****",
        "operatorUid": "1222222*****",
        "datasourceId": "1111",
        "datasourceName": "odps_first",
        "tableGuid": "odps.mc_project.test_table",
        "queryDwProjectId": "22222",
        "queryDwProjectName": "test_project",
        "fileSize": 123456
      },
      "aliyunoriginalaccountid": "149318960******",
      "specversion": "1.0",
      "aliyuneventbusname": "default",
      "id": "2c3e41e5-3486-40ce-87d4-910f989cf2a7",
      "source": "acs.dataworks",
      "time": "2023-12-11T10:10:00.117Z",
      "aliyunregionid": "cn-shanghai",
      "type": "dataworks:ResourcesUpload:UploadDataToTable"
    }

    The following table describes the fields in the preceding sample code.

    Field

    Type

    Description

    uploadSourceType

    String

    Source of data that you can upload:

    • LOCAL: uploads on-premises files.

    • OSS: uploads Object Storage Service (OSS) objects.

    • DW_EXCEL: uploads data from the Spreadsheet page of DataAnalysis.

    • HTTP: uploads HTTP files.

    optTableType

    String

    Upload data to an existing table or a new table of the specified compute engine or data source. Valid values:

    • CREATE: uploads data to a new table.

    • IMPORT: uploads data to an existing table.

    targetEngineType

    String

    The type of compute engine to which you want to upload data. Valid values:

    • MaxCompute

    • EMR Hive

    • Hologres

    writeType

    String

    The mode in which data is written to the destination table. Valid values:

    • OVERWRITE: overwrites data in the destination table.

    • APPEND: appends the uploaded data to the destination table.

    conflictMode

    String

    The policy to handle a primary key conflict that occurs when you write the uploaded data to the destination table. Valid values:

    • IGNORE: If a primary key conflict occurs, ignore the uploaded data.

    • REPLACE: If a primary key conflict occurs, delete the row that contains the conflicting data and then insert the uploaded data into the row. Fields that are not specified by the uploaded data are written as NULL.

    • UPDATE: The uploaded data overwrites data in the destination table. Only data of the fields specified by the uploaded data is overwritten. The data of unspecified fields in the destination table remains unchanged.

    operatorBaseId

    String

    The base ID of the user who uploads data.

    operatorUid

    String

    The UID of the user who uploads data.

    datasourceId

    String

    The ID of the data source to which you want to upload data.

    datasourceName

    String

    The name of the data source to which you want to upload data.

    tableGuid

    String

    The GUID of the table. Examples:

    • MaxCompute table: odps.maxcomputeProject.tableName

    • EMR Hive table: emr_hive.emr cluster id.schema.tableName

    • Hologres table: holo.ID of the Hologres instance.database

    queryDwProjectId

    String

    The ID of the DataWorks workspace to which the table belongs.

    queryDwProjectName

    String

    The name of the DataWorks workspace to which the table belongs.

    fileSize

    Long

    The size of the file to be uploaded. Unit: bytes.

    eventCode

    String

    The event code of the extension point event.

Appendix: Message formats

Formats of event messages sent to EventBridge

After you configure an event distribution channel in OpenEvent, event messages sent to EventBridge can be filtered based on the value of the Type field when workspace-level or tenant-level events are triggered in DataWorks. Sample format of an event message sent to EventBridge:

{ 
 "datacontenttype": "application/json;charset=utf-8",//// The content format of data. datacontenttype supports only application/json. 
  "data": {
 // The message content varies based on the message type. The following two fields are fixed in each message. For information about the message content of each type of event, see the preceding information. 
 "tenantId": 28378****10656,// The tenant ID. Each Alibaba Cloud account in DataWorks corresponds to a tenant. Each tenant has its own tenant ID. To view the tenant ID, click the current account in the upper-right corner of the DataStudio page. In the panel that appears, click User Info in the Menu section. You can view the tenant ID in the User Info message. 
 "eventCode": "xxxx"//
  },
  "id": "539fd8f4-4ea1-4625-aa8b-6c906674****",// The event ID. The ID is the unique identifier of an event. 
  "source": "acs.dataworks",// The event source. In this example, the event is pushed by DataWorks. 
  "specversion": "1.0",
  "subject": "",
  "time": "2020-11-19T21:04:41+08:00",// The event generation time. 
  "type": "dataworks:InstanceStatusChanges:InstanceStatusChanges",// The event type. The Type field is used in the EventBridge console to filter all event messages pushed by DataWorks. Each event has a different event type value. You can refer to the preceding information to obtain the event type. 
  "aliyunaccountid": "123456789098****",// The ID of the Alibaba Cloud account.
  "aliyunpublishtime": "2020-11-19T21:04:42.179PRC",// The time when EventBridge receives an event. 
  "aliyuneventbusname": "default",// The name of the EventBridge event bus used to receive DataWorks event messages. 
  "aliyunregionid": "cn-hangzhou",// The region where events are received. 
  "aliyunpublishaddr": "172.25.XX.XX"
}

A complete event message contains information such as the body, ID, source, and generation time of the event message. The following table describes the key fields in the preceding sample code.

Field

Type

Description

data

object

The body of the event message. The structure of a message body and the fields contained in a message body vary based on the type of the event. For more information, see the following sections in this topic:

Message formats of events in DataStudio:

Message formats of events in Operation Center:

Message formats of events in Security Center:

Message formats of events in Data Quality:

id

String

The unique ID of the event message. You can identify an event message based on the ID of the event message.

type

String

The type of the event. This field is used to describe the event type of the event source. Sample values:

  • dataworks:FileChange:CommitFile: a file committing event.

  • dataworks:FileChange:DeployFile: a file deployment event.

The Type field is used in the EventBridge console to filter all event messages pushed by DataWorks. Each event has a different event type value. You can refer to the preceding information to obtain the event type.

Formats of event messages sent to Function Compute

If you develop and deploy an extension in DataWorks based on Function Compute, the related event message is sent to Function Compute as JSON data when an extension point event that is specified in the extension is triggered. Sample format of an event message sent to Function Compute:

{
	"blockBusiness": true,
	"eventCategoryType": "resources-download",// The event category.
	"eventType": "upload-data-to-table",// The event type.
	"extensionBizId": "job_6603643923728775070",
	"messageBody": {
             // The message content varies based on the message type. The following two fields are fixed in each message. For information about the message content of each type of event, see the preceding information. 
             "tenantId": 28378****10656,// The tenant ID. Each Alibaba Cloud account in DataWorks corresponds to a tenant. Each tenant has its own tenant ID. To view the tenant ID, click the current account in the upper-right corner of the DataStudio page. In the panel that appears, click User Info in the Menu section. You can view the tenant ID in the User Info message. 
             "eventCode": "xxxx"//
	},
	"messageId": "52d44ee7-b51f-4d4d-afeb-*******"// The event ID. The ID is the unique identifier of an event. 
}

The following table describes the fields in the preceding sample code.

Field

Type

Description

messageId

String

The ID of the event. The ID is the unique identifier of an event.

messageBody

The specific event message pushed by DataWorks. This field is used when an extension is developed. The field value varies based on the message type.

tenantId

The ID of the tenant. Each Alibaba Cloud account in DataWorks corresponds to a tenant. Each tenant has its own tenant ID. To view the tenant ID, click the current account in the upper-right corner of the DataStudio page. In the panel that appears, click User Info in the Menu section. You can view the tenant ID in the User Info message.

eventCode

The event code. It is used to identify a type of event message. For information about the event code for each event type, see the Event code in Extensions column in each Events table in Development reference: Event lists and event message formats.