Get desktop application:
View/edit binary Protocol Buffers messages
Adapter Info Event is responsible for foundational adapter information.
This field is a toggle to enable enrichment of the message by the Vortex service.
event_id is the unique identifier for this event. It is a generated UUID.
A foreign key to the Invocation message that was emitted at the start of the fusion process. Required.
adapter_type is the plain string name for the dbt adapter that's used by the project. Examples could include: "bigquery", "snowflake", "redshift", "postgres", etc.
adapter_unique_id is the unique identifier of a project's warehouse credentials. For supported warehouses, we create an MD5 hash of the connection string. The specific string varies per adapter_type.
Adapter Info V2 Event was created when we needed to collect more information about the adapter. Unlike AdapterInfo above, this event is tied to RunModel events. Here we're able to collect adapter-specific information at the individual model level. This was first created when we started to collect information on which models were Iceberg-powered.
This field is a toggle to enable enrichment of the message by the Vortex service.
event_id is the unique identifier for this event. It is a generated UUID.
A foreign key to the RunModel message that was emitted at each instance of an individual model being run.
This reflects the adapter name used when they ran a given model.
This reflects the simplified semantic version of an adapter that was used when they ran a given model. ex. 1.9.0
This reflects the full adapter version used when they ran a given model.
This is a flexible key-value pair that can be used to store any additional model adapter information. Today this is used to store two pieces of information: the model_adapter_type (the adapter_name that was used for that specific model) and the model_adapter_table_format (Iceberg or something else).
Invocation Event is emitted by dbt when a user runs a command and begins to emit basic environment information out that can be referred to later on by other events that are emitted. This event then fires off a second time when the invocation has completed. Upon completion, we get more information about the end state of this action.
This field is a toggle to enable enrichment of the message by the Vortex service.
event_id is the unique identifier for this event. It is a generated UUID. Required.
This is the globally unique identifier for this invocation event. It is emitted once during the lifetime of the fusion process at the beginning and referred to by other messages using this ID. Required.
project_id is the MD5 hash of the project name that's supplied in the dbt_project.yml file. This is originally the primary identifier for our anonymous usage tracking. Today we couple this with the AdapterInfo adapter_unique_id.
user_id is the UUID generated to identify a unique user. We store a cookie or token in the user's local directory which we use to maintain user information across sessions. This is usually found in ~/.dbt/.user.yml.
The full string of the command that was run.
A string that indicates whether the event represents the start or end of an invocation. The valid values for this are: start end invalid ok
The version of dbt that was used to run this command.
The exit state of an invocation's start or end event. The valid values for this are: started ok invalid_profile error
The SHA of the git commit of the dbt project being run if it is found. If there are changes that aren't committed we may also want to have a git_commit_dirty boolean to indicate there are some staged or unstaged changes. In the RunModel message there is also a hashed_contents which gives a hash of the model being run which may be finer granularity than at a project level.
The distribution of dbt that was used to run this command.
Invocation Environment Event is the primary way we are able to associate invocation telemetry data with our dbt Cloud information. Values are supplied here whenever dbt is run in a cloud environment.
This field is a toggle to enable enrichment of the message by the Vortex service.
event_id is the unique identifier for this event. It is a generated UUID.
A foreign key to the Invocation message that was emitted at the start of the fusion process.
This is a string that indicates the environment in which the invocation is running. Our primary use case here is to pass along dbt Cloud context with the invocation event so we can associate the invocation with a specific dbt Cloud activity and account. Different cloud services have used different string formats and IDs provided.
Login Event is emitted when the user runs `dbt login`. It captures whether the attempt succeeded and, when possible, identity context derived from the JWT or the local user cookie.
This field is a toggle to enable enrichment of the message by the Vortex service.
Unique identifier for this event (UUID). Required.
Globally unique identifier for the fusion invocation. Required.
Whether the login attempt succeeded.
Which OAuth flow completed the login. LOGIN_TYPE_UNSPECIFIED on failure.
User cookie UUID from ~/.dbt/.user.yml.
MD5 hash of the project name from dbt_project.yml. Absent if run outside a dbt project.
Platform user ID from the "sub" JWT claim. Absent if no JWT is available.
Platform tenant account ID from the "https://dbt.com/account_id" JWT claim. Absent if no JWT is available.
Platform account identifier from the "https://dbt.com/account_identifier" JWT claim. Absent if no JWT is available or the claim is absent.
Used in:
This field is a toggle to enable enrichment of the message by the Vortex service.
Unique identifier for this event (UUID). Required.
Globally unique identifier for the fusion invocation. Required.
Onboarding semantics.
Which screen/step
What happened on that screen
Only for RUN_FINISHED/STEP_COMPLETED; ignored otherwise
user_id is the UUID generated to identify a unique user. We store a cookie or token in the user's local directory which we use to maintain user information across sessions. This is usually found in ~/.dbt/.user.yml.
Used in:
flow start (WELCOME)
screen displayed
parse/compile began
parse/compile ended (use success)
checkpoint reached (use success)
explicit failure
Used in:
Package Install Event is emitted when dbt deps (or other commands that trigger packages to be installed) is run.
This field is a toggle to enable enrichment of the message by the Vortex service.
event_id is the unique identifier for this event. It is a generated UUID.
A foreign key to the Invocation message that was emitted at the start of the fusion process.
plain string name of a pakage that was installed. This is often the same or similar to the git repository name of that package.
plain string source of the package. This is also referred to as the installation method in our internal analytics. This is based on the syntax used in packages.yml file.
either a semantic version of the package (if installed through the hub) or a git commit hash (if installed through git).
Resource Counts Events fire after an invocation event to give a count of all the resources that were used in the invocation. Note that this includes all the resources in the active project, including those from installed packages and (in the case of macros) from the global dbt project. This will show all resources available, regardless of if they are run or not.
This field is a toggle to enable enrichment of the message by the Vortex service.
event_id is the unique identifier for this event. It is a generated UUID.
A foreign key to the Invocation message that was emitted at the start of the fusion process.
total count of models in the project.
total count of data tests (originally just tests) in the project.
total count of snapshots in the project.
total count of analysis queries in the project.
total count of macros in the project.
total count of operations in the project.
total count of seeds in the project.
total count of sources in the project.
total count of exposures in the project.
total count of metrics in the project.
total count of groups in the project.
total count of unit tests in the project.
total count of semantic models in the project.
total count of saved queries in the project.
total count of catalogs in the project.
Run Model Event will be emitted when Fusion runs a model or skips a model because it determines it does not need to be run. The Account Identifier and Project Identifier can be found by joining this message on the Invocation message specified in the invocation_id field.
This field is a toggle to enable enrichment of the message by the Vortex service.
event_id is the unique identifier for this event. It is a generated UUID.
A foreign key to the Invocation message that was emitted at the start of the fusion process.
the numerical index of that model with respect to the total models being run
the total number of models being run in this invocation
the time it took for a model to execute in seconds. This should mirror what is displayed in the dbt output logs next to each model.
success or failure status of that model's run. This mirrors what is displayed in the dbt output logs next to each model. Ex. "SUCCESS 1", "INSERT 1", "INSERT 23", etc.
whether or not the model was skipped. If the run was skipped the reason it was skipped is indicated by the value of the run_skipped_reason field.
the materialization strategy used for that model
the incremental strategy used for that model (ex. append, merge, etc.)
unique identifier for the model (I believe an MD5 hash of the model name)
MD5 hash of the model's contents. This is used to determine if the model has changed since the last time it was run.
the language used to write the model (ex. sql, python)
whether or not the model is in a group
whether or not the model is contract enforced
the access level of the model (ex. public, private, etc.)
whether or not the model is versioned
A reason for why the model was skipped. The valid values for this are: cost_avoidance upstream_failed
A globally unique ID that is emitted at each instance of an individual model being run.
The resource type of the node (model, test, etc.)
the table format used for the model (ex. "default", "iceberg") empty string when not applicable (non-model nodes)
the catalog name from catalogs.yml, if the model opted into a write integration. empty string when the model does not use catalogs.yml.
the catalog type of the model's active write integration in catalogs.yml (ex. "iceberg_rest", "unity", "glue", "built_in", "biglake_metastore"). this is the catalog backend kind, distinct from catalog_name (the user-chosen catalog label). empty string when the model does not use catalogs.yml.