Seite 1 von 1

keine MemoryPerformance Daten über VC

Verfasst: 01.12.2006, 10:05
von hornd_reaper
Hi, ich verwende folgenden Code um die MemoryPerformance Daten über den VMA des VCs zu bekommen. Leider kriege ich keine Werte vom VMA. Hat einer vielleicht eine Idee was der Grund dafür ist? Ich verwenede ähnlichen Code für CPUPerf Daten. Da funktioniert es tadellos. Der Unterschied ist bloß im PerfStatType...

Code: Alles auswählen

        String hostPath="/vm/"+vmuid;
        String handle=serviceConnection.resolvePath("/perf/"+sampleint);
        String fromDateTime = datum + ", CET";
        PerfFilter sourceFilter = new PerfFilter();
        sourceFilter.setSpec(new PerfSourceType[1]);
        PerfSourceType s = new PerfSourceType();
        sourceFilter.setSpec(0, s);
        s.setKey(serviceConnection.resolvePath(hostPath));
        s.setSample(new PerfType[1]);
        PerfType t = new PerfType();
        s.setSample(0, t);
        t.setType(PerfStatType.memory);
        t.setDevice("0");
        DateFormat df = new SimpleDateFormat("MM/dd/yyyy HH:mm, z");
        Date chgDate = df.parse(fromDateTime);
        Calendar calDate = Calendar.getInstance();
        calDate.setTime(chgDate);
        com.vmware.vma.PerfCollector col = serviceConnection.queryPerfData(handle, calDate, samples, sourceFilter);
        PerfSource[] psource =col.getStats().getSource();
       
        for (int i=0;i<psource.length;i++){
            ViewContents vc= serviceConnection.getContents(psource[i].getKey());

            if(vc.getBody() instanceof VirtualMachine){
                //Host host = (Host) vc.getBody();
                VirtualMachine host=(VirtualMachine) vc.getBody();
               
                String hostName=host.getInfo().getName();
                System.out.println("Stats for Host: "+ hostName);
                parent.getOutput().append("\n Stats for Machine: "+ hostName);
                PerfSample[] sample = psource[i].getSample();


                for (int j=0; j<sample.length; j++){

                    PerfStat[] statsSample= sample[j].getStat();           

                    for (int k =0; k<statsSample.length; k++){
                        PerfStat stat = statsSample[k];
                       
                        PerfStatType statType= stat.getType();
                                       
                       
                        if(statType==PerfStatType.memory){
                           
                            MemoryPerf data= (MemoryPerf) stat.getData();

                                                       
                            System.out.println("MemoryPerf  "+((long)(data.getSize())/1024));
                           
                           
                        }
                       
                    }
                }
            }
        }
    }