1/* 2** Zabbix 3** Copyright (C) 2001-2021 Zabbix SIA 4** 5** This program is free software; you can redistribute it and/or modify 6** it under the terms of the GNU General Public License as published by 7** the Free Software Foundation; either version 2 of the License, or 8** (at your option) any later version. 9** 10** This program is distributed in the hope that it will be useful, 11** but WITHOUT ANY WARRANTY; without even the implied warranty of 12** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13** GNU General Public License for more details. 14** 15** You should have received a copy of the GNU General Public License 16** along with this program; if not, write to the Free Software 17** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 18**/ 19 20package zbxlib 21 22/* cspell:disable */ 23 24/* 25#cgo CFLAGS: -I${SRCDIR}/../../../../../include 26 27#include "common.h" 28#include "sysinfo.h" 29#include "module.h" 30 31int SYSTEM_LOCALTIME(AGENT_REQUEST *request, AGENT_RESULT *result); 32int NET_DNS(AGENT_REQUEST *request, AGENT_RESULT *result); 33int NET_DNS_RECORD(AGENT_REQUEST *request, AGENT_RESULT *result); 34int PROC_MEM(AGENT_REQUEST *request, AGENT_RESULT *result); 35int PROC_NUM(AGENT_REQUEST *request, AGENT_RESULT *result); 36int SYSTEM_BOOTTIME(AGENT_REQUEST *request, AGENT_RESULT *result); 37int NET_TCP_LISTEN(AGENT_REQUEST *request, AGENT_RESULT *result); 38int CHECK_SERVICE(AGENT_REQUEST *request, AGENT_RESULT *result); 39int CHECK_SERVICE_PERF(AGENT_REQUEST *request, AGENT_RESULT *result); 40int NET_UDP_LISTEN(AGENT_REQUEST *request, AGENT_RESULT *result); 41int GET_SENSOR(AGENT_REQUEST *request, AGENT_RESULT *result); 42int SYSTEM_CPU_LOAD(AGENT_REQUEST *request, AGENT_RESULT *result); 43int SYSTEM_CPU_SWITCHES(AGENT_REQUEST *request, AGENT_RESULT *result); 44int SYSTEM_CPU_INTR(AGENT_REQUEST *request, AGENT_RESULT *result); 45int SYSTEM_HW_CHASSIS(AGENT_REQUEST *request, AGENT_RESULT *result); 46int SYSTEM_HW_CPU(AGENT_REQUEST *request, AGENT_RESULT *result); 47int SYSTEM_HW_DEVICES(AGENT_REQUEST *request, AGENT_RESULT *result); 48int SYSTEM_HW_MACADDR(AGENT_REQUEST *request, AGENT_RESULT *result); 49int SYSTEM_SW_OS(AGENT_REQUEST *request, AGENT_RESULT *result); 50int SYSTEM_SW_PACKAGES(AGENT_REQUEST *request, AGENT_RESULT *result); 51int SYSTEM_SWAP_IN(AGENT_REQUEST *request, AGENT_RESULT *result); 52int SYSTEM_SWAP_OUT(AGENT_REQUEST *request, AGENT_RESULT *result); 53int SYSTEM_SWAP_SIZE(AGENT_REQUEST *request, AGENT_RESULT *result); 54int SYSTEM_USERS_NUM(AGENT_REQUEST *request, AGENT_RESULT *result); 55int VFS_DIR_COUNT(AGENT_REQUEST *request, AGENT_RESULT *result); 56int VFS_DIR_SIZE(AGENT_REQUEST *request, AGENT_RESULT *result); 57int VFS_FS_DISCOVERY(AGENT_REQUEST *request, AGENT_RESULT *result); 58int VFS_FS_INODE(AGENT_REQUEST *request, AGENT_RESULT *result); 59int VFS_FS_SIZE(AGENT_REQUEST *request, AGENT_RESULT *result); 60int VFS_FS_GET(AGENT_REQUEST *request, AGENT_RESULT *result); 61int VM_MEMORY_SIZE(AGENT_REQUEST *request, AGENT_RESULT *result); 62*/ 63import "C" 64 65import ( 66 "unsafe" 67) 68 69func resolveMetric(key string) (cfunc unsafe.Pointer) { 70 switch key { 71 case "system.localtime": 72 cfunc = unsafe.Pointer(C.SYSTEM_LOCALTIME) 73 case "net.dns": 74 cfunc = unsafe.Pointer(C.NET_DNS) 75 case "net.dns.record": 76 cfunc = unsafe.Pointer(C.NET_DNS_RECORD) 77 case "system.boottime": 78 cfunc = unsafe.Pointer(C.SYSTEM_BOOTTIME) 79 case "net.tcp.listen": 80 cfunc = unsafe.Pointer(C.NET_TCP_LISTEN) 81 case "net.udp.listen": 82 cfunc = unsafe.Pointer(C.NET_UDP_LISTEN) 83 case "sensor": 84 cfunc = unsafe.Pointer(C.GET_SENSOR) 85 case "system.cpu.load": 86 cfunc = unsafe.Pointer(C.SYSTEM_CPU_LOAD) 87 case "system.cpu.switches": 88 cfunc = unsafe.Pointer(C.SYSTEM_CPU_SWITCHES) 89 case "system.cpu.intr": 90 cfunc = unsafe.Pointer(C.SYSTEM_CPU_INTR) 91 case "system.hw.chassis": 92 cfunc = unsafe.Pointer(C.SYSTEM_HW_CHASSIS) 93 case "system.hw.cpu": 94 cfunc = unsafe.Pointer(C.SYSTEM_HW_CPU) 95 case "system.hw.devices": 96 cfunc = unsafe.Pointer(C.SYSTEM_HW_DEVICES) 97 case "system.hw.macaddr": 98 cfunc = unsafe.Pointer(C.SYSTEM_HW_MACADDR) 99 case "system.sw.os": 100 cfunc = unsafe.Pointer(C.SYSTEM_SW_OS) 101 case "system.swap.in": 102 cfunc = unsafe.Pointer(C.SYSTEM_SWAP_IN) 103 case "system.swap.out": 104 cfunc = unsafe.Pointer(C.SYSTEM_SWAP_OUT) 105 case "vfs.dir.count": 106 cfunc = unsafe.Pointer(C.VFS_DIR_COUNT) 107 case "vfs.dir.size": 108 cfunc = unsafe.Pointer(C.VFS_DIR_SIZE) 109 } 110 return 111} 112