Skip to content

Commit c98806b

Browse files
authored
Added Failure Indicator & Logging Enhancements (#1086)
2 parents 324e682 + b72500e commit c98806b

File tree

4 files changed

+26
-11
lines changed

4 files changed

+26
-11
lines changed

ads/opctl/operator/common/utils.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import sys
1010
import time
1111
import traceback
12+
import uuid
1213
from string import Template
1314
from typing import Any, Dict, List, Tuple
1415

@@ -17,6 +18,7 @@
1718
from cerberus import Validator
1819

1920
from ads.opctl import logger, utils
21+
from ads.common.oci_logging import OCILog
2022

2123
CONTAINER_NETWORK = "CONTAINER_NETWORK"
2224

@@ -190,3 +192,17 @@ def print_traceback():
190192
if logger.level == logging.DEBUG:
191193
ex_type, ex, tb = sys.exc_info()
192194
traceback.print_tb(tb)
195+
196+
197+
def create_log_in_log_group(compartment_id, log_group_id, auth, log_name=None):
198+
"""
199+
Creates a log within a given log group
200+
"""
201+
if not log_name:
202+
log_name = f"log-{int(time.time())}-{uuid.uuid4()}"
203+
log = OCILog(display_name=log_name,
204+
log_group_id=log_group_id,
205+
compartment_id=compartment_id,
206+
**auth).create()
207+
logger.info(f"Created log with log OCID {log.id}")
208+
return log.id

ads/opctl/operator/lowcode/common/transformations.py

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -209,7 +209,7 @@ def _missing_value_imputation_hist(self, df):
209209

210210
def _missing_value_imputation_add(self, df):
211211
"""
212-
Function fills missing values in the pandas dataframe using liner interpolation
212+
Function fills missing values with zero
213213
214214
Parameters
215215
----------
@@ -219,15 +219,7 @@ def _missing_value_imputation_add(self, df):
219219
-------
220220
A new Pandas DataFrame without missing values.
221221
"""
222-
# find columns that all all NA and replace with 0
223-
for col in df.columns:
224-
# find next int not in list
225-
i = 0
226-
vals = df[col].unique()
227-
while i in vals:
228-
i = i + 1
229-
df[col] = df[col].fillna(0)
230-
return df
222+
return df.fillna(0)
231223

232224
def _outlier_treatment(self, df):
233225
"""

ads/opctl/operator/lowcode/forecast/schema.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -379,7 +379,7 @@ spec:
379379
required: true
380380
log_id:
381381
type: string
382-
required: true
382+
required: false
383383
auto_scaling:
384384
type: dict
385385
required: false

ads/opctl/operator/lowcode/forecast/whatifserve/deployment_manager.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515

1616
from ads.opctl import logger
1717
from ads.common.model_export_util import prepare_generic_model
18+
from ads.opctl.operator.common.utils import create_log_in_log_group
1819
from ads.opctl.operator.lowcode.common.utils import write_data, write_simple_json
1920
from ads.opctl.operator.lowcode.common.utils import default_signer
2021
from ..model.forecast_datasets import AdditionalData
@@ -184,6 +185,10 @@ def create_deployment(self):
184185

185186
log_group = self.spec.what_if_analysis.model_deployment.log_group
186187
log_id = self.spec.what_if_analysis.model_deployment.log_id
188+
if not log_id and not self.test_mode:
189+
signer = oci.auth.signers.get_resource_principals_signer()
190+
auth = {"signer": signer, "config": {}}
191+
log_id = create_log_in_log_group(self.compartment_id, log_group, auth)
187192

188193
logs_configuration_details_object = CategoryLogDetails(
189194
access=LogDetails(log_group_id=log_group,
@@ -211,8 +216,10 @@ def create_deployment(self):
211216
logger.info(f"deployment metadata :{model_deployment.data}")
212217
md = data_science.get_model_deployment(model_deployment_id=model_deployment.data.resources[0].identifier)
213218
self.deployment_info['model_deployment_ocid'] = md.data.id
219+
self.deployment_info['status'] = md.data.lifecycle_state
214220
endpoint_url = md.data.model_deployment_url
215221
self.deployment_info['model_deployment_endpoint'] = f"{endpoint_url}/predict"
222+
self.deployment_info['log_id'] = log_id
216223

217224
def save_deployment_info(self):
218225
output_dir = self.spec.output_directory.url

0 commit comments

Comments
 (0)