opencensus.proto.agent.common.v1.common.proto Maven / Gradle / Ivy
// Copyright 2018, OpenCensus Authors
//
// 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.
syntax = "proto3";
// NOTE: This proto is experimental and is subject to change at this point.
// Please do not use it at the moment.
package opencensus.proto.agent.common.v1;
import "google/protobuf/timestamp.proto";
option java_multiple_files = true;
option java_package = "io.opencensus.proto.agent.common.v1";
option java_outer_classname = "CommonProto";
option go_package = "github.com/census-instrumentation/opencensus-proto/gen-go/agent/common/v1";
option ruby_package = "OpenCensus.Proto.Agent.Common.V1";
// Identifier metadata of the Node that produces the span or tracing data.
// Note, this is not the metadata about the Node or service that is described by associated spans.
// In the future we plan to extend the identifier proto definition to support
// additional information (e.g cloud id, etc.)
message Node {
// Identifier that uniquely identifies a process within a VM/container.
ProcessIdentifier identifier = 1;
// Information on the OpenCensus Library that initiates the stream.
LibraryInfo library_info = 2;
// Additional information on service.
ServiceInfo service_info = 3;
// Additional attributes.
map attributes = 4;
// TODO(songya): Add more identifiers in the future as needed, like cloud
// identifiers.
}
// Identifier that uniquely identifies a process within a VM/container.
message ProcessIdentifier {
// The host name. Usually refers to the machine/container name.
// For example: os.Hostname() in Go, socket.gethostname() in Python.
string host_name = 1;
// Process id.
uint32 pid = 2;
// Start time of this ProcessIdentifier. Represented in epoch time.
google.protobuf.Timestamp start_timestamp = 3;
}
// Information on OpenCensus Library.
message LibraryInfo {
enum Language {
LANGUAGE_UNSPECIFIED = 0;
CPP = 1;
C_SHARP = 2;
ERLANG = 3;
GO_LANG = 4;
JAVA = 5;
NODE_JS = 6;
PHP = 7;
PYTHON = 8;
RUBY = 9;
WEB_JS = 10;
}
// Language of OpenCensus Library.
Language language = 1;
// Version of Agent exporter of Library.
string exporter_version = 2;
// Version of OpenCensus Library.
string core_library_version = 3;
}
// Additional service information.
message ServiceInfo {
// Name of the service.
string name = 1;
// TODO(songya): add more fields as needed.
}