func()

in event-exporter/sinks/stackdriver/log_entry_factory.go [61:86]


func (f *sdLogEntryFactory) FromEvent(event *corev1.Event) *sd.LogEntry {
	payload, err := f.serializeEvent(event)
	if err != nil {
		glog.Warningf("Failed to encode event %+v: %v", event, err)
	}

	resource := f.resourceFactory.resourceFromEvent(event)

	entry := &sd.LogEntry{
		JsonPayload: payload,
		Severity:    f.detectSeverity(event),
		Resource:    resource,
	}
	if resource.Type == k8sPod && f.podLabelCollector != nil {
		entry.Labels = f.podLabelCollector.GetLabels(resource.Labels[namespaceName], resource.Labels[podName])
	}
	if !event.LastTimestamp.IsZero() {
		// The event was emitted using k8s.io/api/core/v1 library.
		entry.Timestamp = event.LastTimestamp.Format(time.RFC3339Nano)
	} else if event.Series != nil && !event.Series.LastObservedTime.IsZero() {
		// The event was emitted using k8s.io/api/events/v1 library.
		entry.Timestamp = event.Series.LastObservedTime.Format(time.RFC3339Nano)
	}

	return entry
}