1// Copyright (C) 2023 The Android Open Source Project 2// 3// Licensed under the Apache License, Version 2.0 (the "License"); 4// you may not use this file except in compliance with the License. 5// You may obtain a copy of the License at 6// 7// http://www.apache.org/licenses/LICENSE-2.0 8// 9// Unless required by applicable law or agreed to in writing, software 10// distributed under the License is distributed on an "AS IS" BASIS, 11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12// See the License for the specific language governing permissions and 13// limitations under the License. 14 15import {MetricVisualisation, Plugin, PluginDescriptor} from '../../public'; 16 17const SPEC = ` 18{ 19 "$schema": "https://vega.github.io/schema/vega-lite/v5.json", 20 "width": "container", 21 "height": 300, 22 "description": ".", 23 "data": { 24 "name": "metric" 25 }, 26 "mark": "bar", 27 "encoding": { 28 "x": {"field": "client_process", "type": "nominal"}, 29 "y": {"field": "client_dur", "aggregate": "max"} 30 } 31} 32`; 33 34class AndroidBinderVizPlugin implements Plugin { 35 metricVisualisations(): MetricVisualisation[] { 36 return [ 37 { 38 metric: 'android_binder', 39 spec: SPEC, 40 path: ['android_binder', 'unaggregated_txn_breakdown'], 41 }, 42 ]; 43 } 44} 45 46export const plugin: PluginDescriptor = { 47 pluginId: 'dev.perfetto.AndroidBinderVizPlugin', 48 plugin: AndroidBinderVizPlugin, 49}; 50