1 /* 2 * Copyright (C) 2021 Jakub Kruszona-Zawadzki, Core Technology Sp. z o.o. 3 * 4 * This file is part of MooseFS. 5 * 6 * MooseFS is free software; you can redistribute it and/or modify 7 * it under the terms of the GNU General Public License as published by 8 * the Free Software Foundation, version 2 (only). 9 * 10 * MooseFS 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 MooseFS; if not, write to the Free Software 17 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02111-1301, USA 18 * or visit http://www.gnu.org/licenses/gpl-2.0.html 19 */ 20 21 #ifndef _CHARTSDEFS_H_ 22 #define _CHARTSDEFS_H_ 23 24 #define CHARTS_FILENAME "csstats.mfs" 25 26 #define CHARTS_UCPU 0 27 #define CHARTS_SCPU 1 28 #define CHARTS_MASTERIN 2 29 #define CHARTS_MASTEROUT 3 30 #define CHARTS_CSREPIN 4 31 #define CHARTS_CSREPOUT 5 32 #define CHARTS_CSSERVIN 6 33 #define CHARTS_CSSERVOUT 7 34 #define CHARTS_HDRBYTESR 8 35 #define CHARTS_HDRBYTESW 9 36 #define CHARTS_HDRLLOPR 10 37 #define CHARTS_HDRLLOPW 11 38 #define CHARTS_DATABYTESR 12 39 #define CHARTS_DATABYTESW 13 40 #define CHARTS_DATALLOPR 14 41 #define CHARTS_DATALLOPW 15 42 #define CHARTS_HLOPR 16 43 #define CHARTS_HLOPW 17 44 #define CHARTS_RTIME 18 45 #define CHARTS_WTIME 19 46 #define CHARTS_REPL 20 47 #define CHARTS_CREATE 21 48 #define CHARTS_DELETE 22 49 #define CHARTS_VERSION 23 50 #define CHARTS_DUPLICATE 24 51 #define CHARTS_TRUNCATE 25 52 #define CHARTS_DUPTRUNC 26 53 #define CHARTS_TEST 27 54 #define CHARTS_LOAD 28 55 #define CHARTS_MEMORY_RSS 29 56 #define CHARTS_MEMORY_VIRT 30 57 #define CHARTS_MOVELS 31 58 #define CHARTS_MOVEHS 32 59 #define CHARTS_CHANGE 33 60 61 #define CHARTS 34 62 63 #define STRID(a,b,c,d) (((((uint8_t)a)*256U+(uint8_t)b)*256U+(uint8_t)c)*256U+(uint8_t)d) 64 65 /* name , statid , join mode , percent , scale , multiplier , divisor */ 66 #define STATDEFS { \ 67 {"ucpu" ,STRID('U','C','P','U'),CHARTS_MODE_ADD,1,CHARTS_SCALE_MICRO, 100, 60}, \ 68 {"scpu" ,STRID('S','C','P','U'),CHARTS_MODE_ADD,1,CHARTS_SCALE_MICRO, 100, 60}, \ 69 {"masterin" ,STRID('M','S','T','I'),CHARTS_MODE_ADD,0,CHARTS_SCALE_MILI ,8000, 60}, \ 70 {"masterout" ,STRID('M','S','T','O'),CHARTS_MODE_ADD,0,CHARTS_SCALE_MILI ,8000, 60}, \ 71 {"csrepin" ,STRID('R','E','P','I'),CHARTS_MODE_ADD,0,CHARTS_SCALE_MILI ,8000, 60}, \ 72 {"csrepout" ,STRID('R','E','P','O'),CHARTS_MODE_ADD,0,CHARTS_SCALE_MILI ,8000, 60}, \ 73 {"csservin" ,STRID('S','R','V','I'),CHARTS_MODE_ADD,0,CHARTS_SCALE_MILI ,8000, 60}, \ 74 {"csservout" ,STRID('S','R','V','O'),CHARTS_MODE_ADD,0,CHARTS_SCALE_MILI ,8000, 60}, \ 75 {"hdrbytesr" ,STRID('H','R','B','R'),CHARTS_MODE_ADD,0,CHARTS_SCALE_MILI ,1000, 60}, \ 76 {"hdrbytesw" ,STRID('H','R','B','W'),CHARTS_MODE_ADD,0,CHARTS_SCALE_MILI ,1000, 60}, \ 77 {"hdrllopr" ,STRID('H','R','O','R'),CHARTS_MODE_ADD,0,CHARTS_SCALE_NONE , 1, 1}, \ 78 {"hdrllopw" ,STRID('H','R','O','W'),CHARTS_MODE_ADD,0,CHARTS_SCALE_NONE , 1, 1}, \ 79 {"databytesr" ,STRID('D','T','B','R'),CHARTS_MODE_ADD,0,CHARTS_SCALE_MILI ,1000, 60}, \ 80 {"databytesw" ,STRID('D','T','B','W'),CHARTS_MODE_ADD,0,CHARTS_SCALE_MILI ,1000, 60}, \ 81 {"datallopr" ,STRID('D','T','O','R'),CHARTS_MODE_ADD,0,CHARTS_SCALE_NONE , 1, 1}, \ 82 {"datallopw" ,STRID('D','T','O','W'),CHARTS_MODE_ADD,0,CHARTS_SCALE_NONE , 1, 1}, \ 83 {"hlopr" ,STRID('H','L','O','R'),CHARTS_MODE_ADD,0,CHARTS_SCALE_NONE , 1, 1}, \ 84 {"hlopw" ,STRID('H','L','O','W'),CHARTS_MODE_ADD,0,CHARTS_SCALE_NONE , 1, 1}, \ 85 {"rtime" ,STRID('T','I','M','R'),CHARTS_MODE_ADD,0,CHARTS_SCALE_MICRO, 1,60000}, \ 86 {"wtime" ,STRID('T','I','M','W'),CHARTS_MODE_ADD,0,CHARTS_SCALE_MICRO, 1,60000}, \ 87 {"repl" ,STRID('R','E','P','C'),CHARTS_MODE_ADD,0,CHARTS_SCALE_NONE , 1, 1}, \ 88 {"create" ,STRID('C','R','E','C'),CHARTS_MODE_ADD,0,CHARTS_SCALE_NONE , 1, 1}, \ 89 {"delete" ,STRID('D','E','L','C'),CHARTS_MODE_ADD,0,CHARTS_SCALE_NONE , 1, 1}, \ 90 {"version" ,STRID('V','E','R','C'),CHARTS_MODE_ADD,0,CHARTS_SCALE_NONE , 1, 1}, \ 91 {"duplicate" ,STRID('D','U','P','C'),CHARTS_MODE_ADD,0,CHARTS_SCALE_NONE , 1, 1}, \ 92 {"truncate" ,STRID('T','R','U','C'),CHARTS_MODE_ADD,0,CHARTS_SCALE_NONE , 1, 1}, \ 93 {"duptrunc" ,STRID('D','T','R','C'),CHARTS_MODE_ADD,0,CHARTS_SCALE_NONE , 1, 1}, \ 94 {"test" ,STRID('T','S','T','C'),CHARTS_MODE_ADD,0,CHARTS_SCALE_NONE , 1, 1}, \ 95 {"load" ,STRID('L','O','A','D'),CHARTS_MODE_MAX,0,CHARTS_SCALE_NONE , 1, 1}, \ 96 {"memoryrss" ,STRID('M','E','M','R'),CHARTS_MODE_MAX,0,CHARTS_SCALE_NONE , 1, 1}, \ 97 {"memoryvirt" ,STRID('M','E','M','V'),CHARTS_MODE_MAX,0,CHARTS_SCALE_NONE , 1, 1}, \ 98 {"movels" ,STRID('M','O','V','L'),CHARTS_MODE_ADD,0,CHARTS_SCALE_NONE , 1, 1}, \ 99 {"movehs" ,STRID('M','O','V','H'),CHARTS_MODE_ADD,0,CHARTS_SCALE_NONE , 1, 1}, \ 100 {"change" ,STRID('C','H','G','C'),CHARTS_MODE_ADD,0,CHARTS_SCALE_NONE , 1, 1}, \ 101 {NULL ,0 ,0 ,0,0 , 0, 0} \ 102 }; 103 104 #define CALCDEFS { \ 105 CHARTS_CALCDEF(CHARTS_MAX(CHARTS_CONST(0),CHARTS_SUB(CHARTS_MEMORY_VIRT,CHARTS_MEMORY_RSS))), \ 106 CHARTS_DEFS_END \ 107 }; 108 109 /* name , statid , c1_def , c2_def , c3_def , join mode , percent , scale , multiplier , divisor */ 110 #define ESTATDEFS { \ 111 {"cpu" ,STRID('T','C','P','U'),CHARTS_DIRECT(CHARTS_UCPU) ,CHARTS_DIRECT(CHARTS_SCPU) ,CHARTS_NONE ,CHARTS_MODE_ADD,1,CHARTS_SCALE_MICRO, 100,60}, \ 112 {"bwin" ,STRID('B','W','I','N'),CHARTS_DIRECT(CHARTS_CSREPIN) ,CHARTS_DIRECT(CHARTS_CSSERVIN) ,CHARTS_NONE ,CHARTS_MODE_ADD,0,CHARTS_SCALE_MILI ,8000,60}, \ 113 {"bwout" ,STRID('B','W','O','U'),CHARTS_DIRECT(CHARTS_CSREPOUT) ,CHARTS_DIRECT(CHARTS_CSSERVOUT) ,CHARTS_NONE ,CHARTS_MODE_ADD,0,CHARTS_SCALE_MILI ,8000,60}, \ 114 {"hddread" ,STRID('H','D','B','R'),CHARTS_DIRECT(CHARTS_HDRBYTESR) ,CHARTS_DIRECT(CHARTS_DATABYTESR) ,CHARTS_NONE ,CHARTS_MODE_ADD,0,CHARTS_SCALE_MILI ,1000,60}, \ 115 {"hddwrite" ,STRID('H','D','B','W'),CHARTS_DIRECT(CHARTS_HDRBYTESW) ,CHARTS_DIRECT(CHARTS_DATABYTESW) ,CHARTS_NONE ,CHARTS_MODE_ADD,0,CHARTS_SCALE_MILI ,1000,60}, \ 116 {"hddopsr" ,STRID('H','D','O','R'),CHARTS_DIRECT(CHARTS_HDRLLOPR) ,CHARTS_DIRECT(CHARTS_DATALLOPR) ,CHARTS_NONE ,CHARTS_MODE_ADD,0,CHARTS_SCALE_NONE , 1, 1}, \ 117 {"hddopsw" ,STRID('H','D','O','W'),CHARTS_DIRECT(CHARTS_HDRLLOPW) ,CHARTS_DIRECT(CHARTS_DATALLOPW) ,CHARTS_NONE ,CHARTS_MODE_ADD,0,CHARTS_SCALE_NONE , 1, 1}, \ 118 {"mem" ,STRID('T','M','E','M'),CHARTS_CALC(0) ,CHARTS_DIRECT(CHARTS_MEMORY_RSS) ,CHARTS_NONE ,CHARTS_MODE_MAX,0,CHARTS_SCALE_NONE , 1, 1}, \ 119 {"move" ,STRID('M','O','V','E'),CHARTS_DIRECT(CHARTS_MOVELS) ,CHARTS_DIRECT(CHARTS_MOVEHS) ,CHARTS_NONE ,CHARTS_MODE_ADD,0,CHARTS_SCALE_NONE , 1, 1}, \ 120 {NULL ,0 ,CHARTS_NONE ,CHARTS_NONE ,CHARTS_NONE ,0 ,0,0 , 0, 0} \ 121 }; 122 123 #endif 124