Class ScalingMetricCollector

  • Direct Known Subclasses:
    RestApiMetricsCollector

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

      All Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      void cleanup​(AbstractFlinkResource<?,​?> cr)  
      protected java.util.Map<io.javaoperatorsdk.operator.processing.event.ResourceID,​java.util.Map<org.apache.flink.runtime.jobgraph.JobVertexID,​java.util.Map<java.lang.String,​FlinkMetric>>> getAvailableVertexMetricNames()  
      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)
      Query and filter metric names for a given job vertex.
      protected java.util.Map<io.javaoperatorsdk.operator.processing.event.ResourceID,​java.util.SortedMap<java.time.Instant,​CollectedMetrics>> getHistories()  
      protected JobTopology getJobTopology​(FlinkService flinkService, org.apache.flink.configuration.Configuration conf, AutoScalerInfo scalerInfo, org.apache.flink.runtime.rest.messages.job.JobDetailsInfo jobDetailsInfo)  
      protected JobTopology getJobTopology​(org.apache.flink.runtime.rest.messages.job.JobDetailsInfo jobDetailsInfo)  
      protected java.time.Instant getJobUpdateTs​(org.apache.flink.runtime.rest.messages.job.JobDetailsInfo jobDetailsInfo)  
      protected java.time.Duration getMetricWindowSize​(org.apache.flink.configuration.Configuration conf)  
      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)  
      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)  
      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.
      protected void setClock​(java.time.Clock clock)  
      CollectedMetricHistory updateMetrics​(AbstractFlinkResource<?,​?> cr, AutoScalerInfo autoscalerInfo, FlinkService flinkService, org.apache.flink.configuration.Configuration conf)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • ScalingMetricCollector

        public ScalingMetricCollector()
    • Method Detail

      • getMetricWindowSize

        protected java.time.Duration getMetricWindowSize​(org.apache.flink.configuration.Configuration conf)
      • getJobUpdateTs

        @VisibleForTesting
        protected java.time.Instant getJobUpdateTs​(org.apache.flink.runtime.rest.messages.job.JobDetailsInfo jobDetailsInfo)
      • getJobTopology

        protected JobTopology getJobTopology​(FlinkService flinkService,
                                             org.apache.flink.configuration.Configuration conf,
                                             AutoScalerInfo scalerInfo,
                                             org.apache.flink.runtime.rest.messages.job.JobDetailsInfo jobDetailsInfo)
                                      throws java.lang.Exception
        Throws:
        java.lang.Exception
      • getJobTopology

        @VisibleForTesting
        protected JobTopology getJobTopology​(org.apache.flink.runtime.rest.messages.job.JobDetailsInfo jobDetailsInfo)
      • 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.
      • 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)
        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,​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,​CollectedMetrics>> getHistories()