⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 libmetrics.c

📁 是一个包装库
💻 C
📖 第 1 页 / 共 3 页
字号:
         val.f = diff / t;         }       last_bytes_in  = bytes_in;       last_pkts_in = pkts_in;       last_pkts_out = pkts_out;       last_bytes_out = bytes_out;       stamp = proc_net_dev.last_read;     }   debug_msg(" **********  BYTES_IN RETURN:  %f", val.f);   return val;}g_val_tcpu_num_func ( void ){   static int cpu_num = 0;   g_val_t val;   /* Only need to do this once */   if (! cpu_num) {      /* We'll use _SC_NPROCESSORS_ONLN to get operating cpus */      cpu_num = get_nprocs();   }   val.uint16 = cpu_num;   return val;}g_val_tcpu_speed_func ( void ){   char *p;   static g_val_t val = {0};/* i386, ia64, x86_64 and hppa all report MHz in the same format */#if defined (__i386__) || defined(__ia64__) || defined(__hppa__) || defined(__x86_64__)   if (! val.uint32 )      {         p = proc_cpuinfo;           p = strstr( p, "cpu MHz" );         if(p) {           p = strchr( p, ':' );           p++;           p = skip_whitespace(p);           val.uint32 = (uint32_t)strtol( p, (char **)NULL , 10 );         } else {           val.uint32 = 0;         }      }#endif#if defined (__alpha__)   if (! val.uint32 ) {         int num;         p = proc_cpuinfo;         p = strstr( p, "cycle frequency [Hz]" );         if(p) {           p = strchr( p, ':' );           p++;           p = skip_whitespace(p);           sscanf(p, "%d", &num);           num = num / 1000000;  /* Convert to Mhz */           val.uint32 = (uint32_t)num;         } else {           val.uint32 = 0;         }      }#endif#if defined (__powerpc__)   if (! val.uint32 )      {         p = proc_cpuinfo;         p = strstr( p, "clock" );         if(p) {            p = strchr( p, ':' );           p++;           p = skip_whitespace(p);           val.uint32 = (uint32_t)strtol( p, (char **)NULL , 10 );        } else {           val.uint32 = 0;        }      }#endif   return val;}g_val_tmem_total_func ( void ){   char *p;   g_val_t val;   p = strstr( update_file(&proc_meminfo), "MemTotal:");   if(p) {     p = skip_token(p);     val.uint32 = strtol( p, (char **)NULL, 10 );   } else {     val.uint32 = 0;   }   return val;}g_val_tswap_total_func ( void ){   char *p;   g_val_t val;    p = strstr( update_file(&proc_meminfo), "SwapTotal:" );   if(p) {     p = skip_token(p);     val.uint32 = strtol( p, (char **)NULL, 10 );     } else {     val.uint32 = 0;   }   return val;}g_val_tboottime_func ( void ){   char *p;   g_val_t val;   p = update_file(&proc_stat);    p = strstr ( p, "btime" );   if(p) {      p = skip_token ( p );     val.uint32 = strtod ( p, (char **)NULL );   } else {     val.uint32 = 0;   }   return val;}g_val_tsys_clock_func ( void ){   g_val_t val;   val.uint32 = time(NULL);   return val;}g_val_tmachine_type_func ( void ){   g_val_t val; #ifdef __i386__   snprintf(val.str, MAX_G_STRING_SIZE, "x86");#endif#ifdef __x86_64__   snprintf(val.str, MAX_G_STRING_SIZE, "x86_64");#endif#ifdef __ia64__   snprintf(val.str, MAX_G_STRING_SIZE, "ia64");#endif#ifdef __sparc__   snprintf(val.str, MAX_G_STRING_SIZE, "sparc");#endif#ifdef __alpha__   snprintf(val.str, MAX_G_STRING_SIZE, "alpha");#endif#ifdef __powerpc__   snprintf(val.str, MAX_G_STRING_SIZE, "powerpc");#endif#ifdef __m68k__   snprintf(val.str, MAX_G_STRING_SIZE, "m68k");#endif#ifdef __mips__   snprintf(val.str, MAX_G_STRING_SIZE, "mips");#endif#ifdef __arm__   snprintf(val.str, MAX_G_STRING_SIZE, "arm");#endif#ifdef __hppa__   snprintf(val.str, MAX_G_STRING_SIZE, "hppa");#endif#ifdef __s390__   snprintf(val.str, MAX_G_STRING_SIZE, "s390");#endif   return val;}g_val_tos_name_func ( void ){   g_val_t val;   snprintf(val.str, MAX_G_STRING_SIZE, "Linux");   return val;}g_val_tos_release_func ( void ){   g_val_t val;   snprintf(val.str, MAX_G_STRING_SIZE, "%s", proc_sys_kernel_osrelease);   return val;}/* * A helper function to return the total number of cpu jiffies */unsigned longtotal_jiffies_func ( void ){   char *p;   unsigned long user_jiffies, nice_jiffies, system_jiffies, idle_jiffies,                 wio_jiffies, irq_jiffies, sirq_jiffies;   p = update_file(&proc_stat);   p = skip_token(p);   p = skip_whitespace(p);   user_jiffies = strtod( p, &p );   p = skip_whitespace(p);   nice_jiffies = strtod( p, &p );    p = skip_whitespace(p);   system_jiffies = strtod( p , &p );    p = skip_whitespace(p);   idle_jiffies = strtod( p , &p );   if(num_cpustates == NUM_CPUSTATES_24X)     return user_jiffies + nice_jiffies + system_jiffies + idle_jiffies;   p = skip_whitespace(p);   wio_jiffies = strtod( p , &p );   p = skip_whitespace(p);   irq_jiffies = strtod( p , &p );   p = skip_whitespace(p);   sirq_jiffies = strtod( p , &p );     return user_jiffies + nice_jiffies + system_jiffies + idle_jiffies +          wio_jiffies + irq_jiffies + sirq_jiffies; }   g_val_tcpu_user_func ( void ){   char *p;   static g_val_t val;   static int stamp;   static double last_user_jiffies,  user_jiffies,                  last_total_jiffies, total_jiffies, diff;      p = update_file(&proc_stat);   if(proc_stat.last_read != stamp) {     stamp = proc_stat.last_read;          p = skip_token(p);     user_jiffies  = strtod( p , (char **)NULL );     total_jiffies = total_jiffies_func();          diff = user_jiffies - last_user_jiffies;           if ( diff )       val.f = (diff/(total_jiffies - last_total_jiffies))*100;     else       val.f = 0.0;          last_user_jiffies  = user_jiffies;     last_total_jiffies = total_jiffies;        }   return val;}g_val_tcpu_nice_func ( void ){   char *p;   static g_val_t val;   static int stamp;   static double last_nice_jiffies,  nice_jiffies,                 last_total_jiffies, total_jiffies, diff;    p = update_file(&proc_stat);   if(proc_stat.last_read != stamp) {     stamp = proc_stat.last_read;      p = skip_token(p);     p = skip_token(p);     nice_jiffies  = strtod( p , (char **)NULL );     total_jiffies = total_jiffies_func();     diff = (nice_jiffies  - last_nice_jiffies);      if ( diff )       val.f = (diff/(total_jiffies - last_total_jiffies))*100;     else       val.f = 0.0;      last_nice_jiffies  = nice_jiffies;     last_total_jiffies = total_jiffies;   }   return val;}g_val_t cpu_system_func ( void ){   char *p;   static g_val_t val;   static int stamp;   static double last_system_jiffies,  system_jiffies,                 last_total_jiffies, total_jiffies, diff;    p = update_file(&proc_stat);   if(proc_stat.last_read != stamp) {     stamp = proc_stat.last_read;          p = skip_token(p);     p = skip_token(p);     p = skip_token(p);     system_jiffies = strtod( p , (char **)NULL );     if (num_cpustates > NUM_CPUSTATES_24X) {       p = skip_token(p);       p = skip_token(p);       p = skip_token(p);       system_jiffies += strtod( p , (char **)NULL ); /* "intr" counted in system */       p = skip_token(p);       system_jiffies += strtod( p , (char **)NULL ); /* "sintr" counted in system */       }     total_jiffies  = total_jiffies_func();     diff = system_jiffies  - last_system_jiffies;      if ( diff )       val.f = (diff/(total_jiffies - last_total_jiffies))*100;     else       val.f = 0.0;      last_system_jiffies  = system_jiffies;     last_total_jiffies = total_jiffies;      }   return val;}g_val_t cpu_idle_func ( void ){   char *p;   static g_val_t val;   static int stamp;   static double last_idle_jiffies,  idle_jiffies,                 last_total_jiffies, total_jiffies, diff;    p = update_file(&proc_stat);   if(proc_stat.last_read != stamp) {     stamp = proc_stat.last_read;          p = skip_token(p);     p = skip_token(p);     p = skip_token(p);     p = skip_token(p);     idle_jiffies  = strtod( p , (char **)NULL );     total_jiffies = total_jiffies_func();          diff = idle_jiffies - last_idle_jiffies;          if ( diff )        val.f = (diff/(total_jiffies - last_total_jiffies))*100;     else       val.f = 0.0;          last_idle_jiffies  = idle_jiffies;     last_total_jiffies = total_jiffies;        }      return val;}g_val_t cpu_aidle_func ( void ){   char *p;   g_val_t val;   double idle_jiffies, total_jiffies;      p = update_file(&proc_stat);   p = skip_token(p);   p = skip_token(p);   p = skip_token(p);   p = skip_token(p);   idle_jiffies  = strtod( p , (char **)NULL );   total_jiffies = total_jiffies_func();      val.f = (idle_jiffies/total_jiffies)*100;   return val;}g_val_t cpu_wio_func ( void ){   char *p;   static g_val_t val;   static int stamp;   static double last_wio_jiffies,  wio_jiffies,                 last_total_jiffies, total_jiffies, diff;    if (num_cpustates == NUM_CPUSTATES_24X) {     val.f = 0.;     return val;     }   p = update_file(&proc_stat);   if(proc_stat.last_read != stamp) {     stamp = proc_stat.last_read;          p = skip_token(p);     p = skip_token(p);     p = skip_token(p);     p = skip_token(p);     p = skip_token(p);     wio_jiffies  = strtod( p , (char **)NULL );     total_jiffies = total_jiffies_func();          diff = wio_jiffies - last_wio_jiffies;          if ( diff )        val.f = (diff/(total_jiffies - last_total_jiffies))*100;     else       val.f = 0.0;          last_wio_jiffies  = wio_jiffies;     last_total_jiffies = total_jiffies;        }      return val;}g_val_t cpu_intr_func ( void ){   char *p;   static g_val_t val;   static int stamp;   static double last_intr_jiffies,  intr_jiffies,                 last_total_jiffies, total_jiffies, diff;    if (num_cpustates == NUM_CPUSTATES_24X) {     val.f = 0.;     return val;     }   p = update_file(&proc_stat);   if(proc_stat.last_read != stamp) {     stamp = proc_stat.last_read;          p = skip_token(p);     p = skip_token(p);     p = skip_token(p);     p = skip_token(p);     p = skip_token(p);     p = skip_token(p);     intr_jiffies  = strtod( p , (char **)NULL );     total_jiffies = total_jiffies_func();          diff = intr_jiffies - last_intr_jiffies;          if ( diff )        val.f = (diff/(total_jiffies - last_total_jiffies))*100;     else       val.f = 0.0;          last_intr_jiffies  = intr_jiffies;     last_total_jiffies = total_jiffies;        }      return val;}g_val_t cpu_sintr_func ( void ){   char *p;   static g_val_t val;   static int stamp;   static double last_sintr_jiffies,  sintr_jiffies,                 last_total_jiffies, total_jiffies, diff;    if (num_cpustates == NUM_CPUSTATES_24X) {     val.f = 0.;     return val;     }   p = update_file(&proc_stat);   if(proc_stat.last_read != stamp) {     stamp = proc_stat.last_read;          p = skip_token(p);     p = skip_token(p);     p = skip_token(p);     p = skip_token(p);     p = skip_token(p);     p = skip_token(p);     p = skip_token(p);     sintr_jiffies  = strtod( p , (char **)NULL );     total_jiffies = total_jiffies_func();          diff = sintr_jiffies - last_sintr_jiffies;          if ( diff )        val.f = (diff/(total_jiffies - last_total_jiffies))*100;     else       val.f = 0.0;          last_sintr_jiffies  = sintr_jiffies;     last_total_jiffies = total_jiffies;        }      return val;}g_val_tproc_run_func( void ){   char *p;   g_val_t val;   p = update_file(&proc_loadavg);   p = skip_token(p);   p = skip_token(p);   p = skip_token(p);   val.uint32 = strtol( p, (char **)NULL, 10 );   val.uint32--;   /* This shouldn't happen.. but it might */   if (val.uint32 <0)      val.uint32 = 0;   return val;}g_val_tproc_total_func ( void ){   char *p;   g_val_t val;   p = update_file(&proc_loadavg);   p = skip_token(p);   p = skip_token(p);   p = skip_token(p);    p = skip_whitespace(p);   while ( isdigit(*p) )      p++;   p++;  /* skip the slash-/ */    val.uint32 = strtol( p, (char **)NULL, 10 );    return val;}g_val_tmem_free_func ( void ){   char *p;   g_val_t val;   p = strstr( update_file(&proc_meminfo), "MemFree:" );   if(p) {     p = skip_token(p);     val.uint32 = strtol( p, (char **)NULL, 10 );   } else {     val.uint32 = 0;   }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -