Skip to content

Commit ccea737

Browse files
author
Randall Barnes
authored
Update func.py
Update config handler
1 parent 459e44d commit ccea737

File tree

1 file changed

+28
-34
lines changed
  • samples/oci-monitoring-metric-export-python

1 file changed

+28
-34
lines changed

samples/oci-monitoring-metric-export-python/func.py

+28-34
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,13 @@
55
# Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl.
66
#
77

8-
98
import io
109
import oci
11-
import requests
1210
import logging
1311
import json
1412
from datetime import datetime, timedelta
1513
from fdk import response
1614

17-
18-
1915
"""
2016
Create Object Storage bucket 'metrics-export' in the specified Compartent, if it does not already exist.
2117
Default access: Private
@@ -51,7 +47,7 @@ def deleteObjectIfExists(_source_namespace, _bucketname, _objectname, _object_st
5147
raise
5248

5349
"""
54-
Perform api call to pull metrics
50+
Perform api call to pull metrics from Monitoring Service
5551
"""
5652
def export_metrics(monitoring_client, _compartmentId, _namespace, _resource_group, _query, _startdtm, _enddtm, _resolution, logger):
5753
try:
@@ -74,7 +70,7 @@ def export_metrics(monitoring_client, _compartmentId, _namespace, _resource_grou
7470
logger.error("Error in export_metrics(): {}".format(str(e)))
7571
raise
7672
"""
77-
Upload (put) metrics json file to bucket 'metrics-export'
73+
Upload (put) metrics json file to bucket
7874
"""
7975
def putObject(_source_namespace, _bucketname, _objectname, _content, _object_storage_client, logger):
8076
try:
@@ -99,55 +95,53 @@ def handler(ctx, data: io.BytesIO=None):
9995
# Retrieve the Function configuration values
10096
# Parse input parameters and assign default values as needed
10197
try:
102-
cfg = dict(ctx.Config())
103-
try:
104-
_compartmentId = cfg["compartmentId"]
105-
except Exception as e:
98+
body = json.loads(data.getvalue())
99+
_compartmentId = body.get("compartmentId")
100+
if (_compartmentId == None):
106101
logger.error('Mandatory key compartmentId not defined')
107102
raise
108103

109-
try:
110-
_namespace = cfg["namespace"]
111-
except:
104+
_namespace = body.get("namespace")
105+
if (_namespace == None):
112106
logger.info('Optional configuration key namespace unavailable. Will assign default value')
113107
_namespace = "oci_computeagent"
114108

115-
try:
116-
_resource_group = cfg["resource_group"]
117-
except:
109+
_resource_group = body.get("resource_group")
110+
if (_resource_group == None):
118111
logger.info('Optional configuration key resource_group unavailable. Will assign default value')
119112
_resource_group = ""
120-
121-
try:
122-
_query = cfg["query"]
123-
except:
113+
114+
_query = body.get("query")
115+
if (_query == None):
124116
logger.info('Optional configuration key query unavailable. Will assign default value')
125117
_query = "CpuUtilization[1m].mean()"
126-
127-
try:
128-
_startdtm = cfg["startdtm"]
129-
except:
118+
119+
_startdtm = body.get("startdtm")
120+
if (_startdtm == None):
130121
logger.info('Optional configuration key startdtm unavailable. Will assign default value')
131122
_startdtm = (datetime.now() + timedelta(hours=-1)).strftime("%Y-%m-%dT%H:%M:%S.%fZ")
132123

133-
try:
134-
_enddtm = cfg["enddtm"]
135-
except:
124+
_enddtm = body.get("enddtm")
125+
if (_enddtm == None):
136126
logger.info('Optional configuration key enddtm unavailable. Will assign default value')
137127
_enddtm = datetime.now().strftime("%Y-%m-%dT%H:%M:%S.%fZ")
138128

139-
try:
140-
_resolution = cfg["resolution"]
141-
except:
129+
_resolution = body.get("resolution")
130+
if (_resolution == None):
142131
logger.info('Optional configuration key resolution unavailable. Will assign default value')
143132
_resolution = "1m"
144133

145-
134+
# Default Object Storage bucket name. Update as required, following name format restrictions
135+
# See the following link for guidelines:
136+
# https://docs.oracle.com/en-us/iaas/Content/Object/Tasks/managingbuckets.htm#bucketnames
146137
bucketname = "metrics-export"
138+
139+
# Will use query end timestamp for insertion into filename
147140
dt_string = _enddtm
148141

149-
if (_resource_group.strip()):
150-
objectname = _namespace + "-" + _resource_group + "-" + dt_string[0:19] + ".json"
142+
# Generate objectname [filename]
143+
if (_resource_group):
144+
objectname = _namespace + "-" + _resource_group.strip() + "-" + dt_string[0:19] + ".json"
151145
else:
152146
objectname = _namespace + "-" + dt_string[0:19] + ".json"
153147

@@ -180,4 +174,4 @@ def handler(ctx, data: io.BytesIO=None):
180174
ctx,
181175
response_data="",
182176
headers={"Content-Type": "application/json"}
183-
)
177+
)

0 commit comments

Comments
 (0)