Stay organized with collections
Save and categorize content based on your preferences.
Resource: Feature
feature metadata information. For example, color is a feature that describes an apple.
Fields
name
string
Immutable. name of the feature. Format: projects/{project}/locations/{location}/featurestores/{featurestore}/entityTypes/{entityType}/features/{feature}projects/{project}/locations/{location}/featureGroups/{featureGroup}/features/{feature}
The last part feature is assigned by the client. The feature can be up to 64 characters long and can consist only of ASCII Latin letters A-Z and a-z, underscore(_), and ASCII digits 0-9 starting with a letter. The value will be unique given an entity type.
Output only. Only applicable for Vertex AI feature Store (Legacy). timestamp when this EntityType was created.
Uses RFC 3339, where generated output will always be Z-normalized and uses 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".
Output only. Only applicable for Vertex AI feature Store (Legacy). timestamp when this EntityType was most recently updated.
Uses RFC 3339, where generated output will always be Z-normalized and uses 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".
labels
map (key: string, value: string)
Optional. The labels with user-defined metadata to organize your Features.
label keys and values can be no longer than 64 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed.
See https://goo.gl/xmQnxf for more information on and examples of labels. No more than 64 user labels can be associated with one feature (System labels are excluded)." System reserved label keys are prefixed with "aiplatform.googleapis.com/" and are immutable.
etag
string
Used to perform a consistent read-modify-write updates. If not set, a blind "overwrite" update happens.
disableMonitoring
boolean
Optional. Only applicable for Vertex AI feature Store (Legacy). If not set, use the monitoringConfig defined for the EntityType this feature belongs to. Only Features with type (feature.ValueType) BOOL, STRING, DOUBLE or INT64 can enable monitoring.
If set to true, all types of data monitoring are disabled despite the config on EntityType.
Output only. Only applicable for Vertex AI feature Store (Legacy). The list of historical stats and anomalies with specified objectives.
versionColumnName
string
Only applicable for Vertex AI feature Store. The name of the BigQuery Table/View column hosting data for this version. If no value is provided, will use featureId.
pointOfContact
string
Entity responsible for maintaining this feature. Can be comma separated list of email addresses or URIs.
If the objective in the request is both Import feature Analysis and Snapshot Analysis, this objective could be one of them. Otherwise, this objective should be the same as the objective in the request.
Enums
OBJECTIVE_UNSPECIFIED
If it's OBJECTIVE_UNSPECIFIED, monitoringStats will be empty.
IMPORT_FEATURE_ANALYSIS
Stats are generated by Import feature Analysis.
SNAPSHOT_ANALYSIS
Stats are generated by Snapshot Analysis.
FeatureStatsAnomaly
Stats and Anomaly generated at specific timestamp for specific feature. The startTime and endTime are used to define the time range of the dataset that current stats belongs to, e.g. prediction traffic is bucketed into prediction datasets by time window. If the Dataset is not defined by time window, startTime = endTime. timestamp of the stats and anomalies always refers to endTime. Raw stats and anomalies are stored in statsUri or anomalyUri in the tensorflow defined protos. Field dataStats contains almost identical information with the raw stats in Vertex AI defined proto, for UI to display.
Path of the stats file for current feature values in Cloud Storage bucket. Format: gs:////stats. Example: gs://monitoring_bucket/featureName/stats. Stats are stored as binary format with Protobuf message tensorflow.metadata.v0.FeatureNameStatistics.
anomalyUri
string
Path of the anomaly file for current feature values in Cloud Storage bucket. Format: gs:////anomalies. Example: gs://monitoring_bucket/featureName/anomalies. Stats are stored as binary format with Protobuf message Anoamlies are stored as binary format with Protobuf message tensorflow.metadata.v0.AnomalyInfo.
distributionDeviation
number
Deviation from the current stats to baseline stats. 1. For categorical feature, the distribution distance is calculated by L-inifinity norm. 2. For numerical feature, the distribution distance is calculated by Jensen–Shannon divergence.
anomalyDetectionThreshold
number
This is the threshold used when detecting anomalies. The threshold can be changed by user, so this one might be different from ThresholdConfig.value.
The start timestamp of window where stats were generated. For objectives where time window doesn't make sense (e.g. Featurestore Snapshot Monitoring), startTime is only used to indicate the monitoring intervals, so it always equals to (endTime - monitoringInterval).
Uses RFC 3339, where generated output will always be Z-normalized and uses 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".
The end timestamp of window where stats were generated. For objectives where time window doesn't make sense (e.g. Featurestore Snapshot Monitoring), endTime indicates the timestamp of the data used to generate stats (e.g. timestamp we take snapshots for feature values).
Uses RFC 3339, where generated output will always be Z-normalized and uses 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-06-27 UTC."],[],[],null,["# REST Resource: projects.locations.featureGroups.features\n\nResource: Feature\n-----------------\n\nfeature metadata information. For example, color is a feature that describes an apple.\nFields `name` `string` \nImmutable. name of the feature. Format: `projects/{project}/locations/{location}/featurestores/{featurestore}/entityTypes/{entityType}/features/{feature}` `projects/{project}/locations/{location}/featureGroups/{featureGroup}/features/{feature}`\n\nThe last part feature is assigned by the client. The feature can be up to 64 characters long and can consist only of ASCII Latin letters A-Z and a-z, underscore(_), and ASCII digits 0-9 starting with a letter. The value will be unique given an entity type.\n`description` `string` \ndescription of the feature.\n`valueType` `enum (`[ValueType](/vertex-ai/docs/reference/rest/v1/projects.locations.featureGroups.features#Feature.ValueType)`)` \nImmutable. Only applicable for Vertex AI feature Store (Legacy). type of feature value.\n`createTime` `string (`[Timestamp](https://protobuf.dev/reference/protobuf/google.protobuf/#timestamp)` format)` \nOutput only. Only applicable for Vertex AI feature Store (Legacy). timestamp when this EntityType was created.\n\nUses RFC 3339, where generated output will always be Z-normalized and uses 0, 3, 6 or 9 fractional digits. Offsets other than \"Z\" are also accepted. Examples: `\"2014-10-02T15:01:23Z\"`, `\"2014-10-02T15:01:23.045123456Z\"` or `\"2014-10-02T15:01:23+05:30\"`.\n`updateTime` `string (`[Timestamp](https://protobuf.dev/reference/protobuf/google.protobuf/#timestamp)` format)` \nOutput only. Only applicable for Vertex AI feature Store (Legacy). timestamp when this EntityType was most recently updated.\n\nUses RFC 3339, where generated output will always be Z-normalized and uses 0, 3, 6 or 9 fractional digits. Offsets other than \"Z\" are also accepted. Examples: `\"2014-10-02T15:01:23Z\"`, `\"2014-10-02T15:01:23.045123456Z\"` or `\"2014-10-02T15:01:23+05:30\"`.\n`labels` `map (key: string, value: string)` \nOptional. The labels with user-defined metadata to organize your Features.\n\nlabel keys and values can be no longer than 64 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed.\n\nSee \u003chttps://goo.gl/xmQnxf\u003e for more information on and examples of labels. No more than 64 user labels can be associated with one feature (System labels are excluded).\" System reserved label keys are prefixed with \"aiplatform.googleapis.com/\" and are immutable.\n`etag` `string` \nUsed to perform a consistent read-modify-write updates. If not set, a blind \"overwrite\" update happens.\n`disableMonitoring` `boolean` \nOptional. Only applicable for Vertex AI feature Store (Legacy). If not set, use the monitoringConfig defined for the EntityType this feature belongs to. Only Features with type ([feature.ValueType](/vertex-ai/docs/reference/rest/v1/projects.locations.featureGroups.features#Feature.ValueType)) BOOL, STRING, DOUBLE or INT64 can enable monitoring.\n\nIf set to true, all types of data monitoring are disabled despite the config on EntityType.\n`monitoringStatsAnomalies[]` `object (`[MonitoringStatsAnomaly](/vertex-ai/docs/reference/rest/v1/projects.locations.featureGroups.features#Feature.MonitoringStatsAnomaly)`)` \nOutput only. Only applicable for Vertex AI feature Store (Legacy). The list of historical stats and anomalies with specified objectives.\n`versionColumnName` `string` \nOnly applicable for Vertex AI feature Store. The name of the BigQuery Table/View column hosting data for this version. If no value is provided, will use featureId.\n`pointOfContact` `string` \nEntity responsible for maintaining this feature. Can be comma separated list of email addresses or URIs. \n\n### ValueType\n\nOnly applicable for Vertex AI Legacy feature Store. An enum representing the value type of a feature.\n\n### MonitoringStatsAnomaly\n\nA list of historical [SnapshotAnalysis](/vertex-ai/docs/reference/rest/v1/projects.locations.featurestores.entityTypes#SnapshotAnalysis) or [ImportFeaturesAnalysis](/vertex-ai/docs/reference/rest/v1/projects.locations.featurestores.entityTypes#ImportFeaturesAnalysis) stats requested by user, sorted by [FeatureStatsAnomaly.start_time](/vertex-ai/docs/reference/rest/v1/projects.locations.featureGroups.features#Feature.FeatureStatsAnomaly.FIELDS.start_time) descending.\nFields `objective` `enum (`[Objective](/vertex-ai/docs/reference/rest/v1/projects.locations.featureGroups.features#Feature.Objective)`)` \nOutput only. The objective for each stats.\n`featureStatsAnomaly` `object (`[FeatureStatsAnomaly](/vertex-ai/docs/reference/rest/v1/projects.locations.featureGroups.features#Feature.FeatureStatsAnomaly)`)` \nOutput only. The stats and anomalies generated at specific timestamp. \n\n### Objective\n\nIf the objective in the request is both Import feature Analysis and Snapshot Analysis, this objective could be one of them. Otherwise, this objective should be the same as the objective in the request.\n\n### FeatureStatsAnomaly\n\nStats and Anomaly generated at specific timestamp for specific feature. The startTime and endTime are used to define the time range of the dataset that current stats belongs to, e.g. prediction traffic is bucketed into prediction datasets by time window. If the Dataset is not defined by time window, startTime = endTime. timestamp of the stats and anomalies always refers to endTime. Raw stats and anomalies are stored in statsUri or anomalyUri in the tensorflow defined protos. Field dataStats contains almost identical information with the raw stats in Vertex AI defined proto, for UI to display.\nFields `score` `number` \nfeature importance score, only populated when cross-feature monitoring is enabled. For now only used to represent feature attribution score within range \\[0, 1\\] for [ModelDeploymentMonitoringObjectiveType.FEATURE_ATTRIBUTION_SKEW](/vertex-ai/docs/reference/rest/v1/projects.locations.modelDeploymentMonitoringJobs/searchModelDeploymentMonitoringStatsAnomalies#ModelDeploymentMonitoringObjectiveType.ENUM_VALUES.FEATURE_ATTRIBUTION_SKEW) and [ModelDeploymentMonitoringObjectiveType.FEATURE_ATTRIBUTION_DRIFT](/vertex-ai/docs/reference/rest/v1/projects.locations.modelDeploymentMonitoringJobs/searchModelDeploymentMonitoringStatsAnomalies#ModelDeploymentMonitoringObjectiveType.ENUM_VALUES.FEATURE_ATTRIBUTION_DRIFT).\n`statsUri` `string` \nPath of the stats file for current feature values in Cloud Storage bucket. Format: gs:////stats. Example: gs://monitoring_bucket/featureName/stats. Stats are stored as binary format with Protobuf message [tensorflow.metadata.v0.FeatureNameStatistics](https://github.com/tensorflow/metadata/blob/master/tensorflow_metadata/proto/v0/statistics.proto).\n`anomalyUri` `string` \nPath of the anomaly file for current feature values in Cloud Storage bucket. Format: gs:////anomalies. Example: gs://monitoring_bucket/featureName/anomalies. Stats are stored as binary format with Protobuf message Anoamlies are stored as binary format with Protobuf message [tensorflow.metadata.v0.AnomalyInfo](https://github.com/tensorflow/metadata/blob/master/tensorflow_metadata/proto/v0/anomalies.proto).\n`distributionDeviation` `number` \nDeviation from the current stats to baseline stats. 1. For categorical feature, the distribution distance is calculated by L-inifinity norm. 2. For numerical feature, the distribution distance is calculated by Jensen--Shannon divergence.\n`anomalyDetectionThreshold` `number` \nThis is the threshold used when detecting anomalies. The threshold can be changed by user, so this one might be different from [ThresholdConfig.value](/vertex-ai/docs/reference/rest/v1/projects.locations.modelDeploymentMonitoringJobs#ThresholdConfig.FIELDS.value).\n`startTime` `string (`[Timestamp](https://protobuf.dev/reference/protobuf/google.protobuf/#timestamp)` format)` \nThe start timestamp of window where stats were generated. For objectives where time window doesn't make sense (e.g. Featurestore Snapshot Monitoring), startTime is only used to indicate the monitoring intervals, so it always equals to (endTime - monitoringInterval).\n\nUses RFC 3339, where generated output will always be Z-normalized and uses 0, 3, 6 or 9 fractional digits. Offsets other than \"Z\" are also accepted. Examples: `\"2014-10-02T15:01:23Z\"`, `\"2014-10-02T15:01:23.045123456Z\"` or `\"2014-10-02T15:01:23+05:30\"`.\n`endTime` `string (`[Timestamp](https://protobuf.dev/reference/protobuf/google.protobuf/#timestamp)` format)` \nThe end timestamp of window where stats were generated. For objectives where time window doesn't make sense (e.g. Featurestore Snapshot Monitoring), endTime indicates the timestamp of the data used to generate stats (e.g. timestamp we take snapshots for feature values).\n\nUses RFC 3339, where generated output will always be Z-normalized and uses 0, 3, 6 or 9 fractional digits. Offsets other than \"Z\" are also accepted. Examples: `\"2014-10-02T15:01:23Z\"`, `\"2014-10-02T15:01:23.045123456Z\"` or `\"2014-10-02T15:01:23+05:30\"`."]]