func NewTelemetry()

in internal/telemetry/telemetry.go [52:69]


func NewTelemetry(h *handlerenv.HandlerEnvironment) (*Telemetry, error) {
	if instance != nil {
		slog.Warn("Telemetry instance already initialized")
		return instance, nil
	}
	if h.EventsFolder == "" {
		return nil, fmt.Errorf("events folder is not set: %w", ErrUnableToInitialize)
	}
	once.Do(func() {
		instance = &Telemetry{
			eem: extensionevents.New(logging.NewNopLogger(), &h.HandlerEnvironment),
		}
		// OperationId is initialized here but currently AppHealth telemetry does not depend on it.
		// There are other scenarios for VMWatch where it is overridden
		instance.eem.SetOperationID(uuid.New().String())
	})
	return instance, nil
}