601. 注册指标,可以从getRuntimeContext(). getMetricGroup()返回MetricGroup对象,然后就能创建和注册新指标;度量类型包括Counters、Gauges、Histograms、Meters
602. Counter是计数器,方法有inc()、dec(),也可以自定义Counter;Gauges是测量,来自接口flink.metrics.Gauge,返回值类型没有限制;Histogram是直方图,方法有update,可以利用flink-metrics-dropwizard注册一个Codahale/DropWizard直方图;Meter是仪表,可用markEvent()注册事件的发生,meter()注册仪表。可用flink-metrics-dropwizard打包器注册仪表
603. 范围(scope)包括系统范围和用户范围,用metrics.scope.delimiter分割。用户范围可用MetricGroup#addGroup和#getMetricIndentifier以及#getScopeComponents。系统范围包含上下文信息,比如任务属于哪个作业,配置有metrics.scope.jm/tm/task/operator等
604. reporter是报告,具体配置有metrics.reporter.name.xxx等,可通过flink. metrics. reporter. MetricReporter接口编写自己的报告,比如JMX报告、Ganglia报告、Graphite报告、Prometheus报告、PrometheusPushGateway报告、StatsD报告、Datadog报告、Slf4j报告等。
605. 系统指标包括5列:范围、中缀、度量、描述、类型。具体指标大类分为cpu、内存、线程、垃圾收集、类加载器、网络、集群、可用性、检查点、io、连接器、系统资源、系统cpu、系统内存、系统网络等。
606. 延迟跟踪要设置latencyTrackingInterval,此时源会定期发送特殊记录叫做LatencyMarker,所有中间算子都会保存每个源的最后一个延迟列表,以计算延迟分布。建议延迟指标只用于调试,因为会影响性能。
607. rest api可以查询度量指标,包括TM、JM、job等信息; 日志可使用log4j或logback,前者配置有log4j-cli.prooerties、log4j-yarn-session.properties、log4j.properties;logback配置有-Dlogback. configuration等,文件有logback.xml
608. 历史服务器提供了rest api,可查询JM归档的已完成作业的状态和统计信息。用historyserver.sh 启动,端口为8082;历史服务器的相关配置有historyserver.archive.fs.dir、historyserver.archive.fs.refresh-interval以及historyserver.web.tmpdir
609. 监控检查点包括:检查点计数(各种状态的)、最新完成的检查点、最新失败的检查点、最新保存点、最新还原
610. 检查点历史选项卡包括:id、状态、触发时间、最新确认、状态大小、端到端持续时间、对齐期间缓冲
611. 反压是指生成数据比下游算子消耗的速度快,于是下游记录往相反方向传播到上游。sink向上游算子施加压力
612. 采样线程,是反压检测通过反复获取正在运行的任务的堆栈跟踪样本来工作,即Thread.getStackTrace(),如果线程卡在某个内部方法调用,则存在反压。默认情况,JM为每个任务每50ms触发100个堆栈跟踪,来确定反压。
613. 以下配置JM的样本数:web. backpressure. refresh-interval、web.backpressure. num-samples、web. backpressure. delay-between-samples;反压状态有ok、low、high,其中high表示任务被加压,用红色表示
614. flink可以监控正在运行的作业的状态和统计信息,和完成的作业,用rest api表示。默认监听8081,可在rest.port配置。它和web仪表盘服务器在同一端口
615. rest api在flink-runtime中,具体是runtime.webmonitor.WebMonitorEndpoint,用netty和netty router库来处理rest请求。相关接口包括MessageHeaders、AbstractRestHandler等,实例有JobExceptionsHandler和JobExceptionHeaders
616. rest api具体分为/cluster、/config、/jars、/jobmanager、/jobs、/overview、/savepoint-disposal、/taskmanagers,其中/jobs下的url最多
617. /jobs可以取消job(用cancel)、使用保存点取消job(用cancel-with-savepoint) ;/jars可以上传jar(用post)
618. 可用currentLowWatermark监控最低水印,表示当前事件时间,该值由上游算子收到的所有水印的最小值来计算。
619. flink的类加载包括,java类路径(jdk库、flink依赖的库),和动态用户代码(动态提交的作业);来自会话(rest/cli)提交的作业的类都是动态加载的
620. yarn的类加载情况:当直接向y