X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=blobdiff_plain;f=snmp%2Flustre-snmp.c;h=ce838a0ef877f88c56b6ac6a6dddac5478a928e9;hp=0de2c4dda122a37d321e6483cc86fbcca3751769;hb=a296e9433919a6d709ae7826ecc5310d9e2d1365;hpb=c6bc5eb7d073d5a7b7d0934d92bfd8eab15fc825 diff --git a/snmp/lustre-snmp.c b/snmp/lustre-snmp.c index 0de2c4d..ce838a0 100644 --- a/snmp/lustre-snmp.c +++ b/snmp/lustre-snmp.c @@ -1,23 +1,41 @@ /* -*- mode: c; c-basic-offset: 8; indent-tabs-mode: nil; -*- * vim:expandtab:shiftwidth=8:tabstop=8: * - * Copyright (c) 2005 Cluster File Systems, Inc. - * Author: PJ Kirner + * GPL HEADER START * - * This file is part of Lustre, http://www.lustre.org. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * - * Lustre is free software; you can redistribute it and/or - * modify it under the terms of version 2 of the GNU General Public - * License as published by the Free Software Foundation. + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 only, + * as published by the Free Software Foundation. * - * Lustre is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License version 2 for more details (a copy is included + * in the LICENSE file that accompanied this code). * - * You should have received a copy of the GNU General Public License - * along with Lustre; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + * You should have received a copy of the GNU General Public License + * version 2 along with this program; If not, see + * http://www.sun.com/software/products/lustre/docs/GPLv2.pdf + * + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, + * CA 95054 USA or visit www.sun.com if you need additional information or + * have any questions. + * + * GPL HEADER END + */ +/* + * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. + * Use is subject to license terms. + */ +/* + * This file is part of Lustre, http://www.lustre.org/ + * Lustre is a trademark of Sun Microsystems, Inc. + * + * snmp/lustre-snmp.c + * + * Author: PJ Kirner */ #include @@ -88,6 +106,7 @@ struct variable7 clusterFileSystems_variables[] = { { MDDFREECAPACITY , ASN_COUNTER64 , RONLY , var_mdsTable, 6, { 2,1,4,2,1,5 } }, { MDDFILES , ASN_COUNTER64 , RONLY , var_mdsTable, 6, { 2,1,4,2,1,6 } }, { MDDFREEFILES , ASN_COUNTER64 , RONLY , var_mdsTable, 6, { 2,1,4,2,1,7 } }, + { MDSNBSAMPLEDREQ , ASN_COUNTER64 , RONLY , var_mdsNbSampledReq, 4, { 2,1,4,3 } }, /* metaDataClients 2.1.5 */ { MDCNUMBER , ASN_UNSIGNED , RONLY , var_clusterFileSystems, 4, { 2,1,5,1 } }, @@ -219,23 +238,23 @@ var_clusterFileSystems(struct variable *vp, case SYSVERSION: sprintf(file_path, "%s%s", LUSTRE_PATH,"version"); - if( SUCCESS != read_string(file_path, string,sizeof(string))) + if( SUCCESS != read_string(file_path, (char *)string,sizeof(string))) return NULL; - *var_len = strlen(string); + *var_len = strlen((char *)string); return (unsigned char *) string; case SYSKERNELVERSION: sprintf(file_path, "%s%s", LUSTRE_PATH,"kernel_version"); - if( SUCCESS != read_string(file_path, string,sizeof(string))) + if( SUCCESS != read_string(file_path, (char *)string,sizeof(string))) return NULL; - *var_len = strlen(string); + *var_len = strlen((char *)string); return (unsigned char *) string; case SYSHEALTHCHECK: sprintf(file_path, "%s%s", LUSTRE_PATH,FILENAME_SYSHEALTHCHECK); - if( SUCCESS != read_string(file_path, string,sizeof(string))) + if( SUCCESS != read_string(file_path, (char *)string,sizeof(string))) return NULL; - *var_len = strlen(string); + *var_len = strlen((char*)string); return (unsigned char *) string; case SYSSTATUS: @@ -511,6 +530,36 @@ var_ldlmTable(struct variable *vp, /***************************************************************************** + * Function: var_mdsNbSampledReq + * + ****************************************************************************/ +unsigned char * +var_mdsNbSampledReq(struct variable *vp, + oid *name, + size_t *length, + int exact, + size_t *var_len, + WriteMethod **write_method) +{ + unsigned long long nb_sample=0,min=0,max=0,sum=0,sum_square=0; + static counter64 c64; + + if (header_generic(vp,name,length,exact,var_len,write_method) + == MATCH_FAILED ) + return NULL; + + if( mds_stats_values(STR_REQ_WAITIME,&nb_sample,&min,&max,&sum,&sum_square) == ERROR) return NULL; + + c64.low = (u_long) (0x0FFFFFFFF & nb_sample); + nb_sample >>= 32; + c64.high = (u_long) (0x0FFFFFFFF & nb_sample); + + *var_len = sizeof(c64); + return (unsigned char *) &c64; +} + + +/***************************************************************************** * Function: write_sysStatus * ****************************************************************************/ @@ -525,7 +574,7 @@ write_sysStatus(int action, { static long *long_ret; int size; - int pid, new_value; + int new_value; @@ -598,4 +647,3 @@ write_sysStatus(int action, } return SNMP_ERR_NOERROR; } -