{
  "configurations": [
    {
      "declarative_name": "java.executors.include",
      "default": "",
      "description": "List of Executor subclasses to be instrumented.",
      "examples": [
        "com.example.CustomExecutor",
        "com.example.ExecutorOne,com.example.ExecutorTwo"
      ],
      "name": "otel.instrumentation.executors.include",
      "type": "list"
    },
    {
      "declarative_name": "java.executors.include_all",
      "default": false,
      "description": "Whether to instrument all classes that implement the Executor interface.",
      "name": "otel.instrumentation.executors.include-all",
      "type": "boolean"
    }
  ],
  "description": "The executor instrumentation ensures that context is automatically propagated when using common Java executors (e.g., ThreadPoolExecutor, ScheduledThreadPoolExecutor, ForkJoinPool). When a task is submitted, the current context is captured and bound to the task. Then, when the task eventually runs, even if it\u2019s on a different thread, the instrumentation reactivates that context, enabling consistent correlation across concurrent and asynchronous workflows.",
  "display_name": "Java Executors",
  "features": [
    "CONTEXT_PROPAGATION"
  ],
  "has_javaagent": true,
  "javaagent_target_versions": [
    "Java 8+"
  ],
  "library_link": "https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Executor.html",
  "name": "executors",
  "scope": {
    "name": "io.opentelemetry.executors"
  },
  "source_path": "instrumentation/executors"
}