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.");
87 ->
Lookup(
"inode_tracker.n_insert")
90 ->
Lookup(
"inode_tracker.n_remove")
93 ->
Lookup(
"inode_tracker.no_reference")
96 ->
Lookup(
"inode_tracker.n_hit_inode")
99 ->
Lookup(
"inode_tracker.n_hit_path")
102 ->
Lookup(
"inode_tracker.n_miss_path")
105 ->
Lookup(
"dentry_tracker.n_insert")
108 ->
Lookup(
"dentry_tracker.n_remove")
111 ->
Lookup(
"dentry_tracker.n_prune")
114 ->
Lookup(
"page_cache_tracker.n_insert")
117 ->
Lookup(
"page_cache_tracker.n_remove")
120 ->
Lookup(
"page_cache_tracker.n_open_direct")
123 ->
Lookup(
"page_cache_tracker.n_open_flush")
126 ->
Lookup(
"page_cache_tracker.n_open_cached")
135 struct pollfd watch_term;
137 watch_term.events = POLLIN | POLLPRI;
142 watch_term.revents = 0;
143 const int retval = poll(&watch_term, 1, timeout_ms);
145 if (errno == EINTR) {
146 if (timeout_ms >= 0) {
148 timeout_ms = (now > deadline_sec)
150 : static_cast<int>((deadline_sec - now) * 1000);
155 "Error in telemetry thread. "
174 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,...)