mirror of
https://github.com/netdata/netdata.git
synced 2025-05-06 10:10:11 +00:00
48 lines
2.1 KiB
C
48 lines
2.1 KiB
C
#ifndef WORKER_UTILIZATION_H
|
|
#define WORKER_UTILIZATION_H 1
|
|
|
|
#include "../libnetdata.h"
|
|
|
|
// workers interfaces
|
|
|
|
#define WORKER_UTILIZATION_MAX_JOB_TYPES 50
|
|
|
|
typedef enum __attribute__((packed)) {
|
|
WORKER_METRIC_EMPTY = 0,
|
|
WORKER_METRIC_IDLE_BUSY = 1,
|
|
WORKER_METRIC_ABSOLUTE = 2,
|
|
WORKER_METRIC_INCREMENT = 3,
|
|
WORKER_METRIC_INCREMENTAL_TOTAL = 4,
|
|
} WORKER_METRIC_TYPE;
|
|
|
|
size_t workers_allocated_memory(void);
|
|
void worker_register(const char *name);
|
|
void worker_register_job_name(size_t job_id, const char *name);
|
|
void worker_register_job_custom_metric(size_t job_id, const char *name, const char *units, WORKER_METRIC_TYPE type);
|
|
void worker_unregister(void);
|
|
|
|
void worker_is_idle(void);
|
|
void worker_is_busy(size_t job_id);
|
|
void worker_set_metric(size_t job_id, NETDATA_DOUBLE value);
|
|
|
|
// statistics interface
|
|
|
|
void workers_foreach(const char *name, void (*callback)(
|
|
void *data
|
|
, pid_t pid
|
|
, const char *thread_tag
|
|
, size_t max_job_id
|
|
, size_t utilization_usec
|
|
, size_t duration_usec
|
|
, size_t jobs_started
|
|
, size_t is_running
|
|
, STRING **job_types_names
|
|
, STRING **job_types_units
|
|
, WORKER_METRIC_TYPE *job_metric_types
|
|
, size_t *job_types_jobs_started
|
|
, usec_t *job_types_busy_time
|
|
, NETDATA_DOUBLE *job_custom_values
|
|
)
|
|
, void *data);
|
|
|
|
#endif // WORKER_UTILIZATION_H
|