forked from repo-mirrors/dbt-core
Replace tracking events: project_id, adapter_info (#7231)
This commit is contained in:
6
.changes/unreleased/Fixes-20230327-193850.yaml
Normal file
6
.changes/unreleased/Fixes-20230327-193850.yaml
Normal file
@@ -0,0 +1,6 @@
|
||||
kind: Fixes
|
||||
body: Recreates missing tracking events
|
||||
time: 2023-03-27T19:38:50.657292-05:00
|
||||
custom:
|
||||
Author: iknox-fa
|
||||
Issue: 6097 6098
|
||||
@@ -77,6 +77,30 @@ class BaseTask(metaclass=ABCMeta):
|
||||
self.config = config
|
||||
self.project = config if isinstance(config, Project) else project
|
||||
|
||||
if dbt.tracking.active_user is not None:
|
||||
|
||||
# N.B. The none checking below is largely due to incomplete projects used in the testing
|
||||
# and to support tasks that don't require a complete project or a complete config (debug, init).
|
||||
project_id = None if self.project is None else self.project.hashed_name()
|
||||
adapter_type = (
|
||||
getattr(self.config.credentials, "type", None)
|
||||
if hasattr(self.config, "credentials")
|
||||
else None
|
||||
)
|
||||
adapter_unique_id = (
|
||||
self.config.credentials.hashed_unique_field()
|
||||
if hasattr(self.config, "credentials")
|
||||
else None
|
||||
)
|
||||
|
||||
dbt.tracking.track_project_id({"project_id": project_id})
|
||||
dbt.tracking.track_adapter_info(
|
||||
{
|
||||
"adapter_type": adapter_type,
|
||||
"adapter_unique_id": adapter_unique_id,
|
||||
}
|
||||
)
|
||||
|
||||
@classmethod
|
||||
def pre_init_hook(cls, args):
|
||||
"""A hook called before the task is initialized."""
|
||||
|
||||
@@ -30,21 +30,23 @@ sp_logger.setLevel(100)
|
||||
|
||||
COLLECTOR_URL = "fishtownanalytics.sinter-collect.com"
|
||||
COLLECTOR_PROTOCOL = "https"
|
||||
|
||||
INVOCATION_SPEC = "iglu:com.dbt/invocation/jsonschema/1-0-2"
|
||||
PLATFORM_SPEC = "iglu:com.dbt/platform/jsonschema/1-0-0"
|
||||
RUN_MODEL_SPEC = "iglu:com.dbt/run_model/jsonschema/1-0-2"
|
||||
INVOCATION_ENV_SPEC = "iglu:com.dbt/invocation_env/jsonschema/1-0-0"
|
||||
PACKAGE_INSTALL_SPEC = "iglu:com.dbt/package_install/jsonschema/1-0-0"
|
||||
RPC_REQUEST_SPEC = "iglu:com.dbt/rpc_request/jsonschema/1-0-1"
|
||||
DEPRECATION_WARN_SPEC = "iglu:com.dbt/deprecation_warn/jsonschema/1-0-0"
|
||||
LOAD_ALL_TIMING_SPEC = "iglu:com.dbt/load_all_timing/jsonschema/1-0-3"
|
||||
RESOURCE_COUNTS = "iglu:com.dbt/resource_counts/jsonschema/1-0-0"
|
||||
EXPERIMENTAL_PARSER = "iglu:com.dbt/experimental_parser/jsonschema/1-0-0"
|
||||
PARTIAL_PARSER = "iglu:com.dbt/partial_parser/jsonschema/1-0-1"
|
||||
RUNNABLE_TIMING = "iglu:com.dbt/runnable/jsonschema/1-0-0"
|
||||
DBT_INVOCATION_ENV = "DBT_INVOCATION_ENV"
|
||||
|
||||
ADAPTER_INFO_SPEC = "iglu:com.dbt/adapter_info/jsonschema/1-0-1"
|
||||
DEPRECATION_WARN_SPEC = "iglu:com.dbt/deprecation_warn/jsonschema/1-0-0"
|
||||
EXPERIMENTAL_PARSER = "iglu:com.dbt/experimental_parser/jsonschema/1-0-0"
|
||||
INVOCATION_ENV_SPEC = "iglu:com.dbt/invocation_env/jsonschema/1-0-0"
|
||||
INVOCATION_SPEC = "iglu:com.dbt/invocation/jsonschema/1-0-2"
|
||||
LOAD_ALL_TIMING_SPEC = "iglu:com.dbt/load_all_timing/jsonschema/1-0-3"
|
||||
PACKAGE_INSTALL_SPEC = "iglu:com.dbt/package_install/jsonschema/1-0-0"
|
||||
PARTIAL_PARSER = "iglu:com.dbt/partial_parser/jsonschema/1-0-1"
|
||||
PLATFORM_SPEC = "iglu:com.dbt/platform/jsonschema/1-0-0"
|
||||
PROJECT_ID_SPEC = "iglu:com.dbt/project_id/jsonschema/1-0-1"
|
||||
RESOURCE_COUNTS = "iglu:com.dbt/resource_counts/jsonschema/1-0-0"
|
||||
RPC_REQUEST_SPEC = "iglu:com.dbt/rpc_request/jsonschema/1-0-1"
|
||||
RUNNABLE_TIMING = "iglu:com.dbt/runnable/jsonschema/1-0-0"
|
||||
RUN_MODEL_SPEC = "iglu:com.dbt/run_model/jsonschema/1-0-2"
|
||||
|
||||
|
||||
class TimeoutEmitter(Emitter):
|
||||
def __init__(self):
|
||||
@@ -210,6 +212,32 @@ def track(user, *args, **kwargs):
|
||||
fire_event(SendEventFailure())
|
||||
|
||||
|
||||
def track_project_id(options):
|
||||
assert active_user is not None, "Cannot track project_id when active user is None"
|
||||
context = [SelfDescribingJson(PROJECT_ID_SPEC, options)]
|
||||
|
||||
track(
|
||||
active_user,
|
||||
category="dbt",
|
||||
action="project_id",
|
||||
label=get_invocation_id(),
|
||||
context=context,
|
||||
)
|
||||
|
||||
|
||||
def track_adapter_info(options):
|
||||
assert active_user is not None, "Cannot track adapter_info when active user is None"
|
||||
context = [SelfDescribingJson(ADAPTER_INFO_SPEC, options)]
|
||||
|
||||
track(
|
||||
active_user,
|
||||
category="dbt",
|
||||
action="adapter_info",
|
||||
label=get_invocation_id(),
|
||||
context=context,
|
||||
)
|
||||
|
||||
|
||||
def track_invocation_start(invocation_context):
|
||||
data = {"progress": "start", "result_type": None, "result": None}
|
||||
data.update(invocation_context)
|
||||
|
||||
3
events/README.md
Normal file
3
events/README.md
Normal file
@@ -0,0 +1,3 @@
|
||||
The events outlined here exist to support "very very old versions of dbt-core, which expected to look directly at the HEAD branch of this github repo to find validation schemas".
|
||||
|
||||
Eventually these should go away (see https://github.com/dbt-labs/dbt-core/issues/7228)
|
||||
Reference in New Issue
Block a user