protected override async Task ReportMetrics()

in src/Core/Exporters/Concrete/YarnResourceManagerExporter.cs [90:170]


        protected override async Task ReportMetrics(object component)
        {
            await Task.Factory.StartNew(() =>
            {
                var resourceManagerComponent = (ResourceManagerComponent)component;

                // Constructing labels
                var labels = new Dictionary<string, string>()
                {
                    { "ClusterName", resourceManagerComponent.Info.ClusterName },
                    { "Component", resourceManagerComponent.Info.ComponentName },
                };
                labels.TryAdd(_exporterConfiguration.DefaultLabels);

                // General info
                PrometheusUtils.ReportGauge(Collectors, "Info_StartTime", resourceManagerComponent.Info.StartTime, labels);
                PrometheusUtils.ReportGauge(Collectors, "Info_StartedCount", resourceManagerComponent.Info.StartedCount, labels);
                PrometheusUtils.ReportGauge(Collectors, "Info_TotalCount", resourceManagerComponent.Info.TotalCount, labels);
                PrometheusUtils.ReportGauge(Collectors, "Info_UnknownCount", resourceManagerComponent.Info.UnknownCount, labels);

                // Yarn queues
                ReportQueueMetrics(resourceManagerComponent.Metrics.YarnMetrics.Queues.Root, labels);
                foreach (var queue in resourceManagerComponent.Metrics.YarnMetrics.Queues.Root.GetChildrenQueuesIEnumerable())
                {
                    ReportQueueMetrics(queue, labels);
                }

                // Node Manager
                PrometheusUtils.ReportGauge(Collectors, "NumActiveNMs", resourceManagerComponent.Metrics.YarnMetrics.YarnResourceManagerClusterMetrics.NumActiveNMs, labels);
                PrometheusUtils.ReportGauge(Collectors, "NumDecommissionedNMs", resourceManagerComponent.Metrics.YarnMetrics.YarnResourceManagerClusterMetrics.NumDecommissionedNMs, labels);
                PrometheusUtils.ReportGauge(Collectors, "NumLostNMs", resourceManagerComponent.Metrics.YarnMetrics.YarnResourceManagerClusterMetrics.NumLostNMs, labels);
                PrometheusUtils.ReportGauge(Collectors, "NumRebootedNMs", resourceManagerComponent.Metrics.YarnMetrics.YarnResourceManagerClusterMetrics.NumRebootedNMs, labels);
                PrometheusUtils.ReportGauge(Collectors, "NumUnhealthyNMs", resourceManagerComponent.Metrics.YarnMetrics.YarnResourceManagerClusterMetrics.NumUnhealthyNMs, labels);

                // HdfsNameNodeJvm
                PrometheusUtils.ReportGauge(Collectors, "Jvm_HeapMemoryMax", resourceManagerComponent.Metrics.ResourceManagerJvm.HeapMemoryMax, labels);
                PrometheusUtils.ReportGauge(Collectors, "Jvm_HeapMemoryUsed", resourceManagerComponent.Metrics.ResourceManagerJvm.HeapMemoryUsed, labels);
                PrometheusUtils.ReportGauge(Collectors, "Jvm_NonHeapMemoryMax", resourceManagerComponent.Metrics.ResourceManagerJvm.NonHeapMemoryMax, labels);
                PrometheusUtils.ReportGauge(Collectors, "Jvm_NonHeapMemoryUsed", resourceManagerComponent.Metrics.ResourceManagerJvm.NonHeapMemoryUsed, labels);
                PrometheusUtils.ReportGauge(Collectors, "Jvm_GcCount", resourceManagerComponent.Metrics.ResourceManagerJvm.GcCount, labels);
                PrometheusUtils.ReportGauge(Collectors, "Jvm_GcTimeMillis", resourceManagerComponent.Metrics.ResourceManagerJvm.GcTimeMillis, labels);
                PrometheusUtils.ReportGauge(Collectors, "Jvm_LogError", resourceManagerComponent.Metrics.ResourceManagerJvm.LogError, labels);
                PrometheusUtils.ReportGauge(Collectors, "Jvm_LogFatal", resourceManagerComponent.Metrics.ResourceManagerJvm.LogFatal, labels);
                PrometheusUtils.ReportGauge(Collectors, "Jvm_LogInfo", resourceManagerComponent.Metrics.ResourceManagerJvm.LogInfo, labels);
                PrometheusUtils.ReportGauge(Collectors, "Jvm_LogWarn", resourceManagerComponent.Metrics.ResourceManagerJvm.LogWarn, labels);
                PrometheusUtils.ReportGauge(Collectors, "Jvm_MemHeapCommittedM", resourceManagerComponent.Metrics.ResourceManagerJvm.MemHeapCommittedM, labels);
                PrometheusUtils.ReportGauge(Collectors, "Jvm_MemHeapUsedMB", resourceManagerComponent.Metrics.ResourceManagerJvm.MemHeapUsedMB, labels);
                PrometheusUtils.ReportGauge(Collectors, "Jvm_MemMaxMB", resourceManagerComponent.Metrics.ResourceManagerJvm.MemMaxMB, labels);
                PrometheusUtils.ReportGauge(Collectors, "Jvm_MemNonHeapCommittedMB", resourceManagerComponent.Metrics.ResourceManagerJvm.MemNonHeapCommittedMB, labels);
                PrometheusUtils.ReportGauge(Collectors, "Jvm_MemNonHeapUsedMB", resourceManagerComponent.Metrics.ResourceManagerJvm.MemNonHeapUsedMB, labels);
                PrometheusUtils.ReportGauge(Collectors, "Jvm_ThreadsBlocked", resourceManagerComponent.Metrics.ResourceManagerJvm.ThreadsBlocked, labels);
                PrometheusUtils.ReportGauge(Collectors, "Jvm_ThreadsNew", resourceManagerComponent.Metrics.ResourceManagerJvm.ThreadsNew, labels);
                PrometheusUtils.ReportGauge(Collectors, "Jvm_ThreadsRunnable", resourceManagerComponent.Metrics.ResourceManagerJvm.ThreadsRunnable, labels);
                PrometheusUtils.ReportGauge(Collectors, "Jvm_ThreadsTerminated", resourceManagerComponent.Metrics.ResourceManagerJvm.ThreadsTerminated, labels);
                PrometheusUtils.ReportGauge(Collectors, "Jvm_ThreadsTimedWaiting", resourceManagerComponent.Metrics.ResourceManagerJvm.ThreadsTimedWaiting, labels);
                PrometheusUtils.ReportGauge(Collectors, "Jvm_ThreadsWaiting", resourceManagerComponent.Metrics.ResourceManagerJvm.ThreadsWaiting, labels);

                // YarnResourceManagerRpc
                PrometheusUtils.ReportGauge(Collectors, "Rpc_NumOpenConnections", resourceManagerComponent.Metrics.ResourceManagerYarnResourceManagerRpc.NumOpenConnections, labels);
                PrometheusUtils.ReportGauge(Collectors, "Rpc_ReceivedBytes", resourceManagerComponent.Metrics.ResourceManagerYarnResourceManagerRpc.ReceivedBytes, labels);
                PrometheusUtils.ReportGauge(Collectors, "Rpc_RpcProcessingTime_avg_time", resourceManagerComponent.Metrics.ResourceManagerYarnResourceManagerRpc.RpcProcessingTime_avg_time, labels);
                PrometheusUtils.ReportGauge(Collectors, "Rpc_RpcProcessingTime_num_ops", resourceManagerComponent.Metrics.ResourceManagerYarnResourceManagerRpc.RpcProcessingTime_num_ops, labels);
                PrometheusUtils.ReportGauge(Collectors, "Rpc_RpcQueueTime_avg_time", resourceManagerComponent.Metrics.ResourceManagerYarnResourceManagerRpc.RpcQueueTime_avg_time, labels);
                PrometheusUtils.ReportGauge(Collectors, "Rpc_RpcQueueTime_num_ops", resourceManagerComponent.Metrics.ResourceManagerYarnResourceManagerRpc.RpcQueueTime_num_ops, labels);
                PrometheusUtils.ReportGauge(Collectors, "Rpc_SentBytes", resourceManagerComponent.Metrics.ResourceManagerYarnResourceManagerRpc.SentBytes, labels);
                PrometheusUtils.ReportGauge(Collectors, "Rpc_CallQueueLen", resourceManagerComponent.Metrics.ResourceManagerYarnResourceManagerRpc.CallQueueLen, labels);
                PrometheusUtils.ReportGauge(Collectors, "Rpc_RpcAuthenticationFailures", resourceManagerComponent.Metrics.ResourceManagerYarnResourceManagerRpc.RpcAuthenticationFailures, labels);
                PrometheusUtils.ReportGauge(Collectors, "Rpc_RpcAuthenticationSuccesses", resourceManagerComponent.Metrics.ResourceManagerYarnResourceManagerRpc.RpcAuthenticationSuccesses, labels);
                PrometheusUtils.ReportGauge(Collectors, "Rpc_RpcAuthorizationFailures", resourceManagerComponent.Metrics.ResourceManagerYarnResourceManagerRpc.RpcAuthorizationFailures, labels);
                PrometheusUtils.ReportGauge(Collectors, "Rpc_RpcAuthorizationSuccesses", resourceManagerComponent.Metrics.ResourceManagerYarnResourceManagerRpc.RpcAuthorizationSuccesses, labels);

                // Runtime
                PrometheusUtils.ReportGauge(Collectors, "Runtime_StartTime", resourceManagerComponent.Metrics.Runtime.StartTime, labels);

                // Ugi
                PrometheusUtils.ReportGauge(Collectors, "Ugi_LoginFailure_avg_time", resourceManagerComponent.Metrics.Ugi.LoginFailure_avg_time, labels);
                PrometheusUtils.ReportGauge(Collectors, "Ugi_LoginFailure_num_ops", resourceManagerComponent.Metrics.Ugi.LoginFailure_num_ops, labels);
                PrometheusUtils.ReportGauge(Collectors, "Ugi_LoginSuccess_avg_time", resourceManagerComponent.Metrics.Ugi.LoginSuccess_avg_time, labels);
                PrometheusUtils.ReportGauge(Collectors, "Ugi_LoginSuccess_num_ops", resourceManagerComponent.Metrics.Ugi.LoginSuccess_num_ops, labels);
            });
        }