{
  "attributes": {
    "direction": {
      "description": "Whether the metric is in regards to input or output operations.",
      "enum": [
        "in",
        "out"
      ],
      "type": "string"
    },
    "executor_task_result": {
      "description": "The result of the executor tasks for which the metric was recorded.",
      "enum": [
        "completed",
        "failed"
      ],
      "name_override": "result",
      "type": "string"
    },
    "gc_type": {
      "description": "The type of the garbage collection performed for the metric.",
      "enum": [
        "major",
        "minor"
      ],
      "type": "string"
    },
    "job_result": {
      "description": "The result of the job stages or tasks for which the metric was recorded.",
      "enum": [
        "completed",
        "failed",
        "skipped"
      ],
      "name_override": "result",
      "type": "string"
    },
    "location": {
      "description": "The location of the memory for which the metric was recorded..",
      "enum": [
        "off_heap",
        "on_heap"
      ],
      "type": "string"
    },
    "pool_memory_type": {
      "description": "The type of pool memory for which the metric was recorded.",
      "enum": [
        "direct",
        "mapped"
      ],
      "name_override": "type",
      "type": "string"
    },
    "scheduler_status": {
      "description": "The status of the DAGScheduler stages for which the metric was recorded.",
      "enum": [
        "running",
        "waiting"
      ],
      "name_override": "status",
      "type": "string"
    },
    "source": {
      "description": "The source from which data was fetched for the metric.",
      "enum": [
        "local",
        "remote"
      ],
      "type": "string"
    },
    "stage_active": {
      "description": "Whether the stage for which the metric was recorded is active.",
      "name_override": "active",
      "type": "bool"
    },
    "stage_complete": {
      "description": "Whether the stage for which the metric was recorded is complete.",
      "name_override": "complete",
      "type": "bool"
    },
    "stage_failed": {
      "description": "Whether the stage for which the metric was recorded is failed.",
      "name_override": "failed",
      "type": "bool"
    },
    "stage_pending": {
      "description": "Whether the stage for which the metric was recorded is pending.",
      "name_override": "pending",
      "type": "bool"
    },
    "stage_task_result": {
      "description": "The result of the stage tasks for which the metric was recorded.",
      "enum": [
        "completed",
        "failed",
        "killed"
      ],
      "name_override": "result",
      "type": "string"
    },
    "state": {
      "description": "The state of the memory for which the metric was recorded.",
      "enum": [
        "free",
        "used"
      ],
      "type": "string"
    }
  },
  "description": "The Apache Spark Receiver fetches metrics for an Apache Spark cluster through the Apache Spark REST API - specifically, the `/metrics/json`, `/api/v1/applications/[app-id]/stages`, `/api/v1/applications/[app-id]/executors`, and `/api/v1/applications/[app-id]/jobs` endpoints.",
  "display_name": "Apache Spark Receiver",
  "distribution": "contrib",
  "ecosystem": "collector",
  "id": "contrib-apachesparkreceiver",
  "metrics": {
    "spark.driver.block_manager.disk.usage": {
      "attributes": [],
      "description": "Disk space used by the BlockManager.",
      "enabled": true,
      "stability": "development",
      "sum": {
        "aggregation_temporality": "cumulative",
        "monotonic": false,
        "value_type": "int"
      },
      "unit": "mb"
    },
    "spark.driver.block_manager.memory.usage": {
      "attributes": [
        "location",
        "state"
      ],
      "description": "Memory usage for the driver's BlockManager.",
      "enabled": true,
      "stability": "development",
      "sum": {
        "aggregation_temporality": "cumulative",
        "monotonic": false,
        "value_type": "int"
      },
      "unit": "mb"
    },
    "spark.driver.code_generator.compilation.average_time": {
      "attributes": [],
      "description": "Average time spent during CodeGenerator source code compilation operations.",
      "enabled": true,
      "gauge": {
        "value_type": "double"
      },
      "stability": "development",
      "unit": "ms"
    },
    "spark.driver.code_generator.compilation.count": {
      "attributes": [],
      "description": "Number of source code compilation operations performed by the CodeGenerator.",
      "enabled": true,
      "stability": "development",
      "sum": {
        "aggregation_temporality": "cumulative",
        "monotonic": true,
        "value_type": "int"
      },
      "unit": "{ compilation }"
    },
    "spark.driver.code_generator.generated_class.average_size": {
      "attributes": [],
      "description": "Average class size of the classes generated by the CodeGenerator.",
      "enabled": true,
      "gauge": {
        "value_type": "double"
      },
      "stability": "development",
      "unit": "bytes"
    },
    "spark.driver.code_generator.generated_class.count": {
      "attributes": [],
      "description": "Number of classes generated by the CodeGenerator.",
      "enabled": true,
      "stability": "development",
      "sum": {
        "aggregation_temporality": "cumulative",
        "monotonic": true,
        "value_type": "int"
      },
      "unit": "{ class }"
    },
    "spark.driver.code_generator.generated_method.average_size": {
      "attributes": [],
      "description": "Average method size of the classes generated by the CodeGenerator.",
      "enabled": true,
      "gauge": {
        "value_type": "double"
      },
      "stability": "development",
      "unit": "bytes"
    },
    "spark.driver.code_generator.generated_method.count": {
      "attributes": [],
      "description": "Number of methods generated by the CodeGenerator.",
      "enabled": true,
      "stability": "development",
      "sum": {
        "aggregation_temporality": "cumulative",
        "monotonic": true,
        "value_type": "int"
      },
      "unit": "{ method }"
    },
    "spark.driver.code_generator.source_code.average_size": {
      "attributes": [],
      "description": "Average size of the source code generated by a CodeGenerator code generation operation.",
      "enabled": true,
      "gauge": {
        "value_type": "double"
      },
      "stability": "development",
      "unit": "bytes"
    },
    "spark.driver.code_generator.source_code.operations": {
      "attributes": [],
      "description": "Number of source code generation operations performed by the CodeGenerator.",
      "enabled": true,
      "stability": "development",
      "sum": {
        "aggregation_temporality": "cumulative",
        "monotonic": true,
        "value_type": "int"
      },
      "unit": "{ operation }"
    },
    "spark.driver.dag_scheduler.job.active": {
      "attributes": [],
      "description": "Number of active jobs currently being processed by the DAGScheduler.",
      "enabled": true,
      "stability": "development",
      "sum": {
        "aggregation_temporality": "cumulative",
        "monotonic": false,
        "value_type": "int"
      },
      "unit": "{ job }"
    },
    "spark.driver.dag_scheduler.job.count": {
      "attributes": [],
      "description": "Number of jobs that have been submitted to the DAGScheduler.",
      "enabled": true,
      "stability": "development",
      "sum": {
        "aggregation_temporality": "cumulative",
        "monotonic": true,
        "value_type": "int"
      },
      "unit": "{ job }"
    },
    "spark.driver.dag_scheduler.stage.count": {
      "attributes": [
        "scheduler_status"
      ],
      "description": "Number of stages the DAGScheduler is either running or needs to run.",
      "enabled": true,
      "stability": "development",
      "sum": {
        "aggregation_temporality": "cumulative",
        "monotonic": false,
        "value_type": "int"
      },
      "unit": "{ stage }"
    },
    "spark.driver.dag_scheduler.stage.failed": {
      "attributes": [],
      "description": "Number of failed stages run by the DAGScheduler.",
      "enabled": true,
      "stability": "development",
      "sum": {
        "aggregation_temporality": "cumulative",
        "monotonic": true,
        "value_type": "int"
      },
      "unit": "{ stage }"
    },
    "spark.driver.executor.gc.operations": {
      "attributes": [
        "gc_type"
      ],
      "description": "Number of garbage collection operations performed by the driver.",
      "enabled": true,
      "stability": "development",
      "sum": {
        "aggregation_temporality": "cumulative",
        "monotonic": true,
        "value_type": "int"
      },
      "unit": "{ gc_operation }"
    },
    "spark.driver.executor.gc.time": {
      "attributes": [
        "gc_type"
      ],
      "description": "Total elapsed time during garbage collection operations performed by the driver.",
      "enabled": true,
      "stability": "development",
      "sum": {
        "aggregation_temporality": "cumulative",
        "monotonic": true,
        "value_type": "int"
      },
      "unit": "ms"
    },
    "spark.driver.executor.memory.execution": {
      "attributes": [
        "location"
      ],
      "description": "Amount of execution memory currently used by the driver.",
      "enabled": true,
      "stability": "development",
      "sum": {
        "aggregation_temporality": "cumulative",
        "monotonic": false,
        "value_type": "int"
      },
      "unit": "bytes"
    },
    "spark.driver.executor.memory.jvm": {
      "attributes": [
        "location"
      ],
      "description": "Amount of memory used by the driver's JVM.",
      "enabled": true,
      "stability": "development",
      "sum": {
        "aggregation_temporality": "cumulative",
        "monotonic": false,
        "value_type": "int"
      },
      "unit": "bytes"
    },
    "spark.driver.executor.memory.pool": {
      "attributes": [
        "pool_memory_type"
      ],
      "description": "Amount of pool memory currently used by the driver.",
      "enabled": true,
      "stability": "development",
      "sum": {
        "aggregation_temporality": "cumulative",
        "monotonic": false,
        "value_type": "int"
      },
      "unit": "bytes"
    },
    "spark.driver.executor.memory.storage": {
      "attributes": [
        "location"
      ],
      "description": "Amount of storage memory currently used by the driver.",
      "enabled": true,
      "stability": "development",
      "sum": {
        "aggregation_temporality": "cumulative",
        "monotonic": false,
        "value_type": "int"
      },
      "unit": "bytes"
    },
    "spark.driver.hive_external_catalog.file_cache_hits": {
      "attributes": [],
      "description": "Number of file cache hits on the HiveExternalCatalog.",
      "enabled": true,
      "stability": "development",
      "sum": {
        "aggregation_temporality": "cumulative",
        "monotonic": true,
        "value_type": "int"
      },
      "unit": "{ hit }"
    },
    "spark.driver.hive_external_catalog.files_discovered": {
      "attributes": [],
      "description": "Number of files discovered while listing the partitions of a table in the Hive metastore",
      "enabled": true,
      "stability": "development",
      "sum": {
        "aggregation_temporality": "cumulative",
        "monotonic": true,
        "value_type": "int"
      },
      "unit": "{ file }"
    },
    "spark.driver.hive_external_catalog.hive_client_calls": {
      "attributes": [],
      "description": "Number of calls to the underlying Hive Metastore client made by the Spark application.",
      "enabled": true,
      "stability": "development",
      "sum": {
        "aggregation_temporality": "cumulative",
        "monotonic": true,
        "value_type": "int"
      },
      "unit": "{ call }"
    },
    "spark.driver.hive_external_catalog.parallel_listing_jobs": {
      "attributes": [],
      "description": "Number of parallel listing jobs initiated by the HiveExternalCatalog when listing partitions of a table.",
      "enabled": true,
      "stability": "development",
      "sum": {
        "aggregation_temporality": "cumulative",
        "monotonic": true,
        "value_type": "int"
      },
      "unit": "{ listing_job }"
    },
    "spark.driver.hive_external_catalog.partitions_fetched": {
      "attributes": [],
      "description": "Table partitions fetched by the HiveExternalCatalog.",
      "enabled": true,
      "stability": "development",
      "sum": {
        "aggregation_temporality": "cumulative",
        "monotonic": true,
        "value_type": "int"
      },
      "unit": "{ partition }"
    },
    "spark.driver.jvm_cpu_time": {
      "attributes": [],
      "description": "Current CPU time taken by the Spark driver.",
      "enabled": true,
      "stability": "development",
      "sum": {
        "aggregation_temporality": "cumulative",
        "monotonic": true,
        "value_type": "int"
      },
      "unit": "ns"
    },
    "spark.driver.live_listener_bus.dropped": {
      "attributes": [],
      "description": "Number of events that have been dropped by the LiveListenerBus.",
      "enabled": true,
      "stability": "development",
      "sum": {
        "aggregation_temporality": "cumulative",
        "monotonic": true,
        "value_type": "int"
      },
      "unit": "{ event }"
    },
    "spark.driver.live_listener_bus.posted": {
      "attributes": [],
      "description": "Number of events that have been posted on the LiveListenerBus.",
      "enabled": true,
      "stability": "development",
      "sum": {
        "aggregation_temporality": "cumulative",
        "monotonic": true,
        "value_type": "int"
      },
      "unit": "{ event }"
    },
    "spark.driver.live_listener_bus.processing_time.average": {
      "attributes": [],
      "description": "Average time taken for the LiveListenerBus to process an event posted to it.",
      "enabled": true,
      "gauge": {
        "value_type": "double"
      },
      "stability": "development",
      "unit": "ms"
    },
    "spark.driver.live_listener_bus.queue_size": {
      "attributes": [],
      "description": "Number of events currently waiting to be processed by the LiveListenerBus.",
      "enabled": true,
      "stability": "development",
      "sum": {
        "aggregation_temporality": "cumulative",
        "monotonic": false,
        "value_type": "int"
      },
      "unit": "{ event }"
    },
    "spark.executor.disk.usage": {
      "attributes": [],
      "description": "Disk space used by this executor for RDD storage.",
      "enabled": true,
      "stability": "development",
      "sum": {
        "aggregation_temporality": "cumulative",
        "monotonic": false,
        "value_type": "int"
      },
      "unit": "bytes"
    },
    "spark.executor.gc_time": {
      "attributes": [],
      "description": "Elapsed time the JVM spent in garbage collection in this executor.",
      "enabled": true,
      "stability": "development",
      "sum": {
        "aggregation_temporality": "cumulative",
        "monotonic": true,
        "value_type": "int"
      },
      "unit": "ms"
    },
    "spark.executor.input_size": {
      "attributes": [],
      "description": "Amount of data input for this executor.",
      "enabled": true,
      "stability": "development",
      "sum": {
        "aggregation_temporality": "cumulative",
        "monotonic": true,
        "value_type": "int"
      },
      "unit": "bytes"
    },
    "spark.executor.memory.usage": {
      "attributes": [],
      "description": "Storage memory used by this executor.",
      "enabled": true,
      "stability": "development",
      "sum": {
        "aggregation_temporality": "cumulative",
        "monotonic": false,
        "value_type": "int"
      },
      "unit": "bytes"
    },
    "spark.executor.shuffle.io.size": {
      "attributes": [
        "direction"
      ],
      "description": "Amount of data written and read during shuffle operations for this executor.",
      "enabled": true,
      "stability": "development",
      "sum": {
        "aggregation_temporality": "cumulative",
        "monotonic": true,
        "value_type": "int"
      },
      "unit": "bytes"
    },
    "spark.executor.storage_memory.usage": {
      "attributes": [
        "location",
        "state"
      ],
      "description": "The executor's storage memory usage.",
      "enabled": true,
      "stability": "development",
      "sum": {
        "aggregation_temporality": "cumulative",
        "monotonic": false,
        "value_type": "int"
      },
      "unit": "bytes"
    },
    "spark.executor.task.active": {
      "attributes": [],
      "description": "Number of tasks currently running in this executor.",
      "enabled": true,
      "stability": "development",
      "sum": {
        "aggregation_temporality": "cumulative",
        "monotonic": false,
        "value_type": "int"
      },
      "unit": "{ task }"
    },
    "spark.executor.task.limit": {
      "attributes": [],
      "description": "Maximum number of tasks that can run concurrently in this executor.",
      "enabled": true,
      "stability": "development",
      "sum": {
        "aggregation_temporality": "cumulative",
        "monotonic": false,
        "value_type": "int"
      },
      "unit": "{ task }"
    },
    "spark.executor.task.result": {
      "attributes": [
        "executor_task_result"
      ],
      "description": "Number of tasks with a specific result in this executor.",
      "enabled": true,
      "stability": "development",
      "sum": {
        "aggregation_temporality": "cumulative",
        "monotonic": true,
        "value_type": "int"
      },
      "unit": "{ task }"
    },
    "spark.executor.time": {
      "attributes": [],
      "description": "Elapsed time the JVM spent executing tasks in this executor.",
      "enabled": true,
      "stability": "development",
      "sum": {
        "aggregation_temporality": "cumulative",
        "monotonic": true,
        "value_type": "int"
      },
      "unit": "ms"
    },
    "spark.job.stage.active": {
      "attributes": [],
      "description": "Number of active stages in this job.",
      "enabled": true,
      "stability": "development",
      "sum": {
        "aggregation_temporality": "cumulative",
        "monotonic": false,
        "value_type": "int"
      },
      "unit": "{ stage }"
    },
    "spark.job.stage.result": {
      "attributes": [
        "job_result"
      ],
      "description": "Number of stages with a specific result in this job.",
      "enabled": true,
      "stability": "development",
      "sum": {
        "aggregation_temporality": "cumulative",
        "monotonic": true,
        "value_type": "int"
      },
      "unit": "{ stage }"
    },
    "spark.job.task.active": {
      "attributes": [],
      "description": "Number of active tasks in this job.",
      "enabled": true,
      "stability": "development",
      "sum": {
        "aggregation_temporality": "cumulative",
        "monotonic": false,
        "value_type": "int"
      },
      "unit": "{ task }"
    },
    "spark.job.task.result": {
      "attributes": [
        "job_result"
      ],
      "description": "Number of tasks with a specific result in this job.",
      "enabled": true,
      "stability": "development",
      "sum": {
        "aggregation_temporality": "cumulative",
        "monotonic": true,
        "value_type": "int"
      },
      "unit": "{ task }"
    },
    "spark.stage.disk.spilled": {
      "attributes": [],
      "description": "The amount of disk space used for storing portions of overly large data chunks that couldn't fit in memory in this stage.",
      "enabled": true,
      "stability": "development",
      "sum": {
        "aggregation_temporality": "cumulative",
        "monotonic": true,
        "value_type": "int"
      },
      "unit": "bytes"
    },
    "spark.stage.executor.cpu_time": {
      "attributes": [],
      "description": "CPU time spent by the executor in this stage.",
      "enabled": true,
      "stability": "development",
      "sum": {
        "aggregation_temporality": "cumulative",
        "monotonic": true,
        "value_type": "int"
      },
      "unit": "ns"
    },
    "spark.stage.executor.run_time": {
      "attributes": [],
      "description": "Amount of time spent by the executor in this stage.",
      "enabled": true,
      "stability": "development",
      "sum": {
        "aggregation_temporality": "cumulative",
        "monotonic": true,
        "value_type": "int"
      },
      "unit": "ms"
    },
    "spark.stage.io.records": {
      "attributes": [
        "direction"
      ],
      "description": "Number of records written and read in this stage.",
      "enabled": true,
      "stability": "development",
      "sum": {
        "aggregation_temporality": "cumulative",
        "monotonic": true,
        "value_type": "int"
      },
      "unit": "{ record }"
    },
    "spark.stage.io.size": {
      "attributes": [
        "direction"
      ],
      "description": "Amount of data written and read at this stage.",
      "enabled": true,
      "stability": "development",
      "sum": {
        "aggregation_temporality": "cumulative",
        "monotonic": true,
        "value_type": "int"
      },
      "unit": "bytes"
    },
    "spark.stage.jvm_gc_time": {
      "attributes": [],
      "description": "The amount of time the JVM spent on garbage collection in this stage.",
      "enabled": true,
      "stability": "development",
      "sum": {
        "aggregation_temporality": "cumulative",
        "monotonic": true,
        "value_type": "int"
      },
      "unit": "ms"
    },
    "spark.stage.memory.peak": {
      "attributes": [],
      "description": "Peak memory used by internal data structures created during shuffles, aggregations and joins in this stage.",
      "enabled": true,
      "stability": "development",
      "sum": {
        "aggregation_temporality": "cumulative",
        "monotonic": true,
        "value_type": "int"
      },
      "unit": "bytes"
    },
    "spark.stage.memory.spilled": {
      "attributes": [],
      "description": "The amount of memory moved to disk due to size constraints (spilled) in this stage.",
      "enabled": true,
      "stability": "development",
      "sum": {
        "aggregation_temporality": "cumulative",
        "monotonic": true,
        "value_type": "int"
      },
      "unit": "bytes"
    },
    "spark.stage.shuffle.blocks_fetched": {
      "attributes": [
        "source"
      ],
      "description": "Number of blocks fetched in shuffle operations in this stage.",
      "enabled": true,
      "stability": "development",
      "sum": {
        "aggregation_temporality": "cumulative",
        "monotonic": true,
        "value_type": "int"
      },
      "unit": "{ block }"
    },
    "spark.stage.shuffle.fetch_wait_time": {
      "attributes": [],
      "description": "Time spent in this stage waiting for remote shuffle blocks.",
      "enabled": true,
      "stability": "development",
      "sum": {
        "aggregation_temporality": "cumulative",
        "monotonic": true,
        "value_type": "int"
      },
      "unit": "ms"
    },
    "spark.stage.shuffle.io.disk": {
      "attributes": [],
      "description": "Amount of data read to disk in shuffle operations (sometimes required for large blocks, as opposed to the default behavior of reading into memory).",
      "enabled": true,
      "stability": "development",
      "sum": {
        "aggregation_temporality": "cumulative",
        "monotonic": true,
        "value_type": "int"
      },
      "unit": "bytes"
    },
    "spark.stage.shuffle.io.read.size": {
      "attributes": [
        "source"
      ],
      "description": "Amount of data read in shuffle operations in this stage.",
      "enabled": true,
      "stability": "development",
      "sum": {
        "aggregation_temporality": "cumulative",
        "monotonic": true,
        "value_type": "int"
      },
      "unit": "bytes"
    },
    "spark.stage.shuffle.io.records": {
      "attributes": [
        "direction"
      ],
      "description": "Number of records written or read in shuffle operations in this stage.",
      "enabled": true,
      "stability": "development",
      "sum": {
        "aggregation_temporality": "cumulative",
        "monotonic": true,
        "value_type": "int"
      },
      "unit": "{ record }"
    },
    "spark.stage.shuffle.io.write.size": {
      "attributes": [],
      "description": "Amount of data written in shuffle operations in this stage.",
      "enabled": true,
      "stability": "development",
      "sum": {
        "aggregation_temporality": "cumulative",
        "monotonic": true,
        "value_type": "int"
      },
      "unit": "bytes"
    },
    "spark.stage.shuffle.write_time": {
      "attributes": [],
      "description": "Time spent blocking on writes to disk or buffer cache in this stage.",
      "enabled": true,
      "stability": "development",
      "sum": {
        "aggregation_temporality": "cumulative",
        "monotonic": true,
        "value_type": "int"
      },
      "unit": "ns"
    },
    "spark.stage.status": {
      "attributes": [
        "stage_active",
        "stage_complete",
        "stage_failed",
        "stage_pending"
      ],
      "description": "A one-hot encoding representing the status of this stage.",
      "enabled": true,
      "stability": "development",
      "sum": {
        "aggregation_temporality": "cumulative",
        "monotonic": false,
        "value_type": "int"
      },
      "unit": "{ status }"
    },
    "spark.stage.task.active": {
      "attributes": [],
      "description": "Number of active tasks in this stage.",
      "enabled": true,
      "stability": "development",
      "sum": {
        "aggregation_temporality": "cumulative",
        "monotonic": false,
        "value_type": "int"
      },
      "unit": "{ task }"
    },
    "spark.stage.task.result": {
      "attributes": [
        "stage_task_result"
      ],
      "description": "Number of tasks with a specific result in this stage.",
      "enabled": true,
      "stability": "development",
      "sum": {
        "aggregation_temporality": "cumulative",
        "monotonic": true,
        "value_type": "int"
      },
      "unit": "{ task }"
    },
    "spark.stage.task.result_size": {
      "attributes": [],
      "description": "The amount of data transmitted back to the driver by all the tasks in this stage.",
      "enabled": true,
      "stability": "development",
      "sum": {
        "aggregation_temporality": "cumulative",
        "monotonic": true,
        "value_type": "int"
      },
      "unit": "bytes"
    }
  },
  "name": "apachesparkreceiver",
  "repository": "opentelemetry-collector-contrib",
  "status": {
    "class": "receiver",
    "codeowners": {
      "active": [
        "Caleb-Hurshman",
        "mrsillydog"
      ]
    },
    "distributions": [
      "contrib"
    ],
    "stability": {
      "alpha": [
        "metrics"
      ]
    }
  },
  "type": "receiver"
}