Package org.apache.flink.autoscaler
Class ScalingMetricCollector<KEY,Context extends JobAutoScalerContext<KEY>>
- java.lang.Object
-
- org.apache.flink.autoscaler.ScalingMetricCollector<KEY,Context>
-
- Direct Known Subclasses:
RestApiMetricsCollector
public abstract class ScalingMetricCollector<KEY,Context extends JobAutoScalerContext<KEY>> extends java.lang.Object
Metric collector using flink rest api.
-
-
Field Summary
Fields Modifier and Type Field Description protected java.util.Map<KEY,java.lang.Boolean>
jobsWithGcMetrics
-
Constructor Summary
Constructors Constructor Description ScalingMetricCollector()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description void
cleanup(KEY jobKey)
protected java.util.Map<KEY,java.util.Map<org.apache.flink.runtime.jobgraph.JobVertexID,java.util.Map<java.lang.String,FlinkMetric>>>
getAvailableVertexMetricNames()
protected java.util.Map<KEY,java.util.SortedMap<java.time.Instant,CollectedMetrics>>
getHistories()
JobDetailsInfo
getJobDetailsInfo(JobAutoScalerContext<KEY> context, java.time.Duration clientTimeout)
protected java.time.Instant
getJobRunningTs(JobDetailsInfo jobDetailsInfo)
protected JobTopology
getJobTopology(Context ctx, AutoScalerStateStore<KEY,Context> stateStore, JobDetailsInfo jobDetailsInfo)
protected JobTopology
getJobTopology(JobDetailsInfo jobDetailsInfo)
protected java.time.Duration
getMetricWindowSize(org.apache.flink.configuration.Configuration conf)
protected java.util.Collection<java.lang.String>
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(Context ctx, 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(Context ctx, JobTopology topology)
Query the available metric names for each job vertex.protected abstract java.util.Map<FlinkMetric,org.apache.flink.runtime.rest.messages.job.metrics.Metric>
queryJmMetrics(Context ctx)
protected abstract java.util.Map<FlinkMetric,org.apache.flink.runtime.rest.messages.job.metrics.AggregatedMetric>
queryTmMetrics(Context ctx)
protected void
setClock(java.time.Clock clock)
CollectedMetricHistory
updateMetrics(Context ctx, AutoScalerStateStore<KEY,Context> stateStore)
-
-
-
Field Detail
-
jobsWithGcMetrics
protected final java.util.Map<KEY,java.lang.Boolean> jobsWithGcMetrics
-
-
Method Detail
-
updateMetrics
public CollectedMetricHistory updateMetrics(Context ctx, AutoScalerStateStore<KEY,Context> stateStore) throws java.lang.Exception
- Throws:
java.lang.Exception
-
queryJmMetrics
protected abstract java.util.Map<FlinkMetric,org.apache.flink.runtime.rest.messages.job.metrics.Metric> queryJmMetrics(Context ctx) throws java.lang.Exception
- Throws:
java.lang.Exception
-
queryTmMetrics
protected abstract java.util.Map<FlinkMetric,org.apache.flink.runtime.rest.messages.job.metrics.AggregatedMetric> queryTmMetrics(Context ctx) throws java.lang.Exception
- Throws:
java.lang.Exception
-
getMetricWindowSize
protected java.time.Duration getMetricWindowSize(org.apache.flink.configuration.Configuration conf)
-
getJobRunningTs
@VisibleForTesting protected java.time.Instant getJobRunningTs(JobDetailsInfo jobDetailsInfo)
-
getJobTopology
protected JobTopology getJobTopology(Context ctx, AutoScalerStateStore<KEY,Context> stateStore, JobDetailsInfo jobDetailsInfo) throws java.lang.Exception
- Throws:
java.lang.Exception
-
getJobTopology
@VisibleForTesting protected JobTopology getJobTopology(JobDetailsInfo jobDetailsInfo)
-
queryFilteredMetricNames
protected java.util.Map<org.apache.flink.runtime.jobgraph.JobVertexID,java.util.Map<java.lang.String,FlinkMetric>> queryFilteredMetricNames(Context ctx, JobTopology topology)
Query the available metric names for each job vertex.
-
queryAggregatedMetricNames
@VisibleForTesting protected java.util.Collection<java.lang.String> queryAggregatedMetricNames(org.apache.flink.client.program.rest.RestClusterClient<?> restClient, org.apache.flink.api.common.JobID jobID, org.apache.flink.runtime.jobgraph.JobVertexID jobVertexID)
-
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(Context ctx, java.util.Map<org.apache.flink.runtime.jobgraph.JobVertexID,java.util.Map<java.lang.String,FlinkMetric>> filteredVertexMetricNames)
-
getJobDetailsInfo
public JobDetailsInfo getJobDetailsInfo(JobAutoScalerContext<KEY> context, java.time.Duration clientTimeout) throws java.lang.Exception
- Throws:
java.lang.Exception
-
cleanup
public void cleanup(KEY jobKey)
-
setClock
@VisibleForTesting protected void setClock(java.time.Clock clock)
-
getAvailableVertexMetricNames
@VisibleForTesting protected java.util.Map<KEY,java.util.Map<org.apache.flink.runtime.jobgraph.JobVertexID,java.util.Map<java.lang.String,FlinkMetric>>> getAvailableVertexMetricNames()
-
getHistories
@VisibleForTesting protected java.util.Map<KEY,java.util.SortedMap<java.time.Instant,CollectedMetrics>> getHistories()
-
-