Techniques for self-tuning an analytics system via observed execution optimization are described. Upon a need for execution resources, a resource manager can select a type of executor from multiple candidate executor types based at least in part on one or more of current execution data associated with the execution of tasks of a user application and/or historic execution data associated with one or more other applications. The current execution data may include event log data originated by the driver application based on the execution of the user application and/or metric data describing characteristics of one or more worker nodes involved with executing the user application or characteristics of one or more other executors implemented by the one or more worker nodes in executing the user application.