/* count is a scaled counter, so that all states in sum increase by 1000000
* per second. */
- fpcounter_t count;
+ double count;
bool has_count;
rate_to_value_state_t to_count;
} usage_state_t;
return usage_rate(u, cpu, state) / global_rate;
}
-static fpcounter_t usage_count(usage_t *u, size_t cpu, state_t state) {
+static double usage_count(usage_t *u, size_t cpu, state_t state) {
usage_finalize(u);
usage_state_t us;
if (report_by_state) {
for (state_t state = 0; state < STATE_ACTIVE; state++) {
- fpcounter_t usage = usage_count(u, cpu_num, state);
+ double usage = usage_count(u, cpu_num, state);
if (isnan(usage)) {
continue;
}
(value_t){.counter_fp = usage}, &m);
}
} else {
- fpcounter_t usage = usage_count(u, cpu_num, STATE_ACTIVE);
+ double usage = usage_count(u, cpu_num, STATE_ACTIVE);
if (!isnan(usage)) {
metric_family_append(&fam, label_state, cpu_state_names[STATE_ACTIVE],
(value_t){.counter_fp = usage}, &m);
return 0;
}
-static bool expect_usage_count(fpcounter_t want, fpcounter_t got, size_t cpu,
+static bool expect_usage_count(double want, double got, size_t cpu,
state_t state) {
char cpu_str[64] = "CPU_ALL";
if (cpu != SIZE_MAX) {
}
}
- fpcounter_t state_time[STATE_MAX] = {0};
- fpcounter_t sum_time = 0;
+ double state_time[STATE_MAX] = {0};
+ double sum_time = 0;
for (size_t cpu = 0; cpu < CPU_NUM; cpu++) {
derive_t active_increment = 0;
for (state_t s = 0; s < STATE_ACTIVE; s++) {
active_increment += increment;
}
- fpcounter_t want_time = CDTIME_T_TO_DOUBLE(interval) *
- ((fpcounter_t)increment) /
- ((fpcounter_t)cpu_increment[cpu]);
+ double want_time = CDTIME_T_TO_DOUBLE(interval) * ((double)increment) /
+ ((double)cpu_increment[cpu]);
state_time[s] += want_time;
sum_time += want_time;
ret = ret || !ok;
}
- fpcounter_t want_active_time = CDTIME_T_TO_DOUBLE(interval) *
- ((fpcounter_t)active_increment) /
- ((fpcounter_t)cpu_increment[cpu]);
+ double want_active_time = CDTIME_T_TO_DOUBLE(interval) *
+ ((double)active_increment) /
+ ((double)cpu_increment[cpu]);
state_time[STATE_ACTIVE] += want_active_time;
bool ok = expect_usage_count(want_active_time,
usage_count(&usage, cpu, STATE_ACTIVE), cpu,
if ((read_time_ns != -1LL) || (write_time_ns != -1LL)) {
metric_family_append(
&fam_ops_time, direction_label, read_direction,
- (value_t){.counter_fp = ((fpcounter_t)read_time_ns) / 1e9}, &m);
+ (value_t){.counter_fp = ((double)read_time_ns) / 1e9}, &m);
metric_family_append(
&fam_ops_time, direction_label, write_direction,
- (value_t){.counter_fp = ((fpcounter_t)write_time_ns) / 1e9}, &m);
+ (value_t){.counter_fp = ((double)write_time_ns) / 1e9}, &m);
}
metric_reset(&m);
}
devstat_compute_etime(&snap_iter->duration[DEVSTAT_WRITE], NULL);
if ((read_time_s != 0) || (write_time_s != 0)) {
metric_family_append(&fam_ops_time, direction_label, read_direction,
- (value_t){.counter_fp = (fpcounter_t)read_time_s},
- &m);
+ (value_t){.counter_fp = (double)read_time_s}, &m);
metric_family_append(&fam_ops_time, direction_label, write_direction,
- (value_t){.counter_fp = (fpcounter_t)write_time_s},
- &m);
+ (value_t){.counter_fp = (double)write_time_s}, &m);
}
long double busy_time = 0, utilization = 0, total_duration_s = 0;
DSM_QUEUE_LENGTH, &queue_length, DSM_NONE) != 0) {
WARNING("%s", devstat_errbuf);
} else {
- m.value.counter_fp = (fpcounter_t)busy_time;
+ m.value.counter_fp = (double)busy_time;
metric_family_metric_append(&fam_disk_io_time, m);
m.value.gauge = (gauge_t)utilization;
metric_family_metric_append(&fam_utilization, m);
- m.value.counter_fp = (fpcounter_t)total_duration_s;
+ m.value.counter_fp = (double)total_duration_s;
metric_family_metric_append(&fam_disk_io_weighted_time, m);
m.value.gauge = (gauge_t)queue_length;
if ((read_time_ms != 0) || (write_time_ms != 0)) {
metric_family_append(
&fam_ops_time, direction_label, read_direction,
- (value_t){.counter_fp = ((fpcounter_t)read_time_ms) / 1000}, &m);
+ (value_t){.counter_fp = ((double)read_time_ms) / 1000}, &m);
metric_family_append(
&fam_ops_time, direction_label, write_direction,
- (value_t){.counter_fp = ((fpcounter_t)write_time_ms) / 1000}, &m);
+ (value_t){.counter_fp = ((double)write_time_ms) / 1000}, &m);
}
if (read_merged != 0 || write_merged != 0) {
}
if (io_time_ms != 0) {
- m.value.counter_fp = ((fpcounter_t)io_time_ms) / 1000.0;
+ m.value.counter_fp = ((double)io_time_ms) / 1000.0;
metric_family_metric_append(&fam_disk_io_time, m);
}
if (weighted_time_ms != 0) {
- m.value.counter_fp = ((fpcounter_t)weighted_time_ms) / 1000.0;
+ m.value.counter_fp = ((double)weighted_time_ms) / 1000.0;
metric_family_metric_append(&fam_disk_io_weighted_time, m);
}
if (strncmp(ksp[i]->ks_class, "disk", strlen("disk")) == 0) {
hrtime_t run_time_ns = kio.rtime;
- m.value.counter_fp = ((fpcounter_t)run_time_ns) / 1e9;
+ m.value.counter_fp = ((double)run_time_ns) / 1e9;
metric_family_metric_append(&fam_disk_io_time, m);
hrtime_t weighted_io_time_ns = kio.rlentime;
- m.value.counter_fp = ((fpcounter_t)weighted_io_time_ns) / 1e9;
+ m.value.counter_fp = ((double)weighted_io_time_ns) / 1e9;
metric_family_metric_append(&fam_disk_io_weighted_time, m);
uint_t ops_waiting = kio.wcnt;
_system_configuration.Xfrac;
derive_t write_time_ns = stat_disk[i].wserv * _system_configuration.Xint /
_system_configuration.Xfrac;
- metric_family_append(
- &fam_ops_time, direction_label, read_direction,
- (value_t){.counter_fp = ((fpcounter_t)read_time_ns) / 1e9}, &m);
- metric_family_append(
- &fam_ops_time, direction_label, write_direction,
- (value_t){.counter_fp = ((fpcounter_t)write_time_ns) / 1e9}, &m);
+ metric_family_append(&fam_ops_time, direction_label, read_direction,
+ (value_t){.counter_fp = ((double)read_time_ns) / 1e9},
+ &m);
+ metric_family_append(&fam_ops_time, direction_label, write_direction,
+ (value_t){.counter_fp = ((double)write_time_ns) / 1e9},
+ &m);
metric_reset(&m);
}
metric_family_append(&fam_ops, direction_label, write_direction,
(value_t){.counter = drives[i].wxfer}, &m);
- m.value.counter_fp = ((fpcounter_t)drives[i].time_sec) +
- ((fpcounter_t)drives[i].time_usec) / 1e6;
+ m.value.counter_fp =
+ ((double)drives[i].time_sec) + ((double)drives[i].time_usec) / 1e6;
metric_family_metric_append(&fam_disk_io_time, m);
metric_reset(&m);