/* Copyright (c) Advanced Micro Devices, Inc. All rights reserved. Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. */ //---------------------------------------------------------------------------- /// /// \file /// AMD Metrics Exporter configs /// //---------------------------------------------------------------------------- syntax = "proto3"; option go_package = "gen/exportermetrics"; package exportermetrics; // list of common labels between GPU and NIC enum MetricLabel { // cluster name CLUSTER_NAME = 0; // mandatory field HOSTNAME cannot be disabled HOSTNAME = 1; // mandatory SERIAL_NUMBER cannot be disabled SERIAL_NUMBER = 2; // mandatory field POD cannot be disabled POD = 3; // mandatory field NAMESPACE cannot be disabled NAMESPACE = 4; // mandatory field CONTAINER cannot be disabled CONTAINER = 5; // mandatory field JOB_ID cannot be disabled (for GPU Metrics) JOB_ID = 6; // mandatory field JOB_USER cannot be disabled (for GPU Metrics) JOB_USER = 7; // mandatory field JOB_PARTITION cannot be disabled (for GPU Metrics) JOB_PARTITION = 8; // Card related fields CARD_SERIES = 9; // mandatory CARD_MODEL cannot be disabled CARD_MODEL = 10; CARD_VENDOR = 11; DRIVER_VERSION = 12; VBIOS_VERSION = 13; // only valid for k8s deployments POD_UUID = 14; } enum GPUMetricField { GPU_NODES_TOTAL = 0; GPU_PACKAGE_POWER = 1; GPU_AVERAGE_PACKAGE_POWER = 2; GPU_EDGE_TEMPERATURE = 3; GPU_JUNCTION_TEMPERATURE = 4; GPU_MEMORY_TEMPERATURE = 5; GPU_HBM_TEMPERATURE = 6; GPU_GFX_ACTIVITY = 7; GPU_UMC_ACTIVITY = 8; GPU_MMA_ACTIVITY = 9; GPU_VCN_ACTIVITY = 10; GPU_JPEG_ACTIVITY = 11; GPU_VOLTAGE = 12; GPU_GFX_VOLTAGE = 13; GPU_MEMORY_VOLTAGE = 14; PCIE_SPEED = 15; PCIE_MAX_SPEED = 16; PCIE_BANDWIDTH = 17; GPU_ENERGY_CONSUMED = 18; PCIE_REPLAY_COUNT = 19; PCIE_RECOVERY_COUNT = 20; PCIE_REPLAY_ROLLOVER_COUNT = 21; PCIE_NACK_SENT_COUNT = 22; PCIE_NACK_RECEIVED_COUNT = 23; GPU_CLOCK = 24; GPU_POWER_USAGE = 25; GPU_TOTAL_VRAM = 26; GPU_ECC_CORRECT_TOTAL = 27; GPU_ECC_UNCORRECT_TOTAL = 28; GPU_ECC_CORRECT_SDMA = 29; GPU_ECC_UNCORRECT_SDMA = 30; GPU_ECC_CORRECT_GFX = 31; GPU_ECC_UNCORRECT_GFX = 32; GPU_ECC_CORRECT_MMHUB = 33; GPU_ECC_UNCORRECT_MMHUB = 34; GPU_ECC_CORRECT_ATHUB = 35; GPU_ECC_UNCORRECT_ATHUB = 36; GPU_ECC_CORRECT_BIF = 37; GPU_ECC_UNCORRECT_BIF = 38; GPU_ECC_CORRECT_HDP = 39; GPU_ECC_UNCORRECT_HDP = 40; GPU_ECC_CORRECT_XGMI_WAFL = 41; GPU_ECC_UNCORRECT_XGMI_WAFL = 42; GPU_ECC_CORRECT_DF = 43; GPU_ECC_UNCORRECT_DF = 44; GPU_ECC_CORRECT_SMN = 45; GPU_ECC_UNCORRECT_SMN = 46; GPU_ECC_CORRECT_SEM = 47; GPU_ECC_UNCORRECT_SEM = 48; GPU_ECC_CORRECT_MP0 = 49; GPU_ECC_UNCORRECT_MP0 = 50; GPU_ECC_CORRECT_MP1 = 51; GPU_ECC_UNCORRECT_MP1 = 52; GPU_ECC_CORRECT_FUSE = 53; GPU_ECC_UNCORRECT_FUSE = 54; GPU_ECC_CORRECT_UMC = 55; GPU_ECC_UNCORRECT_UMC = 56; GPU_XGMI_NBR_0_NOP_TX = 57; GPU_XGMI_NBR_0_REQ_TX = 58; GPU_XGMI_NBR_0_RESP_TX = 59; GPU_XGMI_NBR_0_BEATS_TX = 60; GPU_XGMI_NBR_1_NOP_TX = 61; GPU_XGMI_NBR_1_REQ_TX = 62; GPU_XGMI_NBR_1_RESP_TX = 63; GPU_XGMI_NBR_1_BEATS_TX = 64; GPU_XGMI_NBR_0_TX_THRPUT = 65; GPU_XGMI_NBR_1_TX_THRPUT = 66; GPU_XGMI_NBR_2_TX_THRPUT = 67; GPU_XGMI_NBR_3_TX_THRPUT = 68; GPU_XGMI_NBR_4_TX_THRPUT = 69; GPU_XGMI_NBR_5_TX_THRPUT = 70; GPU_USED_VRAM = 71; GPU_FREE_VRAM = 72; GPU_TOTAL_VISIBLE_VRAM = 73; GPU_USED_VISIBLE_VRAM = 74; GPU_FREE_VISIBLE_VRAM = 75; GPU_TOTAL_GTT = 76; GPU_USED_GTT = 77; GPU_FREE_GTT = 78; GPU_ECC_CORRECT_MCA = 79; GPU_ECC_UNCORRECT_MCA = 80; GPU_ECC_CORRECT_VCN = 81; GPU_ECC_UNCORRECT_VCN = 82; GPU_ECC_CORRECT_JPEG = 83; GPU_ECC_UNCORRECT_JPEG = 84; GPU_ECC_CORRECT_IH = 85; GPU_ECC_UNCORRECT_IH = 86; GPU_ECC_CORRECT_MPIO = 87; GPU_ECC_UNCORRECT_MPIO = 88; // 1 - healthy, 0 unhealthy GPU_HEALTH = 89; GPU_XGMI_LINK_RX = 90; GPU_XGMI_LINK_TX = 91; // GPU violation accumulated stats GPU_VIOLATION_CURRENT_ACCUMULATED_COUNTER = 92; GPU_VIOLATION_PROCESSOR_HOT_RESIDENCY_ACCUMULATED = 93; GPU_VIOLATION_PPT_RESIDENCY_ACCUMULATED = 94; GPU_VIOLATION_SOCKET_THERMAL_RESIDENCY_ACCUMULATED = 95; GPU_VIOLATION_VR_THERMAL_RESIDENCY_ACCUMULATED = 96; GPU_VIOLATION_HBM_THERMAL_RESIDENCY_ACCUMULATED = 97; /* GPU Instantaneous Activity * XCP Accelerated Compute Processor * also referred to as the Graphics Compute Partitions. * Each physical gpu could have a maximum of 8 separate partitions * associated with each (depending on ASIC support) * XCC - Accelerated Compute Core, the collection of compute units, */ GPU_GFX_BUSY_INSTANTANEOUS = 98; GPU_VCN_BUSY_INSTANTANEOUS = 99; GPU_JPEG_BUSY_INSTANTANEOUS = 100; PCIE_RX = 101; PCIE_TX = 102; PCIE_BIDIRECTIONAL_BANDWIDTH = 103; // Last occured list of AFID errors in a single RAS event GPU_AFID_ERRORS = 104; // 1.8 violation metrics GPU_VIOLATION_PROCESSOR_HOT_RESIDENCY_PERCENTAGE = 105; GPU_VIOLATION_PPT_RESIDENCY_PERCENTAGE = 106; GPU_VIOLATION_SOCKET_THERMAL_RESIDENCY_PERCENTAGE = 107; GPU_VIOLATION_VR_THERMAL_RESIDENCY_PERCENTAGE = 108; GPU_VIOLATION_HBM_THERMAL_RESIDENCY_PERCENTAGE = 109; // partition level violation metrics per xcd GPU_VIOLATION_GFX_CLOCK_BELOW_HOST_LIMIT_POWER_ACCUMULATED = 110; GPU_VIOLATION_GFX_CLOCK_BELOW_HOST_LIMIT_THERMAL_ACCUMULATED = 111; GPU_VIOLATION_LOW_UTILIZATION_ACCUMULATED = 112; GPU_VIOLATION_GFX_CLOCK_BELOW_HOST_LIMIT_TOTAL_ACCUMULATED = 113; GPU_VIOLATION_GFX_CLOCK_BELOW_HOST_LIMIT_POWER_PERCENTAGE = 114; GPU_VIOLATION_GFX_CLOCK_BELOW_HOST_LIMIT_THERMAL_PERCENTAGE = 115; GPU_VIOLATION_LOW_UTILIZATION_PERCENTAGE = 116; GPU_VIOLATION_GFX_CLOCK_BELOW_HOST_LIMIT_TOTAL_PERCENTAGE = 117; // current GFX clock min and max GPU_MAX_CLOCK = 118; GPU_MIN_CLOCK = 119; GPU_PROCESS_CU_OCCUPANCY = 120; GPU_VRAM_MAX_BANDWIDTH = 121; // Deferred ECC error metrics GPU_ECC_DEFERRED_TOTAL = 122; GPU_ECC_DEFERRED_SDMA = 123; GPU_ECC_DEFERRED_GFX = 124; GPU_ECC_DEFERRED_MMHUB = 125; GPU_ECC_DEFERRED_ATHUB = 126; GPU_ECC_DEFERRED_BIF = 127; GPU_ECC_DEFERRED_HDP = 128; GPU_ECC_DEFERRED_XGMI_WAFL = 129; GPU_ECC_DEFERRED_DF = 130; GPU_ECC_DEFERRED_SMN = 131; GPU_ECC_DEFERRED_SEM = 132; GPU_ECC_DEFERRED_MP0 = 133; GPU_ECC_DEFERRED_MP1 = 134; GPU_ECC_DEFERRED_FUSE = 135; GPU_ECC_DEFERRED_UMC = 136; GPU_ECC_DEFERRED_MCA = 137; GPU_ECC_DEFERRED_VCN = 138; GPU_ECC_DEFERRED_JPEG = 139; GPU_ECC_DEFERRED_IH = 140; GPU_ECC_DEFERRED_MPIO = 141; // Profiler Metrics (reserving 801 to 1200) GPU_PROF_GRBM_GUI_ACTIVE = 801; GPU_PROF_SQ_WAVES = 802; GPU_PROF_GRBM_COUNT = 803; GPU_PROF_CPC_CPC_STAT_BUSY = 804; GPU_PROF_CPC_CPC_STAT_IDLE = 805; GPU_PROF_CPC_CPC_STAT_STALL = 806; GPU_PROF_CPC_CPC_TCIU_BUSY = 807; GPU_PROF_CPC_CPC_TCIU_IDLE = 808; GPU_PROF_CPC_CPC_UTCL2IU_BUSY = 809; GPU_PROF_CPC_CPC_UTCL2IU_IDLE = 810; GPU_PROF_CPC_CPC_UTCL2IU_STALL = 811; GPU_PROF_CPC_ME1_BUSY_FOR_PACKET_DECODE = 812; GPU_PROF_CPC_ME1_DC0_SPI_BUSY = 813; GPU_PROF_CPC_UTCL1_STALL_ON_TRANSLATION = 814; GPU_PROF_CPC_ALWAYS_COUNT = 815; GPU_PROF_CPC_ADC_VALID_CHUNK_NOT_AVAIL = 816; GPU_PROF_CPC_ADC_DISPATCH_ALLOC_DONE = 817; GPU_PROF_CPC_ADC_VALID_CHUNK_END = 818; GPU_PROF_CPC_SYNC_FIFO_FULL_LEVEL = 819; GPU_PROF_CPC_SYNC_FIFO_FULL = 820; GPU_PROF_CPC_GD_BUSY = 821; GPU_PROF_CPC_TG_SEND = 822; GPU_PROF_CPC_WALK_NEXT_CHUNK = 823; GPU_PROF_CPC_STALLED_BY_SE0_SPI = 824; GPU_PROF_CPC_STALLED_BY_SE1_SPI = 825; GPU_PROF_CPC_STALLED_BY_SE2_SPI = 826; GPU_PROF_CPC_STALLED_BY_SE3_SPI = 827; GPU_PROF_CPC_LTE_ALL = 828; GPU_PROF_CPC_SYNC_WRREQ_FIFO_BUSY = 829; GPU_PROF_CPC_CANE_BUSY = 830; GPU_PROF_CPC_CANE_STALL = 831; GPU_PROF_CPF_CMP_UTCL1_STALL_ON_TRANSLATION = 832; GPU_PROF_CPF_CPF_STAT_BUSY = 833; GPU_PROF_CPF_CPF_STAT_IDLE = 834; GPU_PROF_CPF_CPF_STAT_STALL = 835; GPU_PROF_CPF_CPF_TCIU_BUSY = 836; GPU_PROF_CPF_CPF_TCIU_IDLE = 837; GPU_PROF_CPF_CPF_TCIU_STALL = 838; // Profiler Derived Metrics GPU_PROF_FETCH_SIZE = 1000; GPU_PROF_WRITE_SIZE = 1001; GPU_PROF_TOTAL_16_OPS = 1002; GPU_PROF_TOTAL_32_OPS = 1003; GPU_PROF_TOTAL_64_OPS = 1004; GPU_PROF_GUI_UTIL_PERCENT = 1005; // OccupancyPercent GPU_PROF_OCCUPANCY_PERCENT = 1006; // MfmaUtil GPU_PROF_TENSOR_ACTIVE_PERCENT = 1007; // ValuPipeIssueUtil GPU_PROF_VALU_PIPE_ISSUE_UTIL = 1008; // VALUBusy GPU_PROF_SM_ACTIVE = 1009; // GRBM_GUI_ACTIVE GPU_PROF_OCCUPANCY_ELAPSED = 1010; // MeanOccupancyPerActiveCU GPU_PROF_OCCUPANCY_PER_ACTIVE_CU = 1011; // MeanOccupancyPerCU GPU_PROF_OCCUPANCY_PER_CU = 1012; // SIMD_UTILIZATION GPU_PROF_SIMD_UTILIZATION = 1013; } message GPUHealthThresholds { uint32 GPU_ECC_UNCORRECT_SDMA = 1; uint32 GPU_ECC_UNCORRECT_GFX = 2; uint32 GPU_ECC_UNCORRECT_MMHUB = 3; uint32 GPU_ECC_UNCORRECT_ATHUB = 4; uint32 GPU_ECC_UNCORRECT_BIF = 5; uint32 GPU_ECC_UNCORRECT_HDP = 6; uint32 GPU_ECC_UNCORRECT_XGMI_WAFL = 7; uint32 GPU_ECC_UNCORRECT_DF = 8; uint32 GPU_ECC_UNCORRECT_SMN = 9; uint32 GPU_ECC_UNCORRECT_SEM = 10; uint32 GPU_ECC_UNCORRECT_MP0 = 11; uint32 GPU_ECC_UNCORRECT_MP1 = 12; uint32 GPU_ECC_UNCORRECT_FUSE= 13; uint32 GPU_ECC_UNCORRECT_UMC = 14; uint32 GPU_ECC_UNCORRECT_MCA = 15; uint32 GPU_ECC_UNCORRECT_VCN = 16; uint32 GPU_ECC_UNCORRECT_JPEG = 17; uint32 GPU_ECC_UNCORRECT_IH = 18; uint32 GPU_ECC_UNCORRECT_MPIO = 19; // Maximum age of a fatal CPER record that can mark a GPU unhealthy. // Go duration string (e.g. "1h", "30m"). Empty or unset preserves legacy behavior // (any latest fatal CPER marks unhealthy). Set an explicit duration to ignore older records. // Set to "0" to explicitly disable the age filter (same as empty). string GPU_CPER_MAX_AGE = 20; } enum GPUMetricLabel { GPU_UUID = 0; // mandatory field GPU_ID cannot be disabled GPU_ID = 1; // mandatory field GPU_PARTITION_ID cannot be disabled GPU_PARTITION_ID = 2; // mandatory field GPU_COMPUTE_PARTITION_TYPE cannot be disabled GPU_COMPUTE_PARTITION_TYPE = 3; // mandatory field GPU_MEMORY_PARTITION_TYPE cannot be disabled GPU_MEMORY_PARTITION_TYPE = 4; // KFD_PROCESS_ID cannot be disabled // KFD_PROCESS_ID is a unique identifier for a process running on a GPU KFD_PROCESS_ID = 5; // Deployment mode Mode cannot be disabled // Hypervisor - Virtualization Host gim driver // BareMetal - PCI passthrough without virtualization host // VM_VF - Virtual Machine with VF passthrough // VM_PF - Virtual Machine with PF passthrough DEPLOYMENT_MODE = 6; } message GPUMetricConfig { // instance selector can include comma or range indices of format 0,2-3,7 string Selector = 1; // list of all GPUMetricField to be exported repeated string Fields = 2; // list of labels to be exported repeated string Labels = 3; // GPU Health Thresholds GPUHealthThresholds HealthThresholds = 4; // User Defined Custom Labels and values map CustomLabels = 5; // Map of extra pod labels to be exported (prometheus metric name as Key, pod label as value) map ExtraPodLabels = 6; // Map of Profiler Metrics enabled or disabled per node // either specify node name to toggle per node, or specify all to toggle // default/empty - is enabled // true - enabled // false - disabled // if disabled all profiler related fields will not be exported to avoid reporting // wrong values as 0 map ProfilerMetrics = 7; ProfilerConfig ProfilerConfig = 8; } message ProfilerConfig { // Sampling interval in microseconds - default is 1000 us (1 millisecond) uint64 SamplingInterval = 1; // PTL (Peak Tops Limiter) state restoration delay in milliseconds // set it to 0 to disable // only applicable for PTL supported devices uint32 PtlDelay = 2; } message HealthServiceConfig { bool Enable = 1; // Health polling rate in duration format (e.g., 30s, 5m, 1h, 1d) // Minimum: 30s, Maximum: 24h (1 day), Default: 30s (30 seconds) // Supports formats like: 30s, 1h, 1d, 23h10m15s string PollingRate = 2; } enum LogLevel { DEBUG = 0; INFO = 1; WARN = 2; ERROR = 3; FATAL = 4; } message LoggingConfig { // level enum(LogLevel): debug, info, warn, error string Level = 1; // below fields are applicable for non console mode only // for non kubernetes deployments // max size of log file in MB // 0 implies default of 10 MB uint32 MaxFileSizeMB = 2; // max backup log files to retain // 0 implies default of 3 uint32 MaxBackups = 3; // max age of log files in days // 0 implies default is 7 days uint32 MaxAgeDays = 4; // disable log rotation // if true, log rotation is disabled bool LogRotationDisable = 5; } message CommonConfig { // string to add as prefix to all exported fields string MetricsFieldPrefix = 1; // Health Service config HealthServiceConfig HealthService = 2; // Logging config LoggingConfig Logging = 3; // Debug config DebugConfig Debug = 4; } message DebugConfig { // EnableAPI exposes the debug surfaces: the pprof/expvar profiling endpoints // on the metrics port and the error-injection (SetError) gRPC API. Default // false: both are disabled unless explicitly enabled here. bool EnableAPI = 1; } enum NICMetricField { option allow_alias = true; NIC_TOTAL = 0; NIC_MAX_SPEED = 1; // Port Stats Field defines the various statistics fields for port-level metrics. // Each field represents a different type of statistic related to the port's performance and health, // such as frames received successfully, total frames received, and other specific metrics. NIC_PORT_STATS_FRAMES_RX_OK = 2; NIC_PORT_STATS_FRAMES_RX_ALL = 3; NIC_PORT_STATS_FRAMES_RX_BAD_FCS = 4; NIC_PORT_STATS_FRAMES_RX_BAD_ALL = 5; NIC_PORT_STATS_FRAMES_RX_PAUSE = 6; NIC_PORT_STATS_FRAMES_RX_BAD_LENGTH = 7; NIC_PORT_STATS_FRAMES_RX_UNDERSIZED = 8; NIC_PORT_STATS_FRAMES_RX_OVERSIZED = 9; NIC_PORT_STATS_FRAMES_RX_FRAGMENTS = 10; NIC_PORT_STATS_FRAMES_RX_JABBER = 11; NIC_PORT_STATS_FRAMES_RX_PRIPAUSE = 12; NIC_PORT_STATS_FRAMES_RX_STOMPED_CRC = 13; NIC_PORT_STATS_FRAMES_RX_TOO_LONG = 14; NIC_PORT_STATS_FRAMES_RX_DROPPED = 15; NIC_PORT_STATS_FRAMES_TX_OK = 16; NIC_PORT_STATS_FRAMES_TX_ALL = 17; NIC_PORT_STATS_FRAMES_TX_BAD = 18; NIC_PORT_STATS_FRAMES_TX_PAUSE = 19; NIC_PORT_STATS_FRAMES_TX_PRIPAUSE = 20; NIC_PORT_STATS_FRAMES_TX_LESS_THAN_64B = 21; NIC_PORT_STATS_FRAMES_TX_TRUNCATED = 22; NIC_PORT_STATS_RSFEC_CORRECTABLE_WORD = 23; NIC_PORT_STATS_RSFEC_CH_SYMBOL_ERR_CNT = 24; NIC_PORT_STATS_FRAMES_RX_UNICAST = 25; NIC_PORT_STATS_FRAMES_RX_MULTICAST = 26; NIC_PORT_STATS_FRAMES_RX_BROADCAST = 27; NIC_PORT_STATS_FRAMES_RX_PRI_0 = 28; NIC_PORT_STATS_FRAMES_RX_PRI_1 = 29; NIC_PORT_STATS_FRAMES_RX_PRI_2 = 30; NIC_PORT_STATS_FRAMES_RX_PRI_3 = 31; NIC_PORT_STATS_FRAMES_RX_PRI_4 = 32; NIC_PORT_STATS_FRAMES_RX_PRI_5 = 33; NIC_PORT_STATS_FRAMES_RX_PRI_6 = 34; NIC_PORT_STATS_FRAMES_RX_PRI_7 = 35; NIC_PORT_STATS_FRAMES_TX_UNICAST = 36; NIC_PORT_STATS_FRAMES_TX_MULTICAST = 37; NIC_PORT_STATS_FRAMES_TX_BROADCAST = 38; NIC_PORT_STATS_FRAMES_TX_PRI_0 = 39; NIC_PORT_STATS_FRAMES_TX_PRI_1 = 40; NIC_PORT_STATS_FRAMES_TX_PRI_2 = 41; NIC_PORT_STATS_FRAMES_TX_PRI_3 = 42; NIC_PORT_STATS_FRAMES_TX_PRI_4 = 43; NIC_PORT_STATS_FRAMES_TX_PRI_5 = 44; NIC_PORT_STATS_FRAMES_TX_PRI_6 = 45; NIC_PORT_STATS_FRAMES_TX_PRI_7 = 46; NIC_PORT_STATS_OCTETS_RX_OK = 47; NIC_PORT_STATS_OCTETS_RX_ALL = 48; NIC_PORT_STATS_OCTETS_TX_OK = 49; NIC_PORT_STATS_OCTETS_TX_ALL = 50; NIC_PORT_STATS_TX_PPS = 51; NIC_PORT_STATS_TX_BPS = 52; NIC_PORT_STATS_RX_PPS = 53; NIC_PORT_STATS_RX_BPS = 54; NIC_PORT_STATS_RSFEC_UNCORRECTABLE_WORD = 55; // count of link down (flap) events reported by the port's link state // machine, a good indicator of link flapping NIC_PORT_STATUS_LINK_DOWN_COUNT = 56; // Lif stats NIC_LIF_STATS_RX_UNICAST_PACKETS = 100; NIC_LIF_STATS_RX_UNICAST_DROP_PACKETS = 101; NIC_LIF_STATS_RX_MULTICAST_DROP_PACKETS = 102; NIC_LIF_STATS_RX_BROADCAST_DROP_PACKETS = 103; NIC_LIF_STATS_RX_DMA_ERRORS = 104; NIC_LIF_STATS_TX_UNICAST_PACKETS = 105; NIC_LIF_STATS_TX_UNICAST_DROP_PACKETS = 106; NIC_LIF_STATS_TX_MULTICAST_DROP_PACKETS = 107; NIC_LIF_STATS_TX_BROADCAST_DROP_PACKETS = 108; NIC_LIF_STATS_TX_DMA_ERRORS = 109; // RDMA core Stats RDMA_TX_UCAST_PKTS = 200; RDMA_TX_CNP_PKTS = 201; RDMA_RX_UCAST_PKTS = 202; RDMA_RX_CNP_PKTS = 203; RDMA_RX_ECN_PKTS = 204; RDMA_REQ_RX_PKT_SEQ_ERR = 205; RDMA_REQ_RX_RNR_RETRY_ERR = 206; RDMA_REQ_RX_RMT_ACC_ERR = 207; RDMA_REQ_RX_RMT_REQ_ERR = 208; RDMA_REQ_RX_OPER_ERR = 209; RDMA_REQ_RX_IMPL_NAK_SEQ_ERR = 210; RDMA_REQ_RX_CQE_ERR = 211; RDMA_REQ_RX_CQE_FLUSH = 212; RDMA_REQ_RX_DUP_RESP = 213; RDMA_REQ_RX_INVALID_PKTS = 214; RDMA_REQ_TX_LOC_ERR = 215; RDMA_REQ_TX_LOC_OPER_ERR = 216; RDMA_REQ_TX_MEM_MGMT_ERR = 217; RDMA_REQ_TX_RETRY_EXCD_ERR = 218; RDMA_REQ_TX_LOC_SGL_INV_ERR = 219; RDMA_RESP_RX_DUP_REQUEST = 220; RDMA_RESP_RX_OUTOF_BUF = 221; RDMA_RESP_RX_OUTOUF_SEQ = 222; RDMA_RESP_RX_CQE_ERR = 223; RDMA_RESP_RX_CQE_FLUSH = 224; RDMA_RESP_RX_LOC_LEN_ERR = 225; RDMA_RESP_RX_INVALID_REQUEST = 226; RDMA_RESP_RX_LOC_OPER_ERR = 227; RDMA_RESP_RX_OUTOF_ATOMIC = 228; RDMA_RESP_TX_PKT_SEQ_ERR = 229; RDMA_RESP_TX_RMT_INVAL_REQ_ERR = 230; RDMA_RESP_TX_RMT_ACC_ERR = 231; RDMA_RESP_TX_RMT_OPER_ERR = 232; RDMA_RESP_TX_RNR_RETRY_ERR = 233; RDMA_RESP_TX_LOC_SGL_INV_ERR = 234; RDMA_RESP_RX_S0_TABLE_ERR = 235; // QP stats QP_SQ_REQ_TX_NUM_PACKET = 300; QP_SQ_REQ_TX_NUM_SEND_MSGS_WITH_RKE = 301; QP_SQ_REQ_TX_NUM_LOCAL_ACK_TIMEOUTS = 302; QP_SQ_REQ_TX_RNR_TIMEOUT = 303; QP_SQ_REQ_TX_TIMES_SQ_DRAINED = 304; QP_SQ_REQ_TX_NUM_CNP_SENT = 305; QP_SQ_REQ_RX_NUM_PACKET = 306; QP_SQ_REQ_RX_NUM_PKTS_WITH_ECN_MARKING = 307; QP_SQ_QCN_CURR_BYTE_COUNTER = 308; QP_SQ_QCN_NUM_BYTE_COUNTER_EXPIRED = 309; QP_SQ_QCN_NUM_TIMER_EXPIRED = 310; QP_SQ_QCN_NUM_ALPHA_TIMER_EXPIRED = 311; QP_SQ_QCN_NUM_CNP_RCVD = 312; QP_SQ_QCN_NUM_CNP_PROCESSED = 313; QP_RQ_RSP_TX_NUM_PACKET = 314; QP_RQ_RSP_TX_RNR_ERROR = 315; QP_RQ_RSP_TX_NUM_SEQUENCE_ERROR = 316; QP_RQ_RSP_TX_NUM_RP_BYTE_THRES_HIT = 317; QP_RQ_RSP_TX_NUM_RP_MAX_RATE_HIT = 318; QP_RQ_RSP_RX_NUM_PACKET = 319; QP_RQ_RSP_RX_NUM_SEND_MSGS_WITH_RKE = 320; QP_RQ_RSP_RX_NUM_PKTS_WITH_ECN_MARKING = 321; QP_RQ_RSP_RX_NUM_CNPS_RECEIVED = 322; QP_RQ_RSP_RX_MAX_RECIRC_EXCEEDED_DROP = 323; QP_RQ_RSP_RX_NUM_MEM_WINDOW_INVALID = 324; QP_RQ_RSP_RX_NUM_DUPL_WITH_WR_SEND_OPC = 325; QP_RQ_RSP_RX_NUM_DUPL_READ_BACKTRACK = 326; QP_RQ_RSP_RX_NUM_DUPL_READ_ATOMIC_DROP = 327; QP_RQ_QCN_CURR_BYTE_COUNTER = 328; QP_RQ_QCN_NUM_BYTE_COUNTER_EXPIRED = 329; QP_RQ_QCN_NUM_TIMER_EXPIRED = 330; QP_RQ_QCN_NUM_ALPHA_TIMER_EXPIRED = 331; QP_RQ_QCN_NUM_CNP_RCVD = 332; QP_RQ_QCN_NUM_CNP_PROCESSED = 333; // LIF-aggregated QP metrics (sum of all QPs per LIF) LIF_QP_SQ_REQ_TX_NUM_PACKET_TOTAL = 334; LIF_QP_SQ_REQ_TX_NUM_SEND_MSGS_WITH_RKE_TOTAL = 335; LIF_QP_SQ_REQ_TX_NUM_LOCAL_ACK_TIMEOUTS_TOTAL = 336; LIF_QP_SQ_REQ_TX_RNR_TIMEOUT_TOTAL = 337; LIF_QP_SQ_REQ_TX_TIMES_SQ_DRAINED_TOTAL = 338; LIF_QP_SQ_REQ_TX_NUM_CNP_SENT_TOTAL = 339; LIF_QP_SQ_REQ_RX_NUM_PACKET_TOTAL = 340; LIF_QP_SQ_REQ_RX_NUM_PKTS_WITH_ECN_MARKING_TOTAL = 341; LIF_QP_SQ_QCN_CURR_BYTE_COUNTER_TOTAL = 342; LIF_QP_SQ_QCN_NUM_BYTE_COUNTER_EXPIRED_TOTAL = 343; LIF_QP_SQ_QCN_NUM_TIMER_EXPIRED_TOTAL = 344; LIF_QP_SQ_QCN_NUM_ALPHA_TIMER_EXPIRED_TOTAL = 345; LIF_QP_SQ_QCN_NUM_CNP_RCVD_TOTAL = 346; LIF_QP_SQ_QCN_NUM_CNP_PROCESSED_TOTAL = 347; LIF_QP_RQ_RSP_TX_NUM_PACKET_TOTAL = 348; LIF_QP_RQ_RSP_TX_RNR_ERROR_TOTAL = 349; LIF_QP_RQ_RSP_TX_NUM_SEQUENCE_ERROR_TOTAL = 350; LIF_QP_RQ_RSP_TX_NUM_RP_BYTE_THRES_HIT_TOTAL = 351; LIF_QP_RQ_RSP_TX_NUM_RP_MAX_RATE_HIT_TOTAL = 352; LIF_QP_RQ_RSP_RX_NUM_PACKET_TOTAL = 353; LIF_QP_RQ_RSP_RX_NUM_SEND_MSGS_WITH_RKE_TOTAL = 354; LIF_QP_RQ_RSP_RX_NUM_PKTS_WITH_ECN_MARKING_TOTAL = 355; LIF_QP_RQ_RSP_RX_NUM_CNPS_RECEIVED_TOTAL = 356; LIF_QP_RQ_RSP_RX_MAX_RECIRC_EXCEEDED_DROP_TOTAL = 357; LIF_QP_RQ_RSP_RX_NUM_MEM_WINDOW_INVALID_TOTAL = 358; LIF_QP_RQ_RSP_RX_NUM_DUPL_WITH_WR_SEND_OPC_TOTAL = 359; LIF_QP_RQ_RSP_RX_NUM_DUPL_READ_BACKTRACK_TOTAL = 360; LIF_QP_RQ_RSP_RX_NUM_DUPL_READ_ATOMIC_DROP_TOTAL = 361; LIF_QP_RQ_QCN_CURR_BYTE_COUNTER_TOTAL = 362; LIF_QP_RQ_QCN_NUM_BYTE_COUNTER_EXPIRED_TOTAL = 363; LIF_QP_RQ_QCN_NUM_TIMER_EXPIRED_TOTAL = 364; LIF_QP_RQ_QCN_NUM_ALPHA_TIMER_EXPIRED_TOTAL = 365; LIF_QP_RQ_QCN_NUM_CNP_RCVD_TOTAL = 366; LIF_QP_RQ_QCN_NUM_CNP_PROCESSED_TOTAL = 367; // Ethtool stats ETH_TX_PACKETS = 500; ETH_TX_BYTES = 501; ETH_RX_PACKETS = 502; ETH_RX_BYTES = 503; ETH_FRAMES_RX_BROADCAST = 504; ETH_FRAMES_RX_MULTICAST = 505; ETH_FRAMES_TX_BROADCAST = 506; ETH_FRAMES_TX_MULTICAST = 507; ETH_FRAMES_RX_PAUSE = 508; ETH_FRAMES_TX_PAUSE = 509; ETH_FRAMES_RX_64B = 510; ETH_FRAMES_RX_65B_127B = 511; ETH_FRAMES_RX_128B_255B = 512; ETH_FRAMES_RX_256B_511B = 513; ETH_FRAMES_RX_512B_1023B = 514; ETH_FRAMES_RX_1024B_1518B = 515; ETH_FRAMES_RX_1519B_2047B = 516; ETH_FRAMES_RX_2048B_4095B = 517; ETH_FRAMES_RX_4096B_8191B = 518; ETH_FRAMES_RX_BAD_FCS = 519; ETH_FRAMES_RX_PRI_0 = 520; ETH_FRAMES_RX_PRI_1 = 521; ETH_FRAMES_RX_PRI_2 = 522; ETH_FRAMES_RX_PRI_3 = 523; ETH_FRAMES_RX_PRI_4 = 524; ETH_FRAMES_RX_PRI_5 = 525; ETH_FRAMES_RX_PRI_6 = 526; ETH_FRAMES_RX_PRI_7 = 527; ETH_FRAMES_TX_PRI_0 = 528; ETH_FRAMES_TX_PRI_1 = 529; ETH_FRAMES_TX_PRI_2 = 530; ETH_FRAMES_TX_PRI_3 = 531; ETH_FRAMES_TX_PRI_4 = 532; ETH_FRAMES_TX_PRI_5 = 533; ETH_FRAMES_TX_PRI_6 = 534; ETH_FRAMES_TX_PRI_7 = 535; ETH_FRAMES_RX_DROPPED = 536; ETH_FRAMES_RX_ALL = 537; ETH_FRAMES_RX_BAD_ALL = 538; ETH_FRAMES_TX_ALL = 539; ETH_FRAMES_TX_BAD = 540; ETH_HW_TX_DROPPED = 541; ETH_HW_RX_DROPPED = 542; ETH_RX_0_DROPPED = 543; ETH_RX_1_DROPPED = 544; ETH_RX_2_DROPPED = 545; ETH_RX_3_DROPPED = 546; ETH_RX_4_DROPPED = 547; ETH_RX_5_DROPPED = 548; ETH_RX_6_DROPPED = 549; ETH_RX_7_DROPPED = 550; ETH_RX_8_DROPPED = 551; ETH_RX_9_DROPPED = 552; ETH_RX_10_DROPPED = 553; ETH_RX_11_DROPPED = 554; ETH_RX_12_DROPPED = 555; ETH_RX_13_DROPPED = 556; ETH_RX_14_DROPPED = 557; ETH_RX_15_DROPPED = 558; ETH_FRAMES_RX_OK = 559; ETH_FRAMES_TX_OK = 560; ETH_OCTETS_RX_OK = 561; ETH_OCTETS_TX_OK = 562; ETH_OCTETS_TX_TOTAL = 563; ETH_FRAMES_RX_UNICAST = 564; ETH_FRAMES_TX_UNICAST = 565; ETH_FRAMES_RX_8192B_9215B = 566; ETH_FRAMES_TX_8192B_9215B = 567; ETH_FRAMES_TX_64B = 568; ETH_FRAMES_TX_65B_127B = 569; ETH_FRAMES_TX_128B_255B = 570; ETH_FRAMES_TX_256B_511B = 571; ETH_FRAMES_TX_512B_1023B = 572; ETH_FRAMES_TX_1024B_1518B = 573; ETH_FRAMES_TX_1519B_2047B = 574; ETH_FRAMES_TX_2048B_4095B = 575; ETH_FRAMES_TX_4096B_8191B = 576; ETH_FRAMES_RX_PRIPAUSE = 577; ETH_FRAMES_TX_PRIPAUSE = 578; // Backward compatibility aliases (deprecated, use PRI_N format) ETH_FRAMES_RX_PRI0 = 520 [deprecated = true]; ETH_FRAMES_RX_PRI1 = 521 [deprecated = true]; ETH_FRAMES_RX_PRI2 = 522 [deprecated = true]; ETH_FRAMES_RX_PRI3 = 523 [deprecated = true]; ETH_FRAMES_RX_PRI4 = 524 [deprecated = true]; ETH_FRAMES_RX_PRI5 = 525 [deprecated = true]; ETH_FRAMES_RX_PRI6 = 526 [deprecated = true]; ETH_FRAMES_RX_PRI7 = 527 [deprecated = true]; ETH_FRAMES_TX_PRI0 = 528 [deprecated = true]; ETH_FRAMES_TX_PRI1 = 529 [deprecated = true]; ETH_FRAMES_TX_PRI2 = 530 [deprecated = true]; ETH_FRAMES_TX_PRI3 = 531 [deprecated = true]; ETH_FRAMES_TX_PRI4 = 532 [deprecated = true]; ETH_FRAMES_TX_PRI5 = 533 [deprecated = true]; ETH_FRAMES_TX_PRI6 = 534 [deprecated = true]; ETH_FRAMES_TX_PRI7 = 535 [deprecated = true]; } enum NICMetricLabel { NIC_UUID = 0; // mandatory field NIC_ID cannot be disabled NIC_ID = 1; FIRMWARE_VERSION = 2; } message NICMetricConfig { // list of all NICMetricField to be exported repeated string Fields = 1; // list of labels to be exported repeated string Labels = 2; // User Defined Custom Labels and values map CustomLabels = 3; // NIC health check config NICHealthCheckConfig HealthCheckConfig = 4; // Map of extra pod labels to be exported (prometheus metric name as Key, pod label as value) map ExtraPodLabels = 5; } message NICHealthCheckConfig { // report interface admin down state as unhealthy bool InterfaceAdminDownAsUnhealthy = 1; } enum IFOEMetricField { IFOE_TOTAL_DEVICES = 0; IFOE_TOTAL_STATIONS = 1; IFOE_TOTAL_PORTS = 2; IFOE_NUMBER_FAILEDOVER_STREAMS = 3; IFOE_NUMBER_PAUSED_STREAMS = 4; IFOE_BIT_ERROR_RATE = 5; IFOE_FEC_CODEWORD_SYMBOL_ERRORS0 = 6; IFOE_FEC_CODEWORD_SYMBOL_ERRORS1 = 7; IFOE_FEC_CODEWORD_SYMBOL_ERRORS2 = 8; IFOE_FEC_CODEWORD_SYMBOL_ERRORS3 = 9; IFOE_FEC_CODEWORD_SYMBOL_ERRORS4 = 10; IFOE_FEC_CODEWORD_SYMBOL_ERRORS5 = 11; IFOE_FEC_CODEWORD_SYMBOL_ERRORS6 = 12; IFOE_FEC_CODEWORD_SYMBOL_ERRORS7 = 13; IFOE_FEC_CODEWORD_SYMBOL_ERRORS8 = 14; IFOE_FEC_CODEWORD_SYMBOL_ERRORS9 = 15; IFOE_FEC_CODEWORD_SYMBOL_ERRORS10 = 16; IFOE_FEC_CODEWORD_SYMBOL_ERRORS11 = 17; IFOE_FEC_CODEWORD_SYMBOL_ERRORS12 = 18; IFOE_FEC_CODEWORD_SYMBOL_ERRORS13 = 19; IFOE_FEC_CODEWORD_SYMBOL_ERRORS14 = 20; IFOE_FEC_CODEWORD_SYMBOL_ERRORS15 = 21; } message IFOEMetricConfig { // list of all IFOEMetricField to be exported repeated string Fields = 1; // list of labels to be exported repeated string Labels = 2; // User Defined Custom Labels and values map CustomLabels = 3; // Map of extra pod labels to be exported (prometheus metric name as Key, pod label as value) map ExtraPodLabels = 4; } message MetricConfig { // server config port uint32 ServerPort = 1; // GPU Metric config for export GPUMetricConfig GPUConfig = 2; // Exporter Common Configuration CommonConfig CommonConfig = 3; // NIC Metric config for export NICMetricConfig NICConfig = 4; // IFOE Metric config for export IFOEMetricConfig IFOEConfig = 5; }