// Copyright (C) 2023 The Android Open Source Project
//
// Licensed under the Apache License= ; Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing= ; software
// distributed under the License is distributed on an "AS IS" BASIS= ;
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND= ; either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

// Note that if you add/remove methods in this file you must update
// the metrics sql as well ./android/scripts/gen-grpc-sql.py
//
// Please group deleted methods in a block including the date (MM/DD/YY)
// it was removed. This enables us to easily keep metrics around after removal
//
// List of deleted methods
// rpc iWasDeleted (03/12/12)
// ...
syntax = "proto3";

option java_multiple_files = true;
option java_package = "com.android.emulation.stats";

package android.emulation.stats;
import "google/protobuf/empty.proto";
import "google/protobuf/wrappers.proto";

// A Stats service allows you to query emulator's
// runtime information including memory usage, CPU usage
// and etc.

service EmulatorStats {
    // Returns the current memory usage of the emulator instance.
    rpc getMemoryUsage(google.protobuf.Empty) returns (MemoryUsage) {}
}

// RAM usage info for the emulator in bytes
message MemoryUsage {
    optional uint64 resident_memory = 1;
    optional uint64 resident_memory_max = 2;
    optional uint64 virtual_memory = 3;
    optional uint64 virtual_memory_max = 4;
    optional uint64 total_phys_memory = 5;
    optional uint64 total_page_file = 6;
    optional uint64 total_guest_memory = 7;
}
