model/proto/apmevent.proto (91 lines of code) (raw):
// Licensed to Elasticsearch B.V. under one or more contributor
// license agreements. See the NOTICE file distributed with
// this work for additional information regarding copyright
// ownership. Elasticsearch B.V. 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 = "proto3";
package elastic.apm.v1;
import "agent.proto";
import "client.proto";
import "cloud.proto";
import "code.proto";
import "container.proto";
import "datastream.proto";
import "destination.proto";
import "device.proto";
import "error.proto";
import "event.proto";
import "faas.proto";
import "host.proto";
import "http.proto";
import "kubernetes.proto";
import "labels.proto";
import "log.proto";
import "metricset.proto";
import "network.proto";
import "observer.proto";
import "process.proto";
import "service.proto";
import "session.proto";
import "source.proto";
import "span.proto";
import "system.proto";
import "trace.proto";
import "transaction.proto";
import "url.proto";
import "user.proto";
import "useragent.proto";
option go_package = "github.com/elastic/apm-data/model/modelpb";
message APMEvent {
// nanoseconds since epoch
uint64 timestamp = 1;
Span span = 2;
map<string, NumericLabelValue> numeric_labels = 3;
map<string, LabelValue> labels = 4;
Transaction transaction = 5;
Metricset metricset = 6;
Error error = 7;
Cloud cloud = 8;
Service service = 9;
Faas faas = 10;
Network network = 11;
Container container = 12;
User user = 13;
Device device = 14;
Kubernetes kubernetes = 15;
Observer observer = 16;
DataStream data_stream = 17;
Agent agent = 18;
HTTP http = 19;
UserAgent user_agent = 20;
// parent_id holds an optional parent span/transaction ID.
string parent_id = 21;
string message = 22;
Trace trace = 23;
Host host = 24;
URL url = 25;
Log log = 26;
Source source = 27;
Client client = 28;
// child_ids holds an optional set of child span IDs. This is used for exotic
// use cases where the parent knows the child ID, but the child does not know
// the parent ID; namely for profiler-inferred spans.
repeated string child_ids = 29;
Destination destination = 30;
Session session = 31;
Process process = 32;
Event event = 33;
Code code = 34;
System system = 35;
}