/* * GpfsmonSensorBase.h * * Created on: 26.11.2018 * Author: Carla Guillen */ #ifndef GPFSMON_GPFSMONSENSORBASE_H_ #define GPFSMON_GPFSMONSENSORBASE_H_ #include "sensorbase.h" #include enum GPFS_METRIC { TIMESTAMP_GPFS=0, IOBYTESREAD=1, IOBYTESWRITE=2, IOOPENS=3, IOCLOSES=4, IOREADS=5, IOWRITES=6, READDIR=7, INODE_UPDATES=8, SIZE = INODE_UPDATES +1 }; class GpfsmonSensorBase : public SensorBase { public: GpfsmonSensorBase(const std::string& name) : SensorBase(name), _metric_type(GPFS_METRIC::SIZE) { setDelta(true); } virtual ~GpfsmonSensorBase() { } GPFS_METRIC getMetricType() const { return _metric_type; } void setMetricType(GPFS_METRIC metricType) { _metric_type = metricType; } GpfsmonSensorBase(const GpfsmonSensorBase& )=default; GpfsmonSensorBase& operator=(const GpfsmonSensorBase &)=default; void printConfig(LOG_LEVEL ll, LOGGER& lg, unsigned leadingSpaces=16) { std::string leading(leadingSpaces, ' '); std::string metric("unknown"); switch (_metric_type) { case TIMESTAMP_GPFS: metric = "TIMESTAMP_GPFS"; break; case IOBYTESREAD: metric = "IOBYTESREAD"; break; case IOBYTESWRITE: metric = "IOBYTESWRITE"; break; case IOOPENS: metric = "IOOPENS"; break; case IOCLOSES: metric = "IOCLOSES"; break; case IOREADS: metric = "IOREADS"; break; case IOWRITES: metric = "IOWRITES"; break; case READDIR: metric = "READDIR"; break; case INODE_UPDATES: metric = "INODE_UPDATES"; break; case SIZE: metric = "SIZE"; break; } LOG_VAR(ll) << leading << " Metric type: " << metric; } protected: GPFS_METRIC _metric_type; }; #endif /* GPFSMON_GPFSMONSENSORBASE_H_ */