Class ScalingMetricCollector

  • Direct Known Subclasses:
    RestApiMetricsCollector

    public abstract class ScalingMetricCollector
    extends java.lang.Object
    Metric collector using flink rest api.
    • Constructor Detail

      • ScalingMetricCollector

        public ScalingMetricCollector()
    • Method Detail

      • queryJobTopology

        @VisibleForTesting
        protected JobTopology queryJobTopology​(org.apache.flink.client.program.rest.RestClusterClient<java.lang.String> restClient,
                                               org.apache.flink.api.common.JobID jobId)
      • queryFilteredMetricNames

        protected java.util.Map<org.apache.flink.runtime.jobgraph.JobVertexID,​java.util.Map<java.lang.String,​FlinkMetric>> queryFilteredMetricNames​(FlinkService flinkService,
                                                                                                                                                                AbstractFlinkResource<?,​?> cr,
                                                                                                                                                                org.apache.flink.configuration.Configuration conf,
                                                                                                                                                                JobTopology topology)
        Query the available metric names for each job vertex for the current spec generation.
      • getFilteredVertexMetricNames

        protected java.util.Map<java.lang.String,​FlinkMetric> getFilteredVertexMetricNames​(org.apache.flink.client.program.rest.RestClusterClient<?> restClient,
                                                                                                 org.apache.flink.api.common.JobID jobID,
                                                                                                 org.apache.flink.runtime.jobgraph.JobVertexID jobVertexID,
                                                                                                 JobTopology topology,
                                                                                                 org.apache.flink.configuration.Configuration conf)
        Query and filter metric names for a given job vertex.
        Parameters:
        restClient - Flink rest client.
        jobID - Job Id.
        jobVertexID - Job Vertex Id.
        Returns:
        Map of filtered metric names.
      • queryAggregatedMetricNames

        @VisibleForTesting
        protected java.util.Collection<org.apache.flink.runtime.rest.messages.job.metrics.AggregatedMetric> queryAggregatedMetricNames​(org.apache.flink.client.program.rest.RestClusterClient<?> restClient,
                                                                                                                                       org.apache.flink.api.common.JobID jobID,
                                                                                                                                       org.apache.flink.runtime.jobgraph.JobVertexID jobVertexID)
                                                                                                                                throws java.lang.Exception
        Throws:
        java.lang.Exception
      • queryAllAggregatedMetrics

        protected abstract java.util.Map<org.apache.flink.runtime.jobgraph.JobVertexID,​java.util.Map<FlinkMetric,​org.apache.flink.runtime.rest.messages.job.metrics.AggregatedMetric>> queryAllAggregatedMetrics​(AbstractFlinkResource<?,​?> cr,
                                                                                                                                                                                                                             FlinkService flinkService,
                                                                                                                                                                                                                             org.apache.flink.configuration.Configuration conf,
                                                                                                                                                                                                                             java.util.Map<org.apache.flink.runtime.jobgraph.JobVertexID,​java.util.Map<java.lang.String,​FlinkMetric>> filteredVertexMetricNames)
      • setClock

        @VisibleForTesting
        protected void setClock​(java.time.Clock clock)
      • getAvailableVertexMetricNames

        @VisibleForTesting
        protected java.util.Map<io.javaoperatorsdk.operator.processing.event.ResourceID,​org.apache.flink.api.java.tuple.Tuple2<java.lang.Long,​java.util.Map<org.apache.flink.runtime.jobgraph.JobVertexID,​java.util.Map<java.lang.String,​FlinkMetric>>>> getAvailableVertexMetricNames()
      • getHistories

        @VisibleForTesting
        protected java.util.Map<io.javaoperatorsdk.operator.processing.event.ResourceID,​java.util.SortedMap<java.time.Instant,​java.util.Map<org.apache.flink.runtime.jobgraph.JobVertexID,​java.util.Map<ScalingMetric,​java.lang.Double>>>> getHistories()
      • getTopologies

        @VisibleForTesting
        protected java.util.Map<io.javaoperatorsdk.operator.processing.event.ResourceID,​JobTopology> getTopologies()