struct stats_system sys_stats;
int current_index;
int max_index;
- struct app_cpu_usage_report *cpu_report;
- struct app_memory_usage_report *mem_report;
+ struct process_usage_report *usage_report;
};
int _app_report_generator_setup_process_generator(report_generator_app_t *generator);
int report_generator_generate_app_cpu_usage_report(
report_generator_app_t *generator,
int interval,
- struct app_cpu_usage_report *report)
+ struct process_usage_report *report)
{
ON_NULL_RETURN_VAL(generator, -1);
ON_TRUE_RETURN_VAL(interval < 0, -1);
}
if (report_generator_generate_process_cpu_usage_report(
- generator->process_gen, interval, &report->process_report) != 0)
+ generator->process_gen, interval, report) != 0)
{
ERR("report_generator_generate_process_cpu_usage_report failed.");
return 0;
}
strncpy(report->app_id, generator->app_id, sizeof(report->app_id));
- report->process_report.pid = generator->process_gen->pid;
+ report->pid = generator->process_gen->pid;
return 0;
}
int report_generator_generate_app_memory_usage_report(
report_generator_app_t *generator,
- struct app_memory_usage_report *report)
+ struct process_usage_report *report)
{
ON_NULL_RETURN_VAL(generator, -1);
ON_NULL_RETURN_VAL(report, -1);
}
if (report_generator_generate_process_memory_usage_report(
- generator->process_gen, &report->process_report) != 0)
+ generator->process_gen, report) != 0)
{
ERR("report_generator_generate_process_memory_usage_report failed.");
return 0;
}
strncpy(report->app_id, generator->app_id, sizeof(report->app_id));
- report->process_report.pid = generator->process_gen->pid;
+ report->pid = generator->process_gen->pid;
return 0;
}
static bool _append_to_mem_report(struct process *proc, void *data)
{
struct report_generator_top_closure *closure = data;
- struct app_memory_usage_report report = {0,};
+ struct process_usage_report report = {0,};
const char *appid;
int mem;
return false;
if (process_get_memory_usage(proc, &mem) != 0) {
- report.process_report.usage = NAN;
+ report.usage = NAN;
} else {
- report.process_report.usage = (float)mem / closure->sys_stats.total_memory;
+ report.usage = (float)mem / closure->sys_stats.total_memory;
}
appid = process_get_appid(proc);
if (appid) strncpy(report.app_id, appid, sizeof(report.app_id));
- report.process_report.pid = process_get_pid(proc);
- report.process_report.time = clock_realtime_get().tv_sec;
- closure->mem_report[closure->current_index++] = report;
+ report.pid = process_get_pid(proc);
+ report.time = clock_realtime_get().tv_sec;
+ closure->usage_report[closure->current_index++] = report;
return true;
}
static bool _append_to_cpu_report(struct process *proc, void *data)
{
struct report_generator_top_closure *closure = data;
- struct app_cpu_usage_report report = {0,};
+ struct process_usage_report report = {0,};
const char *appid;
unsigned long long ticks = 0;
return false;
if (process_get_cpu_usage(proc, &ticks) != 0) {
- report.process_report.usage = NAN;
+ report.usage = NAN;
} else {
- report.process_report.usage = stats_get_cpu_usage_percentage(ticks, closure->sys_stats.frame_time);
+ report.usage = stats_get_cpu_usage_percentage(ticks, closure->sys_stats.frame_time);
}
appid = process_get_appid(proc);
if (appid) strncpy(report.app_id, appid, sizeof(report.app_id));
- report.process_report.pid = process_get_pid(proc);
- report.process_report.time = clock_realtime_get().tv_sec;
- closure->cpu_report[closure->current_index++] = report;
+ report.pid = process_get_pid(proc);
+ report.time = clock_realtime_get().tv_sec;
+ closure->usage_report[closure->current_index++] = report;
return true;
}
int report_generator_generate_top_cpu_report(
report_generator_top_t *generator,
- struct app_cpu_usage_report **report,
+ struct process_usage_report **report,
int *n_reports)
{
ON_NULL_RETURN_VAL(generator, -1);
closure.max_index = generator->limit;
closure.sys_stats = generator->sys_stats;
- closure.cpu_report = calloc(generator->limit, sizeof(struct app_cpu_usage_report));
- if (!closure.cpu_report) {
+ closure.usage_report = calloc(generator->limit, sizeof(struct process_usage_report));
+ if (!closure.usage_report) {
return -1;
}
if (proc_scanner_foreach_process(generator->scanner, _append_to_cpu_report, &closure) != 0) {
- free(closure.cpu_report);
+ free(closure.usage_report);
return -1;
}
- *report = closure.cpu_report;
+ *report = closure.usage_report;
*n_reports = closure.current_index;
return 0;
int report_generator_generate_top_memory_report(
report_generator_top_t *generator,
- struct app_memory_usage_report **report,
+ struct process_usage_report **report,
int *n_reports)
{
ON_NULL_RETURN_VAL(generator, -1);
closure.max_index = generator->limit;
closure.sys_stats = generator->sys_stats;
- closure.mem_report = calloc(generator->limit, sizeof(struct app_memory_usage_report));
- if (!closure.mem_report) {
+ closure.usage_report = calloc(generator->limit, sizeof(struct process_usage_report));
+ if (!closure.usage_report) {
return -1;
}
if (proc_scanner_foreach_process(generator->scanner, _append_to_mem_report, &closure) != 0) {
- free(closure.mem_report);
+ free(closure.usage_report);
return -1;
}
- *report = closure.mem_report;
+ *report = closure.usage_report;
*n_reports = closure.current_index;
return 0;
int report_generator_generate_app_cpu_usage_report(
report_generator_app_t *generator,
int interval,
- struct app_cpu_usage_report *report);
+ struct process_usage_report *report);
/**
* @brief Fills process_usage_report.
*/
int report_generator_generate_app_memory_usage_report(
report_generator_app_t *generator,
- struct app_memory_usage_report *report);
+ struct process_usage_report *report);
/**
* @brief Fills system_load_average_report
*/
int report_generator_generate_top_cpu_report(
report_generator_top_t *generator,
- struct app_cpu_usage_report **report,
+ struct process_usage_report **report,
int *n_reports);
/**
*/
int report_generator_generate_top_memory_report(
report_generator_top_t *generator,
- struct app_memory_usage_report **report,
+ struct process_usage_report **report,
int *n_reports);
#endif
json_builder_end_object(builder);
}
-static void top_cpu_usage_reports_to_json_object(JsonBuilder *builder, struct app_cpu_usage_report *reports, int len)
+static void top_cpu_usage_reports_to_json_object(JsonBuilder *builder, struct process_usage_report *reports, int len)
{
json_builder_begin_object(builder);
json_builder_add_string_value(builder, reports[i].app_id);
json_builder_set_member_name(builder, SCHEMA_RESULT_PID);
- json_builder_add_double_value(builder, reports[i].process_report.pid);
+ json_builder_add_double_value(builder, reports[i].pid);
json_builder_set_member_name(builder, SCHEMA_RESULT_RESULT);
json_builder_begin_object(builder);
json_builder_set_member_name(builder, SCHEMA_RESULT_TIME);
- json_builder_add_double_value(builder, reports[i].process_report.time);
+ json_builder_add_double_value(builder, reports[i].time);
json_builder_set_member_name(builder, SCHEMA_RESULT_USAGE);
- json_builder_add_double_value(builder, reports[i].process_report.usage);
+ json_builder_add_double_value(builder, reports[i].usage);
json_builder_end_object(builder);
json_builder_end_object(builder);
}
-static void top_memory_usage_reports_to_json_object(JsonBuilder *builder, struct app_memory_usage_report *reports, int len)
+static void top_memory_usage_reports_to_json_object(JsonBuilder *builder, struct process_usage_report *reports, int len)
{
json_builder_begin_object(builder);
json_builder_add_string_value(builder, reports[i].app_id);
json_builder_set_member_name(builder, SCHEMA_RESULT_PID);
- json_builder_add_double_value(builder, reports[i].process_report.pid);
+ json_builder_add_double_value(builder, reports[i].pid);
json_builder_set_member_name(builder, SCHEMA_RESULT_RESULT);
json_builder_begin_object(builder);
json_builder_set_member_name(builder, SCHEMA_RESULT_TIME);
- json_builder_add_double_value(builder, reports[i].process_report.time);
+ json_builder_add_double_value(builder, reports[i].time);
json_builder_set_member_name(builder, SCHEMA_RESULT_USAGE);
- json_builder_add_double_value(builder, reports[i].process_report.usage);
+ json_builder_add_double_value(builder, reports[i].usage);
json_builder_end_object(builder);
json_builder_end_object(builder);
}
-static void apps_cpu_usage_report_to_json_object(JsonBuilder *builder, struct app_cpu_usage_report *report)
+static void apps_cpu_usage_report_to_json_object(JsonBuilder *builder, struct process_usage_report *report)
{
json_builder_begin_object(builder);
json_builder_set_member_name(builder, SCHEMA_ID);
json_builder_add_string_value(builder, report->app_id);
json_builder_set_member_name(builder, SCHEMA_RESULT_PID);
- json_builder_add_int_value(builder, report->process_report.pid);
+ json_builder_add_int_value(builder, report->pid);
json_builder_set_member_name(builder, SCHEMA_RESULT_RESULT);
json_builder_begin_object(builder);
json_builder_set_member_name(builder, SCHEMA_RESULT_TIME);
- json_builder_add_int_value(builder, report->process_report.time);
+ json_builder_add_int_value(builder, report->time);
json_builder_set_member_name(builder, SCHEMA_RESULT_USAGE);
- json_builder_add_double_value(builder, report->process_report.usage);
+ json_builder_add_double_value(builder, report->usage);
json_builder_end_object(builder);
json_builder_end_object(builder);
json_builder_end_object(builder);
}
-static void apps_memory_usage_report_to_json_object(JsonBuilder *builder, struct app_memory_usage_report *report)
+static void apps_memory_usage_report_to_json_object(JsonBuilder *builder, struct process_usage_report *report)
{
json_builder_begin_object(builder);
json_builder_set_member_name(builder, SCHEMA_ID);
json_builder_add_string_value(builder, report->app_id);
json_builder_set_member_name(builder, SCHEMA_RESULT_PID);
- json_builder_add_int_value(builder, report->process_report.pid);
+ json_builder_add_int_value(builder, report->pid);
json_builder_set_member_name(builder, SCHEMA_RESULT_RESULT);
json_builder_begin_object(builder);
json_builder_set_member_name(builder, SCHEMA_RESULT_TIME);
- json_builder_add_int_value(builder, report->process_report.time);
+ json_builder_add_int_value(builder, report->time);
json_builder_set_member_name(builder, SCHEMA_RESULT_USAGE);
- json_builder_add_double_value(builder, report->process_report.usage);
+ json_builder_add_double_value(builder, report->usage);
json_builder_end_object(builder);
json_builder_end_object(builder);
IMPLEMENT_SERIALIZER_FUNC(
report_json_serializer_serialize_apps_cpu_usage_report,
- struct app_cpu_usage_report,
+ struct process_usage_report,
apps_cpu_usage_report_to_json_object)
IMPLEMENT_SERIALIZER_FUNC(
report_json_serializer_serialize_apps_memory_usage_report,
- struct app_memory_usage_report,
+ struct process_usage_report,
apps_memory_usage_report_to_json_object)
IMPLEMENT_ARRAY_SERIALIZER_FUNC(
report_json_serializer_serialize_top_cpu_usage_reports,
- struct app_cpu_usage_report,
+ struct process_usage_report,
top_cpu_usage_reports_to_json_object)
IMPLEMENT_ARRAY_SERIALIZER_FUNC(
report_json_serializer_serialize_top_memory_usage_reports,
- struct app_memory_usage_report,
+ struct process_usage_report,
top_memory_usage_reports_to_json_object)
* @return dynamically allocated string on NULL on error.
* @remark returned value should be released with @free
*/
-char *report_json_serializer_serialize_apps_cpu_usage_report(struct app_cpu_usage_report *report);
+char *report_json_serializer_serialize_apps_cpu_usage_report(struct process_usage_report *report);
/**
- * @brief Serializes app_memory_usage_report to json string
+ * @brief Serializes process_usage_report to json string
*
* @param[in] report Report structure with usage data.
*
* @return dynamically allocated string on NULL on error.
* @remark returned value should be released with @free
*/
-char *report_json_serializer_serialize_apps_memory_usage_report(struct app_memory_usage_report *report);
+char *report_json_serializer_serialize_apps_memory_usage_report(struct process_usage_report *report);
/**
* @brief Serializes app_system_cpu_usage_reports to json string
* @return dynamically allocated string on NULL on error.
* @remark returned value should be released with @free
*/
-char *report_json_serializer_serialize_top_cpu_usage_reports(struct app_cpu_usage_report *reports, int len);
+char *report_json_serializer_serialize_top_cpu_usage_reports(struct process_usage_report *reports, int len);
/**
* @brief Serializes app_memory_usage_reports to json string
* @return dynamically allocated string on NULL on error.
* @remark returned value should be released with @free
*/
-char *report_json_serializer_serialize_top_memory_usage_reports(struct app_memory_usage_report *reports, int len);
+char *report_json_serializer_serialize_top_memory_usage_reports(struct process_usage_report *reports, int len);
#endif
time_t time; /** Number of seconds after the Epoch */
int pid; /** Process Pid */
float usage; /** CPU utilization of process (Percent) */
-};
-
-/**
- * @brief Application CPU usage report.
- */
-struct app_cpu_usage_report {
- char app_id[APP_ID_MAX_SIZE];
- struct process_usage_report process_report;
-};
-
-/**
- * @brief Application memory usage report.
- */
-struct app_memory_usage_report {
char app_id[APP_ID_MAX_SIZE];
- struct process_usage_report process_report;
};
#endif
app_task_t *_app_task = container_of(task, app_task_t, task);
- struct app_memory_usage_report report;
+ struct process_usage_report report;
report_generator_generate_app_memory_usage_report(_app_task->report_generator, &report);
app_task_t *_app_task = container_of(task, app_task_t, task);
- struct app_cpu_usage_report reports;
+ struct process_usage_report reports;
report_generator_generate_app_cpu_usage_report(_app_task->report_generator, 0, &reports);
ON_NULL_RETURN(task);
top_task_t *_top_task = container_of(task, top_task_t, task);
- struct app_cpu_usage_report *reports;
+ struct process_usage_report *reports;
int n_reports;
report_generator_generate_top_cpu_report(_top_task->report_generator, &reports, &n_reports);
ON_NULL_RETURN(task);
top_task_t *_top_task = container_of(task, top_task_t, task);
- struct app_memory_usage_report *reports;
+ struct process_usage_report *reports;
int n_reports;
report_generator_generate_top_memory_report(_top_task->report_generator, &reports, &n_reports);