in input/elasticapm/internal/modeldecoder/v2/decoder.go [466:719]
func mapToMetadataModel(from *metadata, out *modelpb.APMEvent) {
// Cloud
if from.Cloud.IsSet() {
if out.Cloud == nil {
out.Cloud = &modelpb.Cloud{}
}
if from.Cloud.Account.ID.IsSet() {
out.Cloud.AccountId = from.Cloud.Account.ID.Val
}
if from.Cloud.Account.Name.IsSet() {
out.Cloud.AccountName = from.Cloud.Account.Name.Val
}
if from.Cloud.AvailabilityZone.IsSet() {
out.Cloud.AvailabilityZone = from.Cloud.AvailabilityZone.Val
}
if from.Cloud.Instance.ID.IsSet() {
out.Cloud.InstanceId = from.Cloud.Instance.ID.Val
}
if from.Cloud.Instance.Name.IsSet() {
out.Cloud.InstanceName = from.Cloud.Instance.Name.Val
}
if from.Cloud.Machine.Type.IsSet() {
out.Cloud.MachineType = from.Cloud.Machine.Type.Val
}
if from.Cloud.Project.ID.IsSet() {
out.Cloud.ProjectId = from.Cloud.Project.ID.Val
}
if from.Cloud.Project.Name.IsSet() {
out.Cloud.ProjectName = from.Cloud.Project.Name.Val
}
if from.Cloud.Provider.IsSet() {
out.Cloud.Provider = from.Cloud.Provider.Val
}
if from.Cloud.Region.IsSet() {
out.Cloud.Region = from.Cloud.Region.Val
}
if from.Cloud.Service.Name.IsSet() {
out.Cloud.ServiceName = from.Cloud.Service.Name.Val
}
}
// Labels
if len(from.Labels) > 0 {
modeldecoderutil.GlobalLabelsFrom(from.Labels, out)
}
// Process
if len(from.Process.Argv) > 0 {
if out.Process == nil {
out.Process = &modelpb.Process{}
}
out.Process.Argv = append(out.Process.Argv[:0], from.Process.Argv...)
}
if from.Process.Pid.IsSet() {
if out.Process == nil {
out.Process = &modelpb.Process{}
}
out.Process.Pid = uint32(from.Process.Pid.Val)
}
if from.Process.Ppid.IsSet() {
var pid = uint32(from.Process.Ppid.Val)
if out.Process == nil {
out.Process = &modelpb.Process{}
}
out.Process.Ppid = pid
}
if from.Process.Title.IsSet() {
if out.Process == nil {
out.Process = &modelpb.Process{}
}
out.Process.Title = from.Process.Title.Val
}
// Service
if from.Service.Agent.IsSet() {
if out.Agent == nil {
out.Agent = &modelpb.Agent{}
}
if from.Service.Agent.ActivationMethod.IsSet() {
out.Agent.ActivationMethod = from.Service.Agent.ActivationMethod.Val
}
if from.Service.Agent.EphemeralID.IsSet() {
out.Agent.EphemeralId = from.Service.Agent.EphemeralID.Val
}
if from.Service.Agent.Name.IsSet() {
out.Agent.Name = from.Service.Agent.Name.Val
}
if from.Service.Agent.Version.IsSet() {
out.Agent.Version = from.Service.Agent.Version.Val
}
}
if from.Service.IsSet() {
if out.Service == nil {
out.Service = &modelpb.Service{}
}
if from.Service.Environment.IsSet() {
out.Service.Environment = from.Service.Environment.Val
}
if from.Service.Framework.IsSet() {
if out.Service.Framework == nil {
out.Service.Framework = &modelpb.Framework{}
}
if from.Service.Framework.Name.IsSet() {
out.Service.Framework.Name = from.Service.Framework.Name.Val
}
if from.Service.Framework.Version.IsSet() {
out.Service.Framework.Version = from.Service.Framework.Version.Val
}
}
if from.Service.Language.IsSet() {
if out.Service.Language == nil {
out.Service.Language = &modelpb.Language{}
}
if from.Service.Language.Name.IsSet() {
out.Service.Language.Name = from.Service.Language.Name.Val
}
if from.Service.Language.Version.IsSet() {
out.Service.Language.Version = from.Service.Language.Version.Val
}
}
if from.Service.Name.IsSet() {
out.Service.Name = from.Service.Name.Val
}
if from.Service.Node.Name.IsSet() {
if out.Service.Node == nil {
out.Service.Node = &modelpb.ServiceNode{}
}
out.Service.Node.Name = from.Service.Node.Name.Val
}
if from.Service.Runtime.IsSet() {
if out.Service.Runtime == nil {
out.Service.Runtime = &modelpb.Runtime{}
}
if from.Service.Runtime.Name.IsSet() {
out.Service.Runtime.Name = from.Service.Runtime.Name.Val
}
if from.Service.Runtime.Version.IsSet() {
out.Service.Runtime.Version = from.Service.Runtime.Version.Val
}
}
if from.Service.Version.IsSet() {
out.Service.Version = from.Service.Version.Val
}
}
// System
if from.System.Architecture.IsSet() {
if out.Host == nil {
out.Host = &modelpb.Host{}
}
out.Host.Architecture = from.System.Architecture.Val
}
if from.System.ConfiguredHostname.IsSet() {
if out.Host == nil {
out.Host = &modelpb.Host{}
}
out.Host.Name = from.System.ConfiguredHostname.Val
}
if from.System.Container.ID.IsSet() {
if out.Container == nil {
out.Container = &modelpb.Container{}
}
out.Container.Id = from.System.Container.ID.Val
}
if from.System.DetectedHostname.IsSet() {
if out.Host == nil {
out.Host = &modelpb.Host{}
}
out.Host.Hostname = from.System.DetectedHostname.Val
}
if from.System.HostID.IsSet() {
if out.Host == nil {
out.Host = &modelpb.Host{}
}
out.Host.Id = from.System.HostID.Val
}
if !from.System.ConfiguredHostname.IsSet() && !from.System.DetectedHostname.IsSet() &&
from.System.DeprecatedHostname.IsSet() {
if out.Host == nil {
out.Host = &modelpb.Host{}
}
out.Host.Hostname = from.System.DeprecatedHostname.Val
}
if from.System.Kubernetes.Namespace.IsSet() {
if out.Kubernetes == nil {
out.Kubernetes = &modelpb.Kubernetes{}
}
out.Kubernetes.Namespace = from.System.Kubernetes.Namespace.Val
}
if from.System.Kubernetes.Node.Name.IsSet() {
if out.Kubernetes == nil {
out.Kubernetes = &modelpb.Kubernetes{}
}
out.Kubernetes.NodeName = from.System.Kubernetes.Node.Name.Val
}
if from.System.Kubernetes.Pod.Name.IsSet() {
if out.Kubernetes == nil {
out.Kubernetes = &modelpb.Kubernetes{}
}
out.Kubernetes.PodName = from.System.Kubernetes.Pod.Name.Val
}
if from.System.Kubernetes.Pod.UID.IsSet() {
if out.Kubernetes == nil {
out.Kubernetes = &modelpb.Kubernetes{}
}
out.Kubernetes.PodUid = from.System.Kubernetes.Pod.UID.Val
}
if from.System.Platform.IsSet() {
if out.Host == nil {
out.Host = &modelpb.Host{}
}
if out.Host.Os == nil {
out.Host.Os = &modelpb.OS{}
}
out.Host.Os.Platform = from.System.Platform.Val
}
// User
if from.User.Domain.IsSet() {
if out.User == nil {
out.User = &modelpb.User{}
}
out.User.Domain = from.User.Domain.Val
}
if from.User.ID.IsSet() {
if out.User == nil {
out.User = &modelpb.User{}
}
out.User.Id = fmt.Sprint(from.User.ID.Val)
}
if from.User.Email.IsSet() {
if out.User == nil {
out.User = &modelpb.User{}
}
out.User.Email = from.User.Email.Val
}
if from.User.Name.IsSet() {
if out.User == nil {
out.User = &modelpb.User{}
}
out.User.Name = from.User.Name.Val
}
// Network
if from.Network.Connection.Type.IsSet() {
if out.Network == nil {
out.Network = &modelpb.Network{}
}
if out.Network.Connection == nil {
out.Network.Connection = &modelpb.NetworkConnection{}
}
out.Network.Connection.Type = from.Network.Connection.Type.Val
}
}