//===--- MonitoringService.proto - CLangd Remote index monitoring service -===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//

syntax = "proto2";

package clang.clangd.remote.v1;

message MonitoringInfoRequest {}
message MonitoringInfoReply {
  // Time since the server started (in seconds).
  optional uint64 uptime_seconds = 1;
  // Time since the index was built on the indexing machine.
  optional uint64 index_age_seconds = 2;
  // ID of the indexed commit in Version Control System.
  optional string index_commit_hash = 3;
  // URL to the index file.
  optional string index_link = 4;
}

service Monitor {
  rpc MonitoringInfo(MonitoringInfoRequest) returns (MonitoringInfoReply) {}
}
