class_docstr: Similar to FunctionStartEvent but with runtime and exception trace if the function fails.
code: def create(  # noqa: D
      event_time: datetime.datetime,
      level_name: str,
      invocation_id: str,
      module_name: str,
      function_name: str,
      runtime: float,
      exception_trace: Optional[str] = None,
  ) -> FunctionEndEvent:
      return FunctionEndEvent(
          event_name=TelemetryEventName.FUNCTION_END.name,
          event_schema=EVENT_SCHEMA,
          event_time=event_time,
          level_name=level_name,
          invocation_id=invocation_id,
          module_name=module_name,
          function_name=function_name,
          runtime=runtime,
          exception_trace=exception_trace,
      )
  
imports: from __future__ import annotations
  import datetime
  from abc import ABC
  from enum import Enum, IntEnum
  from typing import Optional, Tuple
  from dbt_semantic_interfaces.implementations.base import FrozenBaseModel
label_desc: Use image node_id 1 for calling the FunctionEndEvent obj's underlying member method code with example usage: obj.create(event_time, level_name, invocation_id, module_name, function_name, runtime, exception_trace) and returns: FunctionEndEvent