Package org.rhq.core.domain.measurement

Examples of org.rhq.core.domain.measurement.MeasurementDataNumeric


        MeasurementSchedule schedule = resourceWithSchedules.getSchedules().iterator().next();

        // simulate a measurement report coming from the agent - one value that is inside our range, so no alerts are fired
        MeasurementScheduleRequest request = new MeasurementScheduleRequest(schedule);
        MeasurementReport report = new MeasurementReport();
        report.addData(new MeasurementDataNumeric(getTimestamp(60), request, 50.0)); // 50 is inside the range 40...60
        MeasurementDataManagerLocal dataManager = LookupUtil.getMeasurementDataManager();
        dataManager.mergeMeasurementReport(report);

        // wait for our JMS messages to process and see if we get any alerts
        Thread.sleep(5000);

        // make sure no alert was triggered
        PageList<Alert> alerts = getAlerts(resourceWithSchedules.getId());
        assert alerts.size() == 0 : "no alerts should have fired: " + alerts;

        // simulate another measurement report coming from the agent - one value that is outside the range, so 1 alert is fired
        request = new MeasurementScheduleRequest(schedule);
        report = new MeasurementReport();
        report.addData(new MeasurementDataNumeric(getTimestamp(15), request, 20.0)); // 20 is outside 40...60
        dataManager.mergeMeasurementReport(report);

        // wait for our JMS messages to process and see if we get any alerts
        Thread.sleep(5000);
View Full Code Here


        // simulate a measurement report coming from the agent
        // with a single metric that makes a condition trigger but does not fire an alert
        MeasurementScheduleRequest request = new MeasurementScheduleRequest(schedule);
        MeasurementReport report = new MeasurementReport();
        report.addData(new MeasurementDataNumeric(getTimestamp(60), request, 20.0)); // 20 < 60 but !(20 > 40)
        MeasurementDataManagerLocal dataManager = LookupUtil.getMeasurementDataManager();
        dataManager.mergeMeasurementReport(report);

        // wait for our JMS messages to process and see if we get any alerts
        Thread.sleep(5000);
View Full Code Here

        MeasurementSchedule schedule = resourceWithSchedules.getSchedules().iterator().next();

        // simulate a measurement report coming from the agent - one values that fits in our range, so 1 alert is fired
        MeasurementScheduleRequest request = new MeasurementScheduleRequest(schedule);
        MeasurementReport report = new MeasurementReport();
        report.addData(new MeasurementDataNumeric(getTimestamp(15), request, 50.0)); // 50 < 60 AND 50 > 40
        MeasurementDataManagerLocal dataManager = LookupUtil.getMeasurementDataManager();
        dataManager.mergeMeasurementReport(report);

        // wait for our JMS messages to process and see if we get any alerts
        Thread.sleep(5000);
View Full Code Here

        //first, send 2 matches
        MeasurementDataManagerLocal measurementDataManager = LookupUtil.getMeasurementDataManager();
        MeasurementScheduleRequest request = new MeasurementScheduleRequest(schedule);
        MeasurementReport report = new MeasurementReport();
        report.addData(new MeasurementDataNumeric(getTimestamp(25), request, 0d));
        measurementDataManager.mergeMeasurementReport(report);

        Thread.sleep(3000);

        request = new MeasurementScheduleRequest(schedule);
        report = new MeasurementReport();
        report.addData(new MeasurementDataNumeric(getTimestamp(20), request, 0d));
        measurementDataManager.mergeMeasurementReport(report);

        Thread.sleep(3000);

        //now reload the caches
        reloadAllAlertConditionCaches();

        //ok, so before BZ 1025491, after the cache reload, a non-match wouldn't cancel the counting.
        //so we need to test that if we send a non-match followed by a match we DON'T get an alert.

        //send a non-match, followed by a match
        request = new MeasurementScheduleRequest(schedule);
        report = new MeasurementReport();
        report.addData(new MeasurementDataNumeric(getTimestamp(15), request, 1d));
        measurementDataManager.mergeMeasurementReport(report);

        Thread.sleep(3000);

        request = new MeasurementScheduleRequest(schedule);
        report = new MeasurementReport();
        report.addData(new MeasurementDataNumeric(getTimestamp(10), request, 0d));
        measurementDataManager.mergeMeasurementReport(report);

        Thread.sleep(3000);

        //now, we should get NO alert
        List<Alert> alerts = getAlerts(resourceWithSchedules.getId());
        assert alerts.size() == 0 : "No alert should have fired: " + alerts;

        //let's send in 2 more matches - we should be getting an alert
        request = new MeasurementScheduleRequest(schedule);
        report = new MeasurementReport();
        report.addData(new MeasurementDataNumeric(getTimestamp(5), request, 0d));
        measurementDataManager.mergeMeasurementReport(report);

        Thread.sleep(3000);

        //throw in a cache reload to check that it doesn't mess up the counting of the positives in sequence
        reloadAllAlertConditionCaches();

        request = new MeasurementScheduleRequest(schedule);
        report = new MeasurementReport();
        report.addData(new MeasurementDataNumeric(getTimestamp(0), request, 0d));
        measurementDataManager.mergeMeasurementReport(report);

        //wait
        Thread.sleep(5000);
View Full Code Here

                    good = false;
                    log.info("Found a spike at " + temp);
                }

                if (good) {
                    MeasurementDataNumeric value = new MeasurementDataNumeric(metric, temp);
                    report.addData(value);
                }
            }
        }
    }
