26 const std::string &fqrn,
34 options_mgr, mount_point, fqrn);
40 "No implementation available for given telemetry class.");
45 if (telemetry->
weak_ref()->is_zombie_) {
47 "Requested telemetry will NOT be used. "
48 "It was not constructed correctly.");
120 struct pollfd watch_term;
122 watch_term.events = POLLIN | POLLPRI;
128 watch_term.revents = 0;
129 int retval = poll(&watch_term, 1, timeout_ms);
131 if (errno == EINTR) {
132 if (timeout_ms >= 0) {
134 timeout_ms = (now > deadline_sec) ? 0 :
135 static_cast<int>((deadline_sec - now) * 1000);
140 "Poll returned %d", retval);
157 assert(watch_term.revents != 0);
atomic_int64 num_hits_inode
atomic_int64 num_misses_path
Statistics GetStatistics()
perf::Statistics * statistics()
void ManuallyUpdateSelectedCounters()
virtual void PushMetrics()=0
pthread_t thread_telemetry_
assert((mem||(size==0))&&"Out Of Memory")
void MakePipe(int pipe_fd[2])
MountPoint * mount_point_
Counter * Lookup(const std::string &name) const
glue::PageCacheTracker * page_cache_tracker()
static TelemetryAggregator * Create(Statistics *statistics, int send_rate, OptionsManager *options_mgr, MountPoint *mount_point, const std::string &fqrn, const TelemetrySelector type)
void SnapshotCounters(std::map< std::string, int64_t > *counters, uint64_t *timestamp_ns)
Statistics GetStatistics()
Statistics GetStatistics()
std::map< std::string, int64_t > counters_
glue::DentryTracker * dentry_tracker()
atomic_int64 num_references
virtual ~TelemetryAggregator()
static void * MainTelemetry(void *data)
atomic_int64 num_hits_path
void WritePipe(int fd, const void *buf, size_t nbyte)
glue::InodeTracker * inode_tracker()
void ReadPipe(int fd, void *buf, size_t nbyte)
void ClosePipe(int pipe_fd[2])
CVMFS_EXPORT void LogCvmfs(const LogSource source, const int mask, const char *format,...)