code: func (l *Forwarder) EmitAuditEvent(event Event, fields EventFields) error {
  	err := UpdateEventFields(event, fields, l.Clock, l.UID)
  	if err != nil {
  		return trace.Wrap(err)
  	}
  	data, err := json.Marshal(fields)
  	if err != nil {
  		return trace.Wrap(err)
  	}
  	chunks := []*SessionChunk{
  		{
  			EventType: event.Name,
  			Data:      data,
  			Time:      time.Now().UTC().UnixNano(),
  		},
  	}
  	return l.PostSessionSlice(SessionSlice{
  		Namespace: l.Namespace,
  		SessionID: string(l.SessionID),
  		Version:   V3,
  		Chunks:    chunks,
  	})
  }
docs: // EmitAuditEvent emits audit event