blob: 629144ea9ca6c78119806512444bb5560e9e4bef [file] [log] [blame]
// Copyright 2019 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "src/storage/minfs/metrics.h"
#include <optional>
namespace minfs {
MinfsMetrics::MinfsMetrics(const fuchsia_minfs::wire::Metrics* metrics) {
initialized_vmos = metrics->initialized_vmos;
init_dnum_count = metrics->init_dnum_count;
init_inum_count = metrics->init_inum_count;
init_dinum_count = metrics->init_dinum_count;
init_user_data_size = metrics->init_user_data_size;
init_user_data_ticks = metrics->init_user_data_ticks;
vnodes_opened_cache_hit = metrics->vnodes_opened_cache_hit;
dirty_bytes = metrics->dirty_bytes;
}
void MinfsMetrics::CopyToFidl(fuchsia_minfs::wire::Metrics* metrics) const {
metrics->initialized_vmos = initialized_vmos.load();
metrics->init_dnum_count = init_dnum_count.load();
metrics->init_inum_count = init_inum_count.load();
metrics->init_dinum_count = init_dinum_count.load();
metrics->init_user_data_size = init_user_data_size.load();
metrics->init_user_data_ticks = init_user_data_ticks.load();
metrics->vnodes_opened_cache_hit = vnodes_opened_cache_hit.load();
metrics->dirty_bytes = dirty_bytes.load();
}
void MinfsMetrics::Dump(FILE* stream, std::optional<bool> success) const {
fprintf(stream, "initialized VMOs: %lu\n", initialized_vmos.load());
fprintf(stream, "initialized direct blocks: %u\n", init_dnum_count.load());
fprintf(stream, "initialized indirect blocks: %u\n", init_inum_count.load());
fprintf(stream, "initialized doubly indirect blocks: %u\n", init_dinum_count.load());
fprintf(stream, "bytes of files initialized: %lu\n", init_user_data_size.load());
fprintf(stream, "ticks during initialization: %lu\n", init_user_data_ticks.load());
fprintf(stream, "vnodes open cache hits: %lu\n", vnodes_opened_cache_hit.load());
fprintf(stream, "dirty bytes: %lu\n", dirty_bytes.load());
}
} // namespace minfs