From d27ee19dbc89255a2c00c61922eca731c1d94172 Mon Sep 17 00:00:00 2001 From: Roja Reddy Sareddy Date: Mon, 22 Dec 2025 23:20:57 -0800 Subject: [PATCH 1/2] fix: Update telmetry constants to include MLOPS as well --- sagemaker-core/src/sagemaker/core/experiments/experiment.py | 3 +++ sagemaker-core/src/sagemaker/core/telemetry/constants.py | 1 + .../src/sagemaker/core/telemetry/telemetry_logging.py | 1 + sagemaker-mlops/src/sagemaker/mlops/workflow/pipeline.py | 4 ++++ 4 files changed, 9 insertions(+) diff --git a/sagemaker-core/src/sagemaker/core/experiments/experiment.py b/sagemaker-core/src/sagemaker/core/experiments/experiment.py index e0cf35599e..f555c44642 100644 --- a/sagemaker-core/src/sagemaker/core/experiments/experiment.py +++ b/sagemaker-core/src/sagemaker/core/experiments/experiment.py @@ -21,6 +21,8 @@ from sagemaker.core.experiments.trial import _Trial from sagemaker.core.experiments.trial_component import _TrialComponent from sagemaker.core.common_utils import format_tags +from sagemaker.core.telemetry.telemetry_logging import _telemetry_emitter +from sagemaker.core.telemetry.constants import Feature class Experiment(_base_types.Record): @@ -93,6 +95,7 @@ def load(cls, experiment_name, sagemaker_session=None): ) @classmethod + @_telemetry_emitter(feature=Feature.MLOPS, func_name="experiment.create") def create( cls, experiment_name, diff --git a/sagemaker-core/src/sagemaker/core/telemetry/constants.py b/sagemaker-core/src/sagemaker/core/telemetry/constants.py index 20f05706f2..997948dc83 100644 --- a/sagemaker-core/src/sagemaker/core/telemetry/constants.py +++ b/sagemaker-core/src/sagemaker/core/telemetry/constants.py @@ -30,6 +30,7 @@ class Feature(Enum): HYPERPOD = 6 # Added to support telemetry in sagemaker-hyperpod-cli HYPERPOD_CLI = 7 # Added to support telemetry in sagemaker-hyperpod-cli MODEL_CUSTOMIZATION = 8 + MLOPS = 9 def __str__(self): # pylint: disable=E0307 """Return the feature name.""" diff --git a/sagemaker-core/src/sagemaker/core/telemetry/telemetry_logging.py b/sagemaker-core/src/sagemaker/core/telemetry/telemetry_logging.py index 65d3a83900..deecad3d9d 100644 --- a/sagemaker-core/src/sagemaker/core/telemetry/telemetry_logging.py +++ b/sagemaker-core/src/sagemaker/core/telemetry/telemetry_logging.py @@ -55,6 +55,7 @@ str(Feature.REMOTE_FUNCTION): 3, str(Feature.MODEL_TRAINER): 4, str(Feature.MODEL_CUSTOMIZATION): 8, + str(Feature.MLOPS): 8, } STATUS_TO_CODE = { diff --git a/sagemaker-mlops/src/sagemaker/mlops/workflow/pipeline.py b/sagemaker-mlops/src/sagemaker/mlops/workflow/pipeline.py index 144726f690..3a389344ca 100644 --- a/sagemaker-mlops/src/sagemaker/mlops/workflow/pipeline.py +++ b/sagemaker-mlops/src/sagemaker/mlops/workflow/pipeline.py @@ -69,6 +69,8 @@ ) from sagemaker.core.workflow.utilities import list_to_request from sagemaker.mlops.workflow._steps_compiler import StepsCompiler +from sagemaker.core.telemetry.telemetry_logging import _telemetry_emitter +from sagemaker.core.telemetry.constants import Feature logger = logging.getLogger(__name__) @@ -139,6 +141,7 @@ def latest_pipeline_version_id(self): else: return summaries[0].get("PipelineVersionId") + @_telemetry_emitter(feature=Feature.MLOPS, func_name="pipeline.create") def create( self, role_arn: str = None, @@ -348,6 +351,7 @@ def delete(self) -> Dict[str, Any]: ) return self.sagemaker_session.sagemaker_client.delete_pipeline(PipelineName=self.name) + @_telemetry_emitter(feature=Feature.MLOPS, func_name="pipeline.start") def start( self, parameters: Dict[str, Union[str, bool, int, float]] = None, From bd32fc2e3db36943e6fa4e74cabd26d9efd2ea71 Mon Sep 17 00:00:00 2001 From: Roja Reddy Sareddy Date: Tue, 23 Dec 2025 11:45:41 -0800 Subject: [PATCH 2/2] fix: Update telmetry constants to include MLOPS as well --- .../src/sagemaker/core/telemetry/constants.py | 15 ++++++--------- .../sagemaker/core/telemetry/telemetry_logging.py | 12 ++++++------ 2 files changed, 12 insertions(+), 15 deletions(-) diff --git a/sagemaker-core/src/sagemaker/core/telemetry/constants.py b/sagemaker-core/src/sagemaker/core/telemetry/constants.py index 997948dc83..5f6b6ff607 100644 --- a/sagemaker-core/src/sagemaker/core/telemetry/constants.py +++ b/sagemaker-core/src/sagemaker/core/telemetry/constants.py @@ -22,15 +22,12 @@ class Feature(Enum): """Enumeration of feature names used in telemetry.""" - SDK_DEFAULTS = 1 - LOCAL_MODE = 2 - REMOTE_FUNCTION = 3 - MODEL_TRAINER = 4 - ESTIMATOR = 5 - HYPERPOD = 6 # Added to support telemetry in sagemaker-hyperpod-cli - HYPERPOD_CLI = 7 # Added to support telemetry in sagemaker-hyperpod-cli - MODEL_CUSTOMIZATION = 8 - MLOPS = 9 + SDK_DEFAULTS = 11 + LOCAL_MODE = 12 + REMOTE_FUNCTION = 13 + MODEL_TRAINER = 14 + MODEL_CUSTOMIZATION = 15 + MLOPS = 16 def __str__(self): # pylint: disable=E0307 """Return the feature name.""" diff --git a/sagemaker-core/src/sagemaker/core/telemetry/telemetry_logging.py b/sagemaker-core/src/sagemaker/core/telemetry/telemetry_logging.py index deecad3d9d..728c8c2d5b 100644 --- a/sagemaker-core/src/sagemaker/core/telemetry/telemetry_logging.py +++ b/sagemaker-core/src/sagemaker/core/telemetry/telemetry_logging.py @@ -50,12 +50,12 @@ ) FEATURE_TO_CODE = { - str(Feature.SDK_DEFAULTS): 1, - str(Feature.LOCAL_MODE): 2, - str(Feature.REMOTE_FUNCTION): 3, - str(Feature.MODEL_TRAINER): 4, - str(Feature.MODEL_CUSTOMIZATION): 8, - str(Feature.MLOPS): 8, + str(Feature.SDK_DEFAULTS): 11, + str(Feature.LOCAL_MODE): 12, + str(Feature.REMOTE_FUNCTION): 13, + str(Feature.MODEL_TRAINER): 14, + str(Feature.MODEL_CUSTOMIZATION): 15, + str(Feature.MLOPS): 16, } STATUS_TO_CODE = {