cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
1328
Views
0
Helpful
0
Comments
Orf Gelbrich
Cisco Employee
Cisco Employee

This is the beginning of how to create dashboard Charts Like this:

Chart:

Screen Shot 2016-03-02 at 15.41.45.png

Sample Code 1 :

package com.cloupia.feature.slimcea.reports;

import com.cloupia.model.cIM.ReportContext;

import com.cloupia.model.cIM.ReportNameValuePair;

import com.cloupia.model.cIM.SnapshotReport;

import com.cloupia.model.cIM.SnapshotReportCategory;

import com.cloupia.service.cIM.inframgr.SnapshotReportGeneratorIf;

import com.cloupia.service.cIM.inframgr.reportengine.ReportRegistryEntry;

public class SamplePieChartReportImpl implements SnapshotReportGeneratorIf {

  @Override

  public SnapshotReport getSnapshotReport(ReportRegistryEntry reportEntry, ReportContext context) throws Exception {

  SnapshotReport report = new SnapshotReport(); report.setContext(context);

  report.setReportName(reportEntry.getReportLabel());

  report.setNumericalData(true); report.setDisplayAsPie(true);

  report.setPrecision(0);

  //creation of report name value pair goes

  ReportNameValuePair[] rnv = new ReportNameValuePair[5];

  for (int i = 0; i < rnv.length; i++) {

  rnv[i] = new ReportNameValuePair("category" + i, (i+1) * 5);

  }

  //setting of report category goes

  SnapshotReportCategory cat = new SnapshotReportCategory();

  cat.setCategoryName(""); cat.setNameValuePairs(rnv);

  report.setCategories(new SnapshotReportCategory[] { cat });

  return report;

  }

}

Sample Code 2:

package com.cloupia.feature.slimcea.reports;

import com.cloupia.feature.slimcea.constants.SlimceaConstants;

import com.cloupia.model.cIM.DynReportContext;

import com.cloupia.model.cIM.ReportContextRegistry;

import com.cloupia.model.cIM.ReportDefinition;

import com.cloupia.service.cIM.inframgr.reportengine.ContextMapRule;

import com.cloupia.service.cIM.inframgr.reports.simplified.CloupiaNonTabularReport;

public class SamplePieChartReport extends CloupiaNonTabularReport {

  // Unique report name here.

  private static final String NAME = "my.first.pie.chart";

  private static final String LABEL = "My First Pie Chart";

  //Returns implementation class

  @SuppressWarnings("rawtypes")

  @Override

  public Class getImplementationClass() {

  return SamplePieChartReportImpl.class;

  }

  //Returns report type for pie chart as shown below

  @Override

  public int getReportType() {

  return ReportDefinition.REPORT_TYPE_SNAPSHOT;

  }

  @Override

  public String getReportLabel() {

  return LABEL;

  }

  @Override

  public String getReportName() {

  return NAME;

  }

  // Forcing this report into the Physical->Storage part of the GUI.

  @Override

  public int getMenuID() {

  return 51;

  }

  //Returns report hint for pie chart as shown below

  @Override

  public int getReportHint() {

  return ReportDefinition.REPORT_HINT_PIECHART;

  }

  @Override

  public ContextMapRule[] getMapRules() {

  DynReportContext dummyContextOneType = ReportContextRegistry.getInstance().getContextByName(SlimceaConstants.INFRA_ACCOUNT_TYPE);

  ContextMapRule rule = new ContextMapRule();

  rule.setContextName(dummyContextOneType.getId());

  rule.setContextType(dummyContextOneType.getType());

  ContextMapRule[] rules = new ContextMapRule[1];

  rules[0] = rule;

  return rules;

  }

}

The inspiration came from:

You use API to get the historical data  for the summary data.

http://172.31.234.115/app/api/rest?formatType=json&opName=userAPIGetHistoricalReport&opData={param0:”1”,param1:”Cloud-152”,param2:”TREND-NUMBER-OF-HOST-NODES-H0”,param3:”weekly”}

{"serviceResult": {"series": [{"paramName": "totalHostNodes","paramLabel": "Total Host Nodes","values": [{"timestamp": 1456287349796,"min": 7,"max": 7,"avg": 7},{"timestamp": 1456296276538,"min": 7,"max": 7,"avg": 7},{"timestamp": 1456299877654,"min": 7,"max": 7,"avg": 7},

This is corresponding following widget in UI (data might be from other report in this pic)

Unknown.png

http://172.31.234.115/app/api/rest?formatType=json&opName=userAPIGetInstantDataReport&opData={param0:”1”,param1:”Cloud-152”,param2:”VMS-ACTIVE-VS-INACTIVE-S0”}

{"serviceResult": {"categoryAxisName": null,"valueAxisName": "Active vs Inactive","categories": [{"categoryName": "","nameValuePairs": [{"name": "Active VMs","value": "34"},{"name": "Inactive VMs","value": "5"}]}]},"serviceError": null,"serviceName": "InfraMgr","opName": "userAPIGetInstantDataReport"}

This corresponds to following widget in summary

Unknown-1.png

Getting Started

Find answers to your questions by entering keywords or phrases in the Search bar above. New here? Use these resources to familiarize yourself with the community:

Quick Links