| // 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", |
| }, |
| ], |
| } |