| // Licensed to the Apache Software Foundation (ASF) under one |
| // or more contributor license agreements. See the NOTICE file |
| // distributed with this work for additional information |
| // regarding copyright ownership. The ASF licenses this file |
| // to you 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. |
| |
| syntax = "proto2"; |
| package heron.proto.system; |
| |
| option java_package = "org.apache.heron.proto.system"; |
| option java_outer_classname = "Metrics"; |
| |
| import "common.proto"; |
| import "tmaster.proto"; |
| |
| // This file defines the various protocol buffers needed |
| // for sending metrics from all the system components(workers, |
| // (stmgrs, tmasters). The components first register themselves |
| // with MetricPublisherRegisterRequest. And then everytime |
| // they want to send a metric, they use the |
| // MetricPublisherPublishMessage to send out the actual message |
| |
| message MetricDatum { |
| required string name = 1; |
| required string value = 2; |
| } |
| |
| message ExceptionData { |
| // Stack trace of exception. First two lines of stack trace is used for aggregating exception. |
| required string stacktrace = 1; |
| // Last time the exception occurred in the metrics collection interval |
| required string lasttime = 2; |
| // First time the exception occurred in the metrics collection interval |
| required string firsttime = 3; |
| // Number of time exception occurred in the metrics collection interval |
| required int32 count = 4; |
| // Additional text logged. |
| required string logging = 5; |
| } |
| |
| message MetricPublisher { |
| required string hostname = 1; |
| required int32 port = 2; |
| // like Tail-FlatMap or __stmgr__ |
| required string component_name = 3; |
| // In case of regular instances, it is their instance_id |
| // For stmgr, it is the stmgr id |
| required string instance_id = 4; |
| // The index of the instance with respect |
| // to that component_name |
| required int32 instance_index = 5; |
| } |
| |
| message MetricPublisherRegisterRequest { |
| required MetricPublisher publisher = 1; |
| } |
| |
| message MetricPublisherRegisterResponse { |
| required Status status = 1; |
| } |
| |
| message MetricPublisherPublishMessage { |
| repeated MetricDatum metrics = 1; |
| repeated ExceptionData exceptions = 2; |
| } |
| |
| |
| // This is the tmaster location refresh message sent |
| // by the stmgrs to the metricsmgrs |
| message TMasterLocationRefreshMessage { |
| required heron.proto.tmaster.TMasterLocation tmaster = 1; |
| } |
| |
| message MetricsCacheLocationRefreshMessage { |
| required heron.proto.tmaster.MetricsCacheLocation metricscache = 1; |
| } |