New Ranks & Badges For The Community!
Notice something different? The ranks and associated badges have gone "Star Fleet". See what they all mean HERE

Your Private Cloud Operations through a Business Lens for more than 58,000 VMs and counting!

Absent Member.
Absent Member.
2 0 5,784

Updated re-publication on 20 March 2020 of a blog published in 2016.

With an internal organization that provides support services for more than 4000 Micro Focus developers and external customers worldwide, Micro Focus is always transforming with the times to meet high demands and maintain an exceptional user experience.

This blog captures the user experience on adopting a solution which blew away their management teams. As a Sr. Manager of R&D Data Centers, Micro Focus Infrastructure Services, said, “When we saw Business Value Dashboard (BVD) for the first time few months back, it was sold to Infrastructure Services VP in less than 5 minutes!”


The Micro Focus Infrastructure Private Cloud environment is spread across approximately 16 sites across the globe, hosting around 58,000 VMs for the Micro Focus Software R&D community. Cloud Optimizer has been an integral part of their solution, monitoring and optimizing these large-scale VM farms. In order to manage such disparate sites with such scale, automation was implemented, rolling up around 21 Cloud Optimizer instances globally. However, it became a tedious effort to manually log in to each instance and collate the required statistics in an excel sheet. Business Value Dashboard and Cloud Optimizer are a part of the Operations Bridge Suite.

At this point, the team discovered the Business Value Dashboard (BVD). It was their “a-ha” moment. As shared by a Senior Engineer from R&D Data Centers, Micro Focus Infrastructure Services, they could now view all 21 Cloud Optimizer instances across 16 sites in real time—and in a one-pane view. They could decide instantly when to add capacity at which site and significantly reduce any dependencies from previous days—for more than 58,000 VMs!

A generic view is provided below:



Here are some tips on integration between Business Value Dashboard (BVD) and Cloud Optimizer:

  1. You need to chalk out what data you will be sending and what script to use before connecting dynamic data to the Business Value Dashboard (BVD)
  2. Take note that any Open Source REST API support product can easily integrate with BVD along with minimal steps. In BVD all data is grouped into, so called data-channels. These data channels can be connected to the dashboard widgets. In order to create a data channel, you need to send your data in JSON format with a HTTP post request. A typical request has a URL and contains the data as POST-request.
  3. Below is a Python script skeleton to pull data from Cloud Optimizer and send real time data into Business Value Dashboard (BVD) seamlessly:



def Start_Parsing():
   while 1:
       final_total_num_vm = 0
       for co in config_dict['list']:
           response_dict = get_co_json(co['url'])
           outbound_data[co['name']] = response_dict
           final_total_num_vm = final_total_num_vm + response_dict['num_vm']
       outbound_package = Build_OutBound_Package_CO()
       outbound_package['total_num_vm'] = final_total_num_vm
       print "Outbound Package: ", json.dumps(outbound_package)
#Build outbound package from Cloud Optimizer.
def Build_OutBound_Package_CO():
   outbound_package = {
       "available_metric": "",
       "mdb": "KEE",
       "label": "Summary",
       "type": "Any",
   outbound_package = merge_dicts(outbound_package, outbound_data)
   return Flatten(outbound_package,sep="/")               
     # Flatten the real time data
def Flatten(d, parent_key='', sep='_'):
   items = []
       for k, v in d.items():
           new_key = parent_key + sep + k if parent_key else k
           if isinstance(v, collections.MutableMapping):
               items.extend(flatten(v, new_key, sep=sep).items())
       print "Failed to flatten"
       return dict(items)
def Build_BVD_URL():
   return ''+config_dict['bvd']+'/'+config_dict['apikey']+'?dims=mdb,label,type&tags=omi,mdb'
 #Push json format real time data into BVD along with BVD URL
def Push_Data(data):
url = build_bvd_url()
request = urllib2.Request(url)
request.add_header('Content-Type', 'application/json')
response = urllib2.urlopen(request, json.dumps(data)).read()
print response
print "Error while pushing data to BVD: ", Build_BVD_URL()
def Print_Data(data):
 if __name__ == '__main__':
#read the configuration along with validation
def Read_Conf_Validate ():
with open(config_path) as c:
config_json = json.loads(
config_dict['interval'] = config_json['interval']
 if isinstance(config_json['list'], list):
config_dict['list'] = config_json['list']
config_dict['bvd'] = config_json['bvd']
config_dict['apikey'] = config_json['apikey']
except IOError:
print "Failed to open config.json. Proceeding with default configurations."
print "Failed to parse config.json. Proceeding with default configurations."
#Start Parsing the JSON REST API data into BVD.




For further information about Business Value Dashboard, please check out

The opinions expressed above are the personal opinions of the authors, not of Micro Focus. By using this site, you accept the Terms of Use and Rules of Participation. Certain versions of content ("Material") accessible here may contain branding from Hewlett-Packard Company (now HP Inc.) and Hewlett Packard Enterprise Company. As of September 1, 2017, the Material is now offered by Micro Focus, a separately owned and operated company. Any reference to the HP and Hewlett Packard Enterprise/HPE marks is historical in nature, and the HP and Hewlett Packard Enterprise/HPE marks are the property of their respective owners.