Search in sources :

Example 16 with Gauge

use of org.apache.flink.metrics.Gauge in project flink by apache.

the class MetricQueryService method onReceive.

@Override
public void onReceive(Object message) {
    try {
        if (message instanceof AddMetric) {
            AddMetric added = (AddMetric) message;
            String metricName = added.metricName;
            Metric metric = added.metric;
            AbstractMetricGroup group = added.group;
            QueryScopeInfo info = group.getQueryServiceMetricInfo(FILTER);
            if (metric instanceof Counter) {
                counters.put((Counter) metric, new Tuple2<>(info, FILTER.filterCharacters(metricName)));
            } else if (metric instanceof Gauge) {
                gauges.put((Gauge<?>) metric, new Tuple2<>(info, FILTER.filterCharacters(metricName)));
            } else if (metric instanceof Histogram) {
                histograms.put((Histogram) metric, new Tuple2<>(info, FILTER.filterCharacters(metricName)));
            } else if (metric instanceof Meter) {
                meters.put((Meter) metric, new Tuple2<>(info, FILTER.filterCharacters(metricName)));
            }
        } else if (message instanceof RemoveMetric) {
            Metric metric = (((RemoveMetric) message).metric);
            if (metric instanceof Counter) {
                this.counters.remove(metric);
            } else if (metric instanceof Gauge) {
                this.gauges.remove(metric);
            } else if (metric instanceof Histogram) {
                this.histograms.remove(metric);
            } else if (metric instanceof Meter) {
                this.meters.remove(metric);
            }
        } else if (message instanceof CreateDump) {
            MetricDumpSerialization.MetricSerializationResult dump = serializer.serialize(counters, gauges, histograms, meters);
            getSender().tell(dump, getSelf());
        } else {
            LOG.warn("MetricQueryServiceActor received an invalid message. " + message.toString());
            getSender().tell(new Status.Failure(new IOException("MetricQueryServiceActor received an invalid message. " + message.toString())), getSelf());
        }
    } catch (Exception e) {
        LOG.warn("An exception occurred while processing a message.", e);
    }
}
Also used : Status(akka.actor.Status) Histogram(org.apache.flink.metrics.Histogram) Meter(org.apache.flink.metrics.Meter) IOException(java.io.IOException) IOException(java.io.IOException) Gauge(org.apache.flink.metrics.Gauge) Counter(org.apache.flink.metrics.Counter) Tuple2(org.apache.flink.api.java.tuple.Tuple2) Metric(org.apache.flink.metrics.Metric) AbstractMetricGroup(org.apache.flink.runtime.metrics.groups.AbstractMetricGroup)

Example 17 with Gauge

use of org.apache.flink.metrics.Gauge in project flink by apache.

the class TaskExecutorMetricsInitializer method instantiateCPUMetrics.

private static void instantiateCPUMetrics(MetricGroup metrics) {
    try {
        final OperatingSystemMXBean mxBean = (OperatingSystemMXBean) ManagementFactory.getOperatingSystemMXBean();
        metrics.<Double, Gauge<Double>>gauge("Load", new Gauge<Double>() {

            @Override
            public Double getValue() {
                return mxBean.getProcessCpuLoad();
            }
        });
        metrics.<Long, Gauge<Long>>gauge("Time", new Gauge<Long>() {

            @Override
            public Long getValue() {
                return mxBean.getProcessCpuTime();
            }
        });
    } catch (Exception e) {
        LOG.warn("Cannot access com.sun.management.OperatingSystemMXBean.getProcessCpuLoad()" + " - CPU load metrics will not be available.", e);
    }
}
Also used : OperatingSystemMXBean(com.sun.management.OperatingSystemMXBean) AttributeNotFoundException(javax.management.AttributeNotFoundException) MalformedObjectNameException(javax.management.MalformedObjectNameException) MBeanException(javax.management.MBeanException) InstanceNotFoundException(javax.management.InstanceNotFoundException) ReflectionException(javax.management.ReflectionException) Gauge(org.apache.flink.metrics.Gauge)

Aggregations

Gauge (org.apache.flink.metrics.Gauge)17 Counter (org.apache.flink.metrics.Counter)7 Histogram (org.apache.flink.metrics.Histogram)7 Meter (org.apache.flink.metrics.Meter)7 Test (org.junit.Test)7 MetricGroup (org.apache.flink.metrics.MetricGroup)5 ObjectName (javax.management.ObjectName)4 Configuration (org.apache.flink.configuration.Configuration)4 SimpleCounter (org.apache.flink.metrics.SimpleCounter)4 MetricRegistry (org.apache.flink.runtime.metrics.MetricRegistry)4 MetricRegistryConfiguration (org.apache.flink.runtime.metrics.MetricRegistryConfiguration)4 TaskManagerMetricGroup (org.apache.flink.runtime.metrics.groups.TaskManagerMetricGroup)4 MalformedObjectNameException (javax.management.MalformedObjectNameException)3 Tuple2 (org.apache.flink.api.java.tuple.Tuple2)3 MetricReporter (org.apache.flink.metrics.reporter.MetricReporter)3 IOException (java.io.IOException)2 HashMap (java.util.HashMap)2 MBeanServer (javax.management.MBeanServer)2 Metric (org.apache.flink.metrics.Metric)2 TestingHistogram (org.apache.flink.runtime.metrics.util.TestingHistogram)2