blob: b81db4d201e883430e9392a8a44b32d1e595b78c [file] [log] [blame]
// Copyright 2022 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: [
"inspect/offer.shard.cml",
"syslog/client.shard.cml",
],
program: {
runner: "elf",
binary: "bin/trace_manager",
},
children: [
{
name: "ktrace_provider",
url: "ktrace_provider#meta/ktrace_provider.cm",
startup: "eager",
},
{
name: "cpuperf_provider",
url: "cpuperf_provider#meta/cpuperf_provider.cm",
startup: "eager",
},
{
name: "perfetto-bridge",
url: "perfetto-bridge#meta/perfetto-bridge.cm",
},
{
name: "trace_session_manager",
url: "trace_session_manager#meta/trace_session_manager.cm",
},
],
collections: [
{
name: "workloads",
durability: "single_run",
},
],
capabilities: [
{
protocol: [
"fuchsia.tracing.controller.Controller",
"fuchsia.tracing.controller.Provisioner",
"fuchsia.tracing.controller.Session",
"fuchsia.tracing.provider.Registry",
],
},
],
use: [
{
storage: "data",
path: "/traces",
},
{
protocol: [ "fuchsia.sysinfo.SysInfo" ],
availability: "optional",
},
],
offer: [
{
protocol: [ "fuchsia.tracing.provider.Registry" ],
from: "self",
to: [
"#cpuperf_provider",
"#ktrace_provider",
"#perfetto-bridge",
"#workloads",
],
},
{
protocol: "fuchsia.kernel.DebugResource",
from: "parent",
to: [ "#cpuperf_provider" ],
},
{
protocol: "fuchsia.kernel.TracingResource",
from: "parent",
to: [
"#cpuperf_provider",
"#ktrace_provider",
],
},
{
storage: "tmp",
from: "parent",
to: "#perfetto-bridge",
},
{
protocol: [
"fuchsia.boot.ReadOnlyLog",
"fuchsia.scheduler.RoleManager",
],
from: "parent",
to: [ "#ktrace_provider" ],
},
{
protocol: [
"fuchsia.tracing.controller.Controller",
"fuchsia.tracing.controller.Provisioner",
"fuchsia.tracing.controller.Session",
],
from: "self",
to: "#trace_session_manager",
},
],
expose: [
{
protocol: "fuchsia.tracing.controller.Controller",
from: "self",
},
{
protocol: "fuchsia.tracing.controller.Provisioner",
from: "self",
},
{
protocol: "fuchsia.tracing.controller.Session",
from: "self",
},
{
protocol: "fuchsia.tracing.provider.Registry",
from: "self",
},
{
protocol: "fuchsia.tracing.perfetto.ProducerConnector",
from: "#perfetto-bridge",
},
{
protocol: "fuchsia.tracing.controller.SessionManager",
from: "#trace_session_manager",
},
],
}