Skip to content

Commit dc07405

Browse files
author
Romik Amipara
committed
add telemetry for feature store
1 parent 2e37c82 commit dc07405

4 files changed

Lines changed: 18 additions & 1 deletion

File tree

src/sagemaker/feature_store/feature_group.py

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,8 @@
7171
TargetStoreEnum,
7272
)
7373
from sagemaker.utils import resolve_value_from_config, format_tags, Tags
74+
from sagemaker.telemetry.telemetry_logging import _telemetry_emitter
75+
from sagemaker.telemetry.constants import Feature
7476

7577
logger = logging.getLogger(__name__)
7678

@@ -672,6 +674,7 @@ class FeatureGroup:
672674
FeatureTypeEnum.STRING.value: "STRING",
673675
}
674676

677+
@_telemetry_emitter(feature=Feature.FEATURE_STORE_V2, func_name="feature_group.create")
675678
def create(
676679
self,
677680
s3_uri: Union[str, bool],
@@ -788,10 +791,12 @@ def create(
788791

789792
return self.sagemaker_session.create_feature_group(**create_feature_store_args)
790793

794+
@_telemetry_emitter(feature=Feature.FEATURE_STORE_V2, func_name="feature_group.delete")
791795
def delete(self):
792796
"""Delete a FeatureGroup."""
793797
self.sagemaker_session.delete_feature_group(feature_group_name=self.name)
794798

799+
@_telemetry_emitter(feature=Feature.FEATURE_STORE_V2, func_name="feature_group.describe")
795800
def describe(self, next_token: str = None) -> Dict[str, Any]:
796801
"""Describe a FeatureGroup.
797802
@@ -805,6 +810,7 @@ def describe(self, next_token: str = None) -> Dict[str, Any]:
805810
feature_group_name=self.name, next_token=next_token
806811
)
807812

813+
@_telemetry_emitter(feature=Feature.FEATURE_STORE_V2, func_name="feature_group.update")
808814
def update(
809815
self,
810816
feature_additions: Sequence[FeatureDefinition] = None,
@@ -842,7 +848,7 @@ def update(
842848
online_store_config=online_store_config_parameter,
843849
throughput_config=throughput_config_parameter,
844850
)
845-
851+
@_telemetry_emitter(feature=Feature.FEATURE_STORE_V2, func_name="feature_group.update_feature_metadata")
846852
def update_feature_metadata(
847853
self,
848854
feature_name: str,
@@ -871,6 +877,7 @@ def update_feature_metadata(
871877
parameter_removals=(parameter_removals or []),
872878
)
873879

880+
@_telemetry_emitter(feature=Feature.FEATURE_STORE_V2, func_name="feature_group.describe_feature_metadata")
874881
def describe_feature_metadata(self, feature_name: str) -> Dict[str, Any]:
875882
"""Describe feature metadata by feature name.
876883
@@ -1038,6 +1045,7 @@ def load_feature_definitions(
10381045
self.feature_definitions = feature_definitions
10391046
return self.feature_definitions
10401047

1048+
@_telemetry_emitter(feature=Feature.FEATURE_STORE_V2, func_name="feature_group.get_record")
10411049
def get_record(
10421050
self,
10431051
record_identifier_value_as_string: str,
@@ -1057,6 +1065,7 @@ def get_record(
10571065
feature_names=feature_names,
10581066
).get("Record")
10591067

1068+
@_telemetry_emitter(feature=Feature.FEATURE_STORE_V2, func_name="feature_group.put_record")
10601069
def put_record(
10611070
self,
10621071
record: Sequence[FeatureValue],
@@ -1080,6 +1089,7 @@ def put_record(
10801089
ttl_duration=ttl_duration.to_dict() if ttl_duration is not None else None,
10811090
)
10821091

1092+
@_telemetry_emitter(feature=Feature.FEATURE_STORE_V2, func_name="feature_group.delete_record")
10831093
def delete_record(
10841094
self,
10851095
record_identifier_value_as_string: str,

src/sagemaker/feature_store/feature_store.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@
3333
SortOrderEnum,
3434
Identifier,
3535
)
36+
from sagemaker.telemetry.telemetry_logging import _telemetry_emitter
37+
from sagemaker.telemetry.constants import Feature
3638

3739

3840
@attr.s
@@ -47,6 +49,7 @@ class FeatureStore:
4749

4850
sagemaker_session: Session = attr.ib(default=Session)
4951

52+
@_telemetry_emitter(feature=Feature.FEATURE_STORE_V2, func_name="feature_store.create_dataset")
5053
def create_dataset(
5154
self,
5255
base: Union[FeatureGroup, pd.DataFrame],
@@ -92,6 +95,7 @@ def create_dataset(
9295
kms_key_id,
9396
)
9497

98+
@_telemetry_emitter(feature=Feature.FEATURE_STORE_V2, func_name="feature_store.list_feature_groups")
9599
def list_feature_groups(
96100
self,
97101
name_contains: str = None,
@@ -137,6 +141,7 @@ def list_feature_groups(
137141
next_token=next_token,
138142
)
139143

144+
@_telemetry_emitter(feature=Feature.FEATURE_STORE_V2, func_name="feature_store.batch_get_record")
140145
def batch_get_record(
141146
self,
142147
identifiers: Sequence[Identifier],

src/sagemaker/telemetry/constants.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ class Feature(Enum):
3030
# Note: HyperPod CLI uses codes 6 and 7
3131
JUMPSTART_V2 = 8 # Added to support JumpStart telemetry
3232
MLOPS_V2 = 9 # Added to support MLOps telemetry
33+
FEATURE_STORE_V2 = 10
3334

3435
def __str__(self): # pylint: disable=E0307
3536
"""Return the feature name."""

src/sagemaker/telemetry/telemetry_logging.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@
5858
# Note: HyperPod CLI uses codes 6 and 7
5959
str(Feature.JUMPSTART_V2): 8,
6060
str(Feature.MLOPS_V2): 9,
61+
str(Feature.FEATURE_STORE_V2): 10,
6162
}
6263

6364
STATUS_TO_CODE = {

0 commit comments

Comments
 (0)