diff --git a/metadata-io/src/main/java/com/linkedin/metadata/entity/EntityService.java b/metadata-io/src/main/java/com/linkedin/metadata/entity/EntityService.java index a304de798f..c71b8a0b48 100644 --- a/metadata-io/src/main/java/com/linkedin/metadata/entity/EntityService.java +++ b/metadata-io/src/main/java/com/linkedin/metadata/entity/EntityService.java @@ -442,10 +442,14 @@ public abstract class EntityService { produceMCLTimer.stop(); // For legacy reasons, keep producing to the MAE event stream without blocking ingest - Timer.Context produceMAETimer = MetricUtils.timer(this.getClass(), "produceMAE").time(); - produceMetadataAuditEvent(urn, aspectName, oldValue, updatedValue, result.getOldSystemMetadata(), - result.getNewSystemMetadata(), MetadataAuditOperation.UPDATE); - produceMAETimer.stop(); + try { + Timer.Context produceMAETimer = MetricUtils.timer(this.getClass(), "produceMAE").time(); + produceMetadataAuditEvent(urn, aspectName, oldValue, updatedValue, result.getOldSystemMetadata(), + result.getNewSystemMetadata(), MetadataAuditOperation.UPDATE); + produceMAETimer.stop(); + } catch (Exception e) { + log.warn("Unable to produce legacy MAE, entity may not have legacy Snapshot schema.", e); + } } else { log.debug("Skipped producing MetadataAuditEvent for ingested aspect {}, urn {}. Aspect has not changed.", aspectName, urn); diff --git a/metadata-service/factories/src/main/java/com/linkedin/gms/factory/telemetry/TelemetryUtils.java b/metadata-service/factories/src/main/java/com/linkedin/gms/factory/telemetry/TelemetryUtils.java index 2700fff50e..78be0a4ae7 100644 --- a/metadata-service/factories/src/main/java/com/linkedin/gms/factory/telemetry/TelemetryUtils.java +++ b/metadata-service/factories/src/main/java/com/linkedin/gms/factory/telemetry/TelemetryUtils.java @@ -15,7 +15,7 @@ import lombok.extern.slf4j.Slf4j; public final class TelemetryUtils { public static final String CLIENT_ID_URN = "urn:li:telemetry:clientId"; - public static final String CLIENT_ID_ASPECT = "clientId"; + public static final String CLIENT_ID_ASPECT = "telemetryClientId"; private static String _clientId; diff --git a/smoke-test/smoke.sh b/smoke-test/smoke.sh index d9722e16cc..379d7465af 100755 --- a/smoke-test/smoke.sh +++ b/smoke-test/smoke.sh @@ -20,7 +20,7 @@ pip install --upgrade pip wheel setuptools pip install -r requirements.txt echo "DATAHUB_VERSION = $DATAHUB_VERSION" -datahub docker quickstart --quickstart-compose-file ../docker/quickstart/docker-compose-without-neo4j.quickstart.yml --dump-logs-on-failure +DATAHUB_TELEMETRY_ENABLED=false datahub docker quickstart --quickstart-compose-file ../docker/quickstart/docker-compose-without-neo4j.quickstart.yml --dump-logs-on-failure (cd tests/cypress ; yarn install) diff --git a/smoke-test/tests/telemetry/__init__.py b/smoke-test/tests/telemetry/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/smoke-test/tests/telemetry/telemetry_test.py b/smoke-test/tests/telemetry/telemetry_test.py new file mode 100644 index 0000000000..3672abcda9 --- /dev/null +++ b/smoke-test/tests/telemetry/telemetry_test.py @@ -0,0 +1,11 @@ +import json + +from datahub.cli.cli_utils import get_aspects_for_entity + + +def test_no_clientID(): + client_id_urn = "urn:li:telemetry:clientId" + aspect = ["telemetryClientId"] + + res_data = json.dumps(get_aspects_for_entity(entity_urn=client_id_urn, aspects=aspect, typed=False)) + assert res_data == "{}"