View Full Code Here

        DataType dataType = request.getDataType();
        switch (dataType) {
        case MEASUREMENT:
            try {
                MeasurementDataNumeric dataNumeric = new MeasurementDataNumeric(request, Double.valueOf(stringValue));
                report.addData(dataNumeric);
            } catch (NumberFormatException e) {
                LOG.error("Profile service did not return a numeric value as expected for metric [" + request.getName()
                    + "] - value returned was " + value + ".", e);
            }
View Full Code Here

                @SuppressWarnings("unchecked")
                Map<String, Object> data = (Map<String, Object>) result.getResult();
                for (MeasurementScheduleRequest request : metrics) {
                    Object value = data.get(request.getName());
                    Double d = Double.parseDouble(getStringValue(value));
                    report.addData(new MeasurementDataNumeric(request, d));
                }
            }
        }
    };
View Full Code Here

            String requestName = request.getName();
            if (requestName.startsWith("Process") && aggregateProcessInfo != null) {
                aggregateProcessInfo.refresh();
                if ("Process.aggregateMemory.resident".equals(requestName)) {
                    long mem = aggregateProcessInfo.getAggregateMemory().getResident();
                    report.addData(new MeasurementDataNumeric(request, new Double((double) mem)));
                } else if ("Process.aggregateMemory.size".equals(requestName)) {
                    long value = aggregateProcessInfo.getAggregateMemory().getSize();
                    report.addData(new MeasurementDataNumeric(request, new Double((double) value)));
                } else if ("Process.aggregateMemory.pageFaults".equals(requestName)) {
                    long value = aggregateProcessInfo.getAggregateMemory().getPageFaults();
                    report.addData(new MeasurementDataNumeric(request, new Double((double) value)));
                } else if ("Process.aggregateCpu.user".equals(requestName)) {
                    long value = aggregateProcessInfo.getAggregateCpu().getUser();
                    report.addData(new MeasurementDataNumeric(request, new Double((double) value)));
                } else if ("Process.aggregateCpu.sys".equals(requestName)) {
                    long value = aggregateProcessInfo.getAggregateCpu().getSys();
                    report.addData(new MeasurementDataNumeric(request, new Double((double) value)));
                } else if ("Process.aggregateCpu.percent".equals(requestName)) {
                    double value = aggregateProcessInfo.getAggregateCpu().getPercent();
                    report.addData(new MeasurementDataNumeric(request, new Double(value)));
                } else if ("Process.aggregateCpu.total".equals(requestName)) {
                    long value = aggregateProcessInfo.getAggregateCpu().getTotal();
                    report.addData(new MeasurementDataNumeric(request, new Double((double) value)));
                } else if ("Process.aggregateFileDescriptor.total".equals(requestName)) {
                    long value = aggregateProcessInfo.getAggregateFileDescriptor().getTotal();
                    report.addData(new MeasurementDataNumeric(request, new Double((double) value)));
                }
            } else {
                if (request.getDataType() == DataType.MEASUREMENT) {
                    try {
                        String strVal = globalStatusValues.get(request.getName());
                        double val = Double.parseDouble(strVal);
                        report.addData(new MeasurementDataNumeric(request, val));
                    } catch (Exception ignore) {
                    }
                }
            }
        }
View Full Code Here

                MeasurementDataTrait trait = new MeasurementDataTrait(schedule, this.binaryInfo.getBuilt());
                report.addData(trait);
            } else if (metricName.equals("rhq_avail_ping_time")) {
                if (availPingTime == -1)
                    continue; // Skip if we have no data
                MeasurementDataNumeric num = new MeasurementDataNumeric(schedule, (double) availPingTime);
                report.addData(num);
            } else {
                // Assume anything else is an SNMP metric.
                if (!snmpPresent)
                    continue; // Skip this metric if no SNMP present
View Full Code Here

                 MeasurementDataTrait trait = new MeasurementDataTrait(schedule, this.binaryInfo.getBuilt());
                 report.addData(trait);
             } else if (metricName.equals("rhq_avail_ping_time")) {
                 if (availPingTime == -1)
                     continue; // Skip if we have no data
                 MeasurementDataNumeric num = new MeasurementDataNumeric(schedule, (double) availPingTime);
                 report.addData(num);
             } else if (values.containsKey(metricName)) {
                 if (schedule.getDataType()== DataType.TRAIT) {
                    String val = values.get(metricName);
                    MeasurementDataTrait mdt = new MeasurementDataTrait(schedule,val);
                    if (LOG.isDebugEnabled()) {
                        LOG.debug("Collected BMX metric [" + metricName + "], value = " + val);
                    }
                    report.addData(mdt);
                 } else {
                    String s = values.get(metricName);
                    if (s.endsWith("u"))
                        s = s.substring(0,s.length()-1);
                    Double val = Double.valueOf(s);
                    if (LOG.isDebugEnabled()) {
                        LOG.debug("Collected BMX metric [" + metricName + "], value = " + val);
                    }
                    MeasurementDataNumeric mdn = new MeasurementDataNumeric(schedule,val);
                    report.addData(mdn);
                 }
             } else {
                 LOG.warn("BMX metric [" + metricName + "] not found");
             }
View Full Code Here

TOP

Related Classes of org.rhq.core.domain.measurement.MeasurementDataNumeric

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.