blob: e8d88b4a98db6d48b61afe1e5d7273d8e439c3c4 [file] [log] [blame]
# Copyright 2017 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.
import("//build/config.gni")
import("//build/package.gni")
import("//third_party/cobalt/metrics_registry.gni")
import("//third_party/protobuf/proto_library.gni")
metrics_registry("metrics_registry") {
# This must match the ID of our Cobalt project as specified in:
# third_party/cobalt_config/projects.yaml
project_id = 1334068210
namespace = "fuchsia_system_metrics"
generate_cc = true
generate_binarypb = false
}
metrics_registry("diagnostics_metrics_registry") {
# This must match the ID of our Cobalt project as specified in:
# third_party/cobalt_config/projects.yaml
project_id = 5
namespace = "fuchsia_component_diagnostics"
generate_cc = true
generate_binarypb = false
}
source_set("system_metrics_daemon_lib") {
sources = [
"activity_listener.cc",
"activity_listener.h",
"cpu_stats_fetcher.h",
"cpu_stats_fetcher_impl.cc",
"cpu_stats_fetcher_impl.h",
"log_stats_fetcher.h",
"log_stats_fetcher_impl.cc",
"log_stats_fetcher_impl.h",
"system_metrics_daemon.cc",
"system_metrics_daemon.h",
]
public_deps = [
":diagnostics_metrics_registry_cc",
":metrics_registry_cc",
"//sdk/fidl/fuchsia.cobalt",
"//sdk/fidl/fuchsia.diagnostics",
"//sdk/fidl/fuchsia.hardware.thermal:fuchsia.hardware.thermal_c",
"//sdk/fidl/fuchsia.kernel:fuchsia.kernel_llcpp",
"//sdk/fidl/fuchsia.ui.activity",
"//sdk/lib/inspect/contrib/cpp:archive_reader",
"//sdk/lib/sys/cpp",
"//sdk/lib/sys/inspect/cpp",
"//sdk/lib/syslog/cpp",
"//src/cobalt/bin/utils:clock",
"//src/cobalt/bin/utils:status_utils",
"//src/lib/cobalt/cpp:cobalt_event_builder",
"//src/lib/fsl",
"//src/lib/fxl",
"//third_party/cobalt/src/registry:buckets_config",
"//zircon/public/lib/zx",
"//zircon/system/ulib/abs_clock",
"//zircon/system/ulib/async-loop:async-loop-cpp",
"//zircon/system/ulib/async-loop:async-loop-default",
"//zircon/system/ulib/trace",
"//zircon/system/ulib/trace-provider:trace-provider-with-fdio",
]
# TODO(fxbug.dev/58162): delete the below and fix compiler warnings
configs += [ "//build/config:Wno-conversion" ]
}
executable("system-metrics") {
output_name = "cobalt_system_metrics_bin"
sources = [ "system_metrics_main.cc" ]
deps = [
":system_metrics_daemon_lib",
"//sdk/lib/sys/cpp",
]
}
config_data("config") {
for_pkg = "cobalt_system_metrics"
sources = [
# The metric specs for granular error stats.
"granular_error_stats_specs.txt",
# The default allowlist included in core. Other products can define their own allowlist.
"log_stats_component_allowlist.txt",
]
}
package("cobalt_system_metrics") {
deps = [ ":system-metrics" ]
meta = [
{
path = rebase_path("meta/cobalt_system_metrics.cmx")
dest = "cobalt_system_metrics.cmx"
},
]
binaries = [
{
name = "cobalt_system_metrics_bin"
dest = "cobalt_system_metrics"
},
]
}
executable("cobalt_system_metrics_unittests") {
testonly = true
sources = [
"log_stats_fetcher_impl_test.cc",
"system_metrics_daemon_test.cc",
]
deps = [
":system_metrics_daemon_lib",
"testing:fake_fetchers",
"//garnet/public/lib/gtest",
"//sdk/fidl/fuchsia.cobalt",
"//sdk/lib/inspect/testing/cpp",
"//sdk/lib/sys/cpp/testing:unit",
"//src/cobalt/bin/testing:fake_clock_lib",
"//src/cobalt/bin/testing:fake_logger_lib",
"//src/cobalt/bin/utils:clock",
"//src/lib/fsl",
"//src/lib/fxl/test:gtest_main",
]
# TODO(fxbug.dev/58162): delete the below and fix compiler warnings
configs += [ "//build/config:Wno-conversion" ]
# TODO(67363): Temporarily disable lsan for this target. Reenable once all leaks are fixed.
deps += [ "//build/config/sanitizers:suppress-lsan.DO-NOT-USE-THIS" ]
}