25 const std::string &fqrn,
33 statistics, send_rate, options_mgr, mount_point, fqrn);
39 "No implementation available for given telemetry class.");
44 if (telemetry->
weak_ref()->is_zombie_) {
46 "Requested telemetry will NOT be used. "
47 "It was not constructed correctly.");
86 ->
Lookup(
"inode_tracker.n_insert")
89 ->
Lookup(
"inode_tracker.n_remove")
92 ->
Lookup(
"inode_tracker.no_reference")
95 ->
Lookup(
"inode_tracker.n_hit_inode")
98 ->
Lookup(
"inode_tracker.n_hit_path")
101 ->
Lookup(
"inode_tracker.n_miss_path")
104 ->
Lookup(
"dentry_tracker.n_insert")
107 ->
Lookup(
"dentry_tracker.n_remove")
110 ->
Lookup(
"dentry_tracker.n_prune")
113 ->
Lookup(
"page_cache_tracker.n_insert")
116 ->
Lookup(
"page_cache_tracker.n_remove")
119 ->
Lookup(
"page_cache_tracker.n_open_direct")
122 ->
Lookup(
"page_cache_tracker.n_open_flush")
125 ->
Lookup(
"page_cache_tracker.n_open_cached")
134 struct pollfd watch_term;
136 watch_term.events = POLLIN | POLLPRI;
141 watch_term.revents = 0;
142 int retval = poll(&watch_term, 1, timeout_ms);
144 if (errno == EINTR) {
145 if (timeout_ms >= 0) {
147 timeout_ms = (now > deadline_sec)
149 : static_cast<int>((deadline_sec - now) * 1000);
154 "Error in telemetry thread. "
173 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()
void Set(const int64_t val)
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,...)