protected override async Task ReportMetrics()

in src/Core/Exporters/Concrete/HostExporter.cs [37:86]


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

                // Constructing labels
                var labels = new Dictionary<string, string>()
                {
                    { "ClusterName", clusterComponent.HostDetails.ClusterName },
                    { "Component", $"Hosts/{clusterComponent.HostDetails.HostName}" },
                };
                labels.TryAdd(_hostConfiguration.DefaultLabels);

                // Disk
                PrometheusUtils.ReportGauge(Collectors, "Disk_Free", clusterComponent.Metrics.Disk.Free, labels);
                PrometheusUtils.ReportGauge(Collectors, "Disk_ReadBytes", clusterComponent.Metrics.Disk.ReadBytes, labels);
                PrometheusUtils.ReportGauge(Collectors, "Disk_ReadCount", clusterComponent.Metrics.Disk.ReadCount, labels);
                PrometheusUtils.ReportGauge(Collectors, "Disk_ReadTime", clusterComponent.Metrics.Disk.ReadTime, labels);
                PrometheusUtils.ReportGauge(Collectors, "Disk_Disk", clusterComponent.Metrics.Disk.Total, labels);
                PrometheusUtils.ReportGauge(Collectors, "Disk_WriteBytes", clusterComponent.Metrics.Disk.WriteBytes, labels);
                PrometheusUtils.ReportGauge(Collectors, "Disk_WriteCount", clusterComponent.Metrics.Disk.WriteCount, labels);
                PrometheusUtils.ReportGauge(Collectors, "Disk_WriteTime", clusterComponent.Metrics.Disk.WriteTime, labels);

                // Cpu
                PrometheusUtils.ReportGauge(Collectors, "HostCpu_Idle", clusterComponent.Metrics.HostCpu.Idle, labels);
                PrometheusUtils.ReportGauge(Collectors, "HostCpu_Nice", clusterComponent.Metrics.HostCpu.Nice, labels);
                PrometheusUtils.ReportGauge(Collectors, "HostCpu_Num", clusterComponent.Metrics.HostCpu.Num, labels);
                PrometheusUtils.ReportGauge(Collectors, "HostCpu_System", clusterComponent.Metrics.HostCpu.System, labels);
                PrometheusUtils.ReportGauge(Collectors, "HostCpu_User", clusterComponent.Metrics.HostCpu.User, labels);
                PrometheusUtils.ReportGauge(Collectors, "HostCpu_Wio", clusterComponent.Metrics.HostCpu.Wio, labels);

                // Memory
                PrometheusUtils.ReportGauge(Collectors, "Memory_CachedKb", clusterComponent.Metrics.Memory.CachedKb, labels);
                PrometheusUtils.ReportGauge(Collectors, "Memory_FreeKb", clusterComponent.Metrics.Memory.FreeKb, labels);
                PrometheusUtils.ReportGauge(Collectors, "Memory_Critical", clusterComponent.Metrics.Memory.SharedKb, labels);
                PrometheusUtils.ReportGauge(Collectors, "Memory_SwapFreeKb", clusterComponent.Metrics.Memory.SwapFreeKb, labels);
                PrometheusUtils.ReportGauge(Collectors, "Memory_TotalKb", clusterComponent.Metrics.Memory.TotalKb, labels);

                // Network
                PrometheusUtils.ReportGauge(Collectors, "Network_BytesIn", clusterComponent.Metrics.Network.BytesIn, labels);
                PrometheusUtils.ReportGauge(Collectors, "Network_BytesOut", clusterComponent.Metrics.Network.BytesOut, labels);
                PrometheusUtils.ReportGauge(Collectors, "Network_PktsIn", clusterComponent.Metrics.Network.PktsIn, labels);
                PrometheusUtils.ReportGauge(Collectors, "Network_PktsOut", clusterComponent.Metrics.Network.PktsOut, labels);

                // Processes
                PrometheusUtils.ReportGauge(Collectors, "Process_Run", clusterComponent.Metrics.Process.Run, labels);
                PrometheusUtils.ReportGauge(Collectors, "Process_Total", clusterComponent.Metrics.Process.Total, labels);
            });
        }