code: func (m *kubeGenericRuntimeManager) recordContainerEvent(pod *v1.Pod, container *v1.Container, containerID, eventType, reason, message string, args ...interface{}) {
  	ref, err := kubecontainer.GenerateContainerRef(pod, container)
  	if err != nil {
  		klog.Errorf("Can't make a ref to pod %q, container %v: %v", format.Pod(pod), container.Name, err)
  		return
  	}
  	eventMessage := message
  	if len(args) > 0 {
  		eventMessage = fmt.Sprintf(message, args...)
  	}
  	// this is a hack, but often the error from the runtime includes the containerID
  	// which kills our ability to deduplicate events.  this protection makes a huge
  	// difference in the number of unique events
  	if containerID != "" {
  		eventMessage = strings.Replace(eventMessage, containerID, container.Name, -1)
  	}
  	m.recorder.Event(ref, eventType, reason, eventMessage)
  }
docs: // recordContainerEvent should be used by the runtime manager for all container related events.
  // it has sanity checks to ensure that we do not write events that can abuse our masters.
  // in particular, it ensures that a containerID never appears in an event message as that
  // is prone to causing a lot of distinct events that do not count well.
  // it replaces any reference to a containerID with the containerName which is stable, and is what users know.