
openapi: 3.1.0
info:
  title: Logstash APIs
  description: |
    When you run Logstash, it automatically captures runtime metrics that you can use to monitor the health and performance of your Logstash deployment.
    The metrics collected by Logstash include:
    
    - Health report.
    - Hot threads.
    - Logstash node info, like pipeline settings, OS info, and JVM info.
    - Node stats, like JVM stats, process stats, event-related stats, and pipeline runtime stats.
    - Plugins info, including a list of installed plugins.


    The APIs that retrieve these metrics are available by default, with no extra configuration needed.

    ## Documentation source and versions

    This documentation is derived from the `9.3` branch of the [logstash](https://github.com/elastic/logstash) repository.
    It is provided under license [Attribution-NonCommercial-NoDerivatives 4.0 International](https://creativecommons.org/licenses/by-nc-nd/4.0/).
  version: '1.0'
  x-doc-license:
    name: Attribution-NonCommercial-NoDerivatives 4.0 International
    url: https://creativecommons.org/licenses/by-nc-nd/4.0/
  x-feedbackLink:
    label: Feedback
    url: https://github.com/elastic/docs-content/issues/new?assignees=&labels=feedback%2Ccommunity&projects=&template=api-feedback.yaml&title=%5BFeedback%5D%3A+
servers:
  - url: /
security:
  - {}           # Allows requests without authentication
  - BasicAuth: [] # Allows requests with Basic Authentication
tags:
  - name: health
    x-displayName: Health report
    # description:
    # externalDocs:
    #   description:
    #   url:
  - name: hot threads
    x-displayName: Hot threads
    # description:
    # externalDocs:
    #   description:
    #   url:
  - name: root
    x-displayName: Metadata
    description: |
      Build and service metadata, including build info, pipeline info and the service's status.
    # externalDocs:
    #   description:
    #   url:
  - name: node info
    x-displayName: Node info
    description: |
      Logstash node info, like pipeline settings, OS info, and JVM info.
    # externalDocs:
    #   description:
    #   url:
  - name: node stats
    x-displayName: Node stats
    description: |
      Node stats, like JVM stats, process stats, event-related stats, and pipeline runtime stats.
    # externalDocs:
    #   description:
    #   url:
  - name: plugin info
    x-displayName: Plugins info
    description: |
      Plugin info, including a list of installed plugins.
    # externalDocs:
    #   description:
    #   url:
paths:
  /:
    get:
      summary: Get build and service metadata
      description: |
        Shows basic metadata about the running logstash service. This includes build info, pipeline info and the service's status.
      operationId: root
      tags:
        - root
      parameters:
        - name: wait_for_status
          in: query
          required: false
          schema:
            type: string
          description: Wait (until the timeout expires) for the service changes to a specific health status (or a better status). A green status is better than yellow and yellow is better than red. The `timeout` query parameter is required when you use this parameter.
        - name: timeout
          in: query
          required: false
          schema:
            type: string
          description: Period to wait for the status to reach the requested target status. Must be an integer with units, for example `3s`. If the target status is not reached before the timeout expires, the request returns status code 408.
        - $ref: "#/components/parameters/pretty"
      responses:
        '200':
          description: Indicates a successful call
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Common'
                  - type: object
                    properties:
                      build_date:
                        type: string
                        description: The timestamp when this Logstash build was created.
                      build_sha:
                        type: string
                        description: The SHA-1 hash of the Logstash build.
                      build_snapshot:
                        type: boolean
                        description: Whether this Logstash build is a snapshot build.
                      pipeline:
                        type: object
                        properties:
                          workers:
                            type: integer
                            description: The number of workers in the pipeline.
                          batch_size:
                            type: integer
                            description: The batch size for the pipeline.
                          batch_delay:
                            type: integer
                            description: The batch delay for the pipeline.
              examples:
                basicMetadataExample1:
                  value:
                    host: "logstash-pipelines.example.com"
                    version: "9.2.1"
                    http_address: "127.0.0.1:9600"
                    id: "58df6f7c-eb5c-5d42-bc20-c7b22779aa12"
                    name: "logstash-pipelines"
                    ephemeral_id: "59df6f6c-eb5c-4d42-bc20-c7b44779aa12"
                    snapshot: true
                    status: "green"
                    build_date: "2025-11-20T01:18:55+00:00"
                    build_sha: "ff3e87d66f10c05a74d0cef7bc2911d60cee1ebc"
                    build_snapshot: true
                    pipeline:
                      workers: 10
                      batch_size: 125
                      batch_delay: 50
      x-metaTags:
        - content: Logstash
          name: product_name
  /_node/jvm:
    get:
      summary: Gets node-level JVM info
      description: |
        Show node-level JVM stats, such as the JVM process id, version, VM info, memory usage, and info about garbage collectors.
      operationId: nodeInfoJVM
      tags:
        - node info
      parameters:
        - $ref: "#/components/parameters/pretty"
      responses:
        '200':
          description: Indicates a successful call
          content:
            application/json:
              schema:
                allOf:
#                  - $ref: '#/components/schemas/Common'
#                  - $ref: '#/components/schemas/PipelineSettings'
                  - type: object
                    properties:
                      jvm:
                        type: object
                        properties:
                          pid:
                            type: integer
                          version:
                            type: string
                          vm_name:
                            type: string
                          vm_version:
                            type: string
                          vm_vendor:
                            type: string
                          start_time_in_millis:
                            type: integer
                          mem:
                            type: object
                            properties:
                              heap_init_in_bytes:
                                type: integer
                              heap_max_in_bytes:
                                type: integer
                              non_heap_init_in_bytes:
                                type: integer
                              non_heap_max_in_bytes:
                                type: integer
                          gc_collectors:
                            type: array
                            items:
                              type: string
              example:
                jvm:
                  pid: 84013
                  version: "21.0.4"
                  vm_name: "OpenJDK 64-Bit Server VM"
                  vm_version: "21.0.4"
                  vm_vendor: "Eclipse Adoptium"
                  start_time_in_millis: 1630980000000
                  mem:
                    heap_init_in_bytes: 1073741824
                    heap_max_in_bytes: 1073741824
                    non_heap_init_in_bytes: 2555904
                    non_heap_max_in_bytes: 0
                  gc_collectors:
                    - "G1 Young Generation"
                    - "G1 Concurrent GC"
                    - "G1 Old Generation"
      x-metaTags:
        - content: Logstash
          name: product_name

  /_node/os:
    get:
      summary: Get node-level OS info
      description: |
        Get the operating system (OS) name, architecture, version, and available processors.
      operationId: nodeInfoOS
      tags:
        - node info
      parameters:
        - $ref: "#/components/parameters/pretty"
      responses:
        '200':
          description: Indicates a successful call
          content:
            application/json:
              schema:
                allOf:
#                  - $ref: '#/components/schemas/Common'
#                  - $ref: '#/components/schemas/PipelineSettings'
                  - $ref: '#/components/schemas/OSStats'
              example:
                os:
                  name: "Mac OS X"
                  arch: "aarch64"
                  version: "15.3.1"
                  available_processors: 12
      x-metaTags:
        - content: Logstash
          name: product_name

  /_node/pipelines:
    get:
      summary: Get settings for pipelines
      description: |
        Get information and settings for all pipelines.
      operationId: nodeInfoPipelines
      tags:
        - node info
      parameters:
        - $ref: "#/components/parameters/pretty"
      responses:
        '200':
          description: Indicates a successful call
          content:
            application/json:
              schema:
                allOf:
#                  - $ref: '#/components/schemas/Common'
#                  - $ref: '#/components/schemas/PipelineSettings'
                  - type: object
                    properties:
                      pipelines:
                        type: object
                        additionalProperties:
                          $ref: '#/components/schemas/NodeInfoPipeline'
              example:
                pipelines:
                  aggregation-pipeline:
                    workers: 1
                    batch_size: 125
                    batch_delay: 50
                    dead_letter_queue_enabled: false
                  ingestion-pipeline:
                    workers: 8
                    batch_size: 125
                    batch_delay: 5
                    dead_letter_queue_enabled: false
      x-metaTags:
        - content: Logstash
          name: product_name

  /_node/pipelines/{pipeline_name}:
    get:
      summary: Get settings for a pipeline
      description: Get information and settings for all pipelines.
      operationId: nodeInfoPipeline
      tags:
        - node info
      parameters:
        - name: pipeline_name
          in: path
          required: true
          schema:
            type: string
          description: The name of the pipeline to retrieve information for.
        - $ref: "#/components/parameters/pretty"
      responses:
        '200':
          description: Indicates a successful call
          content:
            application/json:
              schema:
                allOf:
#                  - $ref: '#/components/schemas/Common'
#                  - $ref: '#/components/schemas/PipelineSettings'
                  - type: object
                    properties:
                      pipelines:
                        type: object
                        additionalProperties:
                          $ref: '#/components/schemas/NodeInfoPipeline'
              example:
                pipelines:
                  aggregation-pipeline:
                    workers: 1
                    batch_size: 125
                    batch_delay: 50
                    dead_letter_queue_enabled: false
      x-metaTags:
        - content: Logstash
          name: product_name

  /_node/plugins:
    get:
      summary: Get plugin info
      description: >
        Get information about all Logstash plugins that are currently installed.
        This API returns the same output you get by running the `bin/logstash-plugin list --verbose` command.
      operationId: nodePlugins
      tags:
        - plugin info
      parameters:
        - $ref: "#/components/parameters/pretty"
      responses:
        '200':
          description: Indicates a successful call
          content:
            application/json:
              schema:
                allOf:
#                  - $ref: '#/components/schemas/Common'
#                  - $ref: '#/components/schemas/PipelineSettings'
                  - type: object
                    properties:
                      total:
                        type: integer
                      plugins:
                        type: array
                        items:
                          type: object
                          properties:
                            name:
                              type: string
                            version:
                              type: string

              examples:
                nodePluginsExample1:
                  value:
                    total: 4
                    plugins:
                      - name: logstash-codec-cef
                        version: 6.2.8
                      - name: logstash-codec-collectd
                        version: 3.0.3
                      - name: logstash-codec-dots
                        version: 3.0.2
                      - name: logstash-coded-edn
                        version: 3.0.2
      x-metaTags:
        - content: Logstash
          name: product_name

  /_node/stats:
    get:
      summary: Get node statistics
      description: Get node statistics including information about the JVM, process, events, flow, and queue.
      operationId: nodeStats
      tags:
        - node stats
      parameters:
        - $ref: "#/components/parameters/pretty"
      responses:
        "200":
          description: A JSON object containing pipelines statistics.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: "#/components/schemas/Common"
                  - $ref: '#/components/schemas/PipelineSettings'
                  - $ref: '#/components/schemas/JVMStats'
                  - $ref: '#/components/schemas/ProcessStats'
                  - $ref: '#/components/schemas/EventsStats'
                  - $ref: '#/components/schemas/NodeStatsFlow'
                  - $ref: "#/components/schemas/PipelinesStats"
                  - $ref: '#/components/schemas/ReloadStats'
                  - $ref: '#/components/schemas/OSStats'
                  - $ref: '#/components/schemas/QueueStats'
              example:
                host: Mac
                version: 9.1.0
                http_address: 127.0.0.1:9600
                id: 46e32c2e-b41f-45b7-84c1-1642457f3eba
                name: Mac
                ephemeral_id: 1752e2fe-7710-44d0-a2f8-a3005b6273c8
                snapshot:
                status: green
                pipeline:
                  workers: 12
                  batch_size: 125
                  batch_delay: 50
                jvm:
                  threads:
                    count: 47
                    peak_count: 47
                  mem:
                    heap_used_percent: 20
                    heap_committed_in_bytes: 1073741824
                    heap_max_in_bytes: 1073741822
                    heap_used_in_bytes: 222298112
                    non_heap_used_in_bytes: 170675352
                    non_heap_committed_in_bytes: 176553984
                    pools:
                      survivor:
                        max_in_bytes: -1
                        peak_used_in_bytes: 42991616
                        peak_max_in_bytes: -1
                        committed_in_bytes: 26214400
                        used_in_bytes: 26214400
                      old:
                        max_in_bytes: 1073741824
                        peak_used_in_bytes: 96468992
                        peak_max_in_bytes: 1073741824
                        committed_in_bytes: 848297984
                        used_in_bytes: 96468992
                      young:
                        max_in_bytes: -1
                        peak_used_in_bytes: 329252864
                        peak_max_in_bytes: -1
                        committed_in_bytes: 199229440
                        used_in_bytes: 99614720
                  gc:
                    collectors:
                      old:
                        collection_time_in_millis: 0
                        collection_count: 0
                      young:
                        collection_time_in_millis: 49
                        collection_count: 7
                  uptime_in_millis: 14712
                process:
                  open_file_descriptors: 87
                  peak_open_file_descriptors: 87
                  max_file_descriptors: 10240
                  mem:
                    total_virtual_in_bytes: 425113862144
                  cpu:
                    total_in_millis: 20823
                    percent: 0
                    load_average:
                      1m: 4.07177734375
                events:
                  in: 1
                  filtered: 1
                  out: 1
                  duration_in_millis: 6
                  queue_push_duration_in_millis: 0
                flow:
                  input_throughput:
                    current: 0.0776
                    lifetime: 0.0776
                  filter_throughput:
                    current: 0.07759
                    lifetime: 0.07759
                  output_throughput:
                    current: 0.07759
                    lifetime: 0.07759
                  queue_backpressure:
                    current: 0
                    lifetime: 0
                  worker_concurrency:
                    current: 0.0004656
                    lifetime: 0.0004656
                pipelines:
                  heartbeat-ruby-stdout:
                    events:
                      queue_push_duration_in_millis: 0
                      filtered: 1
                      out: 1
                      duration_in_millis: 6
                      in: 1
                    flow:
                      worker_concurrency:
                        current: 0.0004779
                        lifetime: 0.0004779
                      filter_throughput:
                        current: 0.07963
                        lifetime: 0.07963
                      worker_utilization:
                        current: 0.003982
                        lifetime: 0.003982
                      queue_backpressure:
                        current: 0
                        lifetime: 0
                      output_throughput:
                        current: 0.07963
                        lifetime: 0.07963
                      input_throughput:
                        current: 0.07962
                        lifetime: 0.07962
                    plugins:
                      inputs:
                        - id: c9ca46e359d73146590ca8af40092342afa922f3cbf07adc4b5009e346cb19f7
                          flow:
                            throughput:
                              current: 0.07963
                              lifetime: 0.07963
                          name: heartbeat
                          events:
                            queue_push_duration_in_millis: 0
                            out: 1
                      codecs:
                        - id: be3a3aba-ee75-4978-af58-d22b856d0e35
                          name: rubydebug
                        - id: plain_22e7b41b-756a-4b52-b03c-a30b31bb6266
                          name: plain
                          decode:
                            out: 0
                            duration_in_millis: 0
                            writes_in: 0
                          encode:
                            duration_in_millis: 0
                            writes_in: 0
                      filters:
                        - id: 585fa932a4fd506055ead07ee5ebcb3033c27c82ba90cbee73d6ac7e9357333a
                          flow:
                            worker_utilization:
                              current: 0.0006636
                              lifetime: 0.0006636
                            worker_millis_per_event:
                              current: 1
                              lifetime: 1
                          name: ruby
                          events:
                            out: 1
                            in: 1
                            duration_in_millis: 1
                      outputs:
                        - id: c4f801c8f170b4cb0679f704413773acd5f291929f42302d0a56361400c3741b
                          flow:
                            worker_utilization:
                              current: 0.001991
                              lifetime: 0.001991
                            worker_millis_per_event:
                              current: 3
                              lifetime: 3
                          name: stdout
                          events:
                            out: 1
                            in: 1
                            duration_in_millis: 3
                    reloads:
                      last_failure_timestamp:
                      successes: 0
                      last_success_timestamp:
                      last_error:
                      failures: 0
                    queue:
                      type: memory
                      events_count: 0
                      queue_size_in_bytes: 0
                      max_queue_size_in_bytes: 0
                    pipeline:
                      workers: 12
                      batch_size: 125
                      batch_delay: 50
                    hash: c11e0502ebf98956dffa371775fd1cb719f85f819ee166b770b3e982da1c999d
                    ephemeral_id: cd90b521-c192-437e-a49e-62fabebde7e2
                reloads:
                  successes: 0
                  failures: 0
                os: { }
                queue:
                  events_count: 0
      x-metaTags:
        - content: Logstash
          name: product_name

  /_node/stats/events:
    get:
      summary: Get events statistics
      description: Get statistics related to event processing.
      operationId: nodeStatsEvents
      tags:
        - node stats
      parameters:
        - $ref: "#/components/parameters/pretty"
      responses:
        "200":
          description: A JSON object containing events statistics.
          content:
            application/json:
              schema:
                allOf:
#                  - $ref: "#/components/schemas/Common"
#                  - $ref: '#/components/schemas/PipelineSettings'
                  - $ref: "#/components/schemas/EventsStats"
              example:
                events:
                  duration_in_millis: 1109
                  in: 56
                  filtered: 56
                  out: 56
                  queue_push_duration_in_millis: 2
      x-metaTags:
        - content: Logstash
          name: product_name

  /_node/stats/flow:
    get:
      summary: Get flow statistics
      description: Get throughput and backpressure details.
      operationId: nodeStatsFlow
      tags:
        - node stats
      parameters:
        - $ref: "#/components/parameters/pretty"
      responses:
        "200":
          description: |
            Flow rates provide visibility into how a Logstash instance or an individual pipeline is currently performing relative to itself over time. This allows us to attach meaning to the cumulative-value metrics that are also presented by this API, and to determine whether an instance or pipeline is behaving better or worse than it has in the past.

            The following flow rates are available for the logstash process as a whole and for each of its pipelines individually. In addition, pipelines may have [additional flow rates](https://www.elastic.co/guide/en/logstash/current/node-stats-api.html#pipeline-flow-rates) depending on their configuration.
          content:
            application/json:
              schema:
                allOf:
#                  - $ref: "#/components/schemas/Common"
#                  - $ref: '#/components/schemas/PipelineSettings'
                  - $ref: "#/components/schemas/NodeStatsFlow"
              example:
                flow:
                  input_throughput:
                    current: 0.07381
                    last_1_minute: 0.01572
                    last_5_minutes: 0.01618
                    last_15_minutes: 0.0173
                    lifetime: 0.01701
                  filter_throughput:
                    current: 0.07379
                    last_1_minute: 0.01572
                    last_5_minutes: 0.01618
                    last_15_minutes: 0.0173
                    lifetime: 0.01701
                  output_throughput:
                    current: 0.07379
                    last_1_minute: 0.01572
                    last_5_minutes: 0.01618
                    last_15_minutes: 0.0173
                    lifetime: 0.01701
                  queue_backpressure:
                    current: 0.00007379
                    last_1_minute: 0.00001572
                    last_5_minutes: 0.00004532
                    last_15_minutes: 0.00005407
                    lifetime: 0.00006464
                  worker_concurrency:
                    current: 0.0001476
                    last_1_minute: 0.0001257
                    last_5_minutes: 0.000246
                    last_15_minutes: 0.0002941
                    lifetime: 0.000242
      x-metaTags:
        - content: Logstash
          name: product_name

  /_node/stats/geoip_download_manager:
    get:
      summary: Get geoip databases statistics
      description: Get license checks and download status of [Geoip filter plugin](https://www.elastic.co/guide/en/logstash/current/plugins-filters-geoip.html).
      operationId: nodeStatsGeoIPDownloadManager
      tags:
        - node stats
      parameters:
        - $ref: "#/components/parameters/pretty"
      responses:
        "200":
          description: A JSON object containing geoip database license and download status.
          content:
            application/json:
              schema:
                type: object
                properties:
                  geoip_download_manager:
                    type: object
                    properties:
                      database:
                        type: object
                        properties:
                          ASN:
                            $ref: "#/components/schemas/GeoIPDBLicenseStats"
                          CITY:
                            $ref: "#/components/schemas/GeoIPDBLicenseStats"
                      download_stats:
                        type: object
                        properties:
                          successes:
                            description: "The number of successful checks and downloads"
                            type: integer
                          failures:
                            description: "The number of failed check or downloads"
                            type: integer
                          last_checked_at:
                            type: string
                            format: date-time
                          status:
                            description: "The last download status."
                            type: string
                            enum: [ "succeeded", "failed", "updating" ]
      x-metaTags:
        - content: Logstash
          name: product_name
  /_node/stats/jvm:
    get:
      summary: Get JVM statistics
      description: Get threads count, garbage collators(GC) and memory details.
      operationId: nodeStatsJVM
      tags:
        - node stats
      parameters:
        - $ref: "#/components/parameters/pretty"
      responses:
        "200":
          description: A JSON object containing jvm statistics.
          content:
            application/json:
              schema:
                allOf:
#                  - $ref: "#/components/schemas/Common"
#                  - $ref: '#/components/schemas/PipelineSettings'
                  - $ref: "#/components/schemas/JVMStats"
              example:
                jvm:
                  threads:
                    count: 117
                    peak_count: 119
                  mem:
                    heap_used_percent: 4
                    heap_committed_in_bytes: 245366784
                    heap_max_in_bytes: 4294967294
                    heap_used_in_bytes: 206685392
                    non_heap_used_in_bytes: 175223280
                    non_heap_committed_in_bytes: 196739072
                    pools:
                      young:
                        committed_in_bytes: 92274688
                        max_in_bytes: -1
                        used_in_bytes: 69206016
                        peak_max_in_bytes: -1
                        peak_used_in_bytes: 171966464
                      old:
                        committed_in_bytes: 146800640
                        max_in_bytes: 4294967296
                        used_in_bytes: 131187920
                        peak_max_in_bytes: 4294967296
                        peak_used_in_bytes: 135186368
                      survivor:
                        committed_in_bytes: 6291456
                        max_in_bytes: -1
                        used_in_bytes: 6291456
                        peak_max_in_bytes: -1
                        peak_used_in_bytes: 23068672
                  gc:
                    collectors:
                      young:
                        collection_count: 37
                        collection_time_in_millis: 192
                      old:
                        collection_count: 0
                        collection_time_in_millis: 0
                  uptime_in_millis: 2512572
      x-metaTags:
        - content: Logstash
          name: product_name
  /_node/stats/os:
    get:
      summary: Get Cgroup statistics
      description: Get a more accurate view of CPU statistics from control groups (Cgroup) if available.
      operationId: nodeStatsOS
      tags:
        - node stats
      parameters:
        - $ref: "#/components/parameters/pretty"
      responses:
        "200":
          description: A JSON object containing OS statistics.
          content:
            application/json:
              schema:
                type: object
                properties:
                  os:
                    type: object
                    properties:
                      cgroup:
                        type: object
                        properties:
                          cpuacct:
                            type: object
                            properties:
                              control_group:
                                type: string
                              usage_nanos:
                                type: integer
                                format: int64
                          cpu:
                            type: object
                            properties:
                              control_group:
                                type: string
                              cfs_period_micros:
                                type: integer
                                format: int64
                              cfs_quota_micros:
                                type: integer
                                format: int64
                              stat:
                                type: object
                                properties:
                                  number_of_elapsed_periods:
                                    type: integer
                                    format: int64
                                  number_of_times_throttled:
                                    type: integer
                                    format: int64
                                  time_throttled_nanos:
                                    type: integer
                                    format: int64
              example:
                os:
                  cgroup:
                    cpuacct:
                      control_group: "/elastic1"
                      usage_nanos: 378477588075
                    cpu:
                      control_group: "/elastic1"
                      cfs_period_micros: 1000000
                      cfs_quota_micros: 800000
                      stat:
                        number_of_elapsed_periods: 4157
                        number_of_times_throttled: 460
                        time_throttled_nanos: 581617440755
      x-metaTags:
        - content: Logstash
          name: product_name

  /_node/stats/pipelines:
    get:
      summary: Get statistics for pipelines
      description: Get pipeline performance metrics and plugin details.
      operationId: nodeStatsPipelines
      tags:
        - node stats
      parameters:
        - $ref: "#/components/parameters/pretty"
      responses:
        "200":
          description: |
            A JSON object containing pipelines statistics.
            
            - the number of events that were input, filtered, or output by each pipeline
            - the current and lifetime [flow rates](https://www.elastic.co/guide/en/logstash/current/node-stats-api.html#flow-stats for each pipeline
            - stats for each configured filter or output stage
            - info about config reload successes and failures (when [config reload](https://www.elastic.co/guide/en/logstash/current/reloading-config.html) is enabled)
            - info about the persistent queue (when [persistent queues](https://www.elastic.co/guide/en/logstash/current/persistent-queues.html) are enabled)
            - metrics related to processed batch sizes. Includes the size in bytes and the number of events of batches processed in this pipeline. (when setting [pipeline.batch.metrics.sampling_mode](https://www.elastic.co/docs/reference/logstash/logstash-settings-file.html) is not `disabled`).

          content:
            application/json:
              schema:
                allOf:
#                  - $ref: "#/components/schemas/Common"
#                  - $ref: '#/components/schemas/PipelineSettings'
                  - $ref: "#/components/schemas/PipelinesStats"
              example:
                pipelines:
                  beats-es:
                    batch:
                      event_count:
                        current: 78
                        average:
                          lifetime: 115
                          last_1_minute: 120
                          last_5_minutes: 110
                          last_15_minutes: 112
                      byte_size:
                        current: 32767
                        average:
                          lifetime: 14820
                          last_1_minute: 15234
                          last_5_minutes: 14012
                          last_15_minutes: 14567
                    events:
                      duration_in_millis: 365495
                      in: 216610
                      filtered: 216485
                      out: 216485
                      queue_push_duration_in_millis: 342466
                    flow:
                      input_throughput:
                        current: 603.1
                        lifetime: 575.4
                      filter_throughput:
                        current: 604.2
                        lifetime: 575.1
                      output_throughput:
                        current: 604.8
                        lifetime: 575.1
                      queue_backpressure:
                        current: 0.214
                        lifetime: 0.937
                      worker_concurrency:
                        current: 0.941
                        lifetime: 0.9709
                      worker_utilization:
                        current: 93.092
                        lifetime: 92.187
                    plugins:
                      inputs:
                        - id: 35131f351e2dc5ed13ee04265a8a5a1f95292165-1
                          events:
                            out: 216485
                            queue_push_duration_in_millis: 342466
                          flow:
                            throughput:
                              current: 603.1
                              lifetime: 590.7
                          name: beats
                      filters:
                        - id: 35131f351e2dc5ed13ee04265a8a5a1f95292165-2
                          events:
                            duration_in_millis: 55969
                            in: 216485
                            out: 216485
                          failures: 216485
                          patterns_per_field:
                            message: 1
                          flow:
                            worker_utilization:
                              current: 16.71
                              lifetime: 15.27
                            worker_millis_per_event:
                              current: 2829
                              lifetime: 0.2585
                          name: grok
                        - id: 35131f351e2dc5ed13ee04265a8a5a1f95292165-3
                          events:
                            duration_in_millis: 3326
                            in: 216485
                            out: 216485
                          flow:
                            worker_utilization:
                              current: 1.042
                              lifetime: 0.9076
                            worker_millis_per_event:
                              current: 0.01763
                              lifetime: 0.01536
                          name: geoip
                      outputs:
                        - id: 35131f351e2dc5ed13ee04265a8a5a1f95292165-4
                          events:
                            duration_in_millis: 278557
                            in: 216485
                            out: 216485
                          flow:
                            worker_utilization:
                              current: 75.34
                              lifetime: 76.01
                            worker_millis_per_event:
                              current: 1.276
                              lifetime: 1.287
                          name: elasticsearch
                    reloads:
                      last_error:
                      successes: 0
                      last_success_timestamp:
                      last_failure_timestamp:
                      failures: 0
                    queue:
                      type: memory
                    pipeline:
                      workers: 4
                      batch_size: 125
                      batch_delay: 50
                  heartbeat-ruby-stdout:
                    events:
                      queue_push_duration_in_millis: 159
                      in: 45
                      duration_in_millis: 341
                      filtered: 45
                      out: 45
                    flow:
                      filter_throughput:
                        current: 0
                        last_1_minute: 0.01614
                        last_5_minutes: 0.01627
                        last_15_minutes: 0.01643
                        lifetime: 0.0167
                      queue_persisted_growth_bytes:
                        current: 0
                        last_1_minute: 4.068
                        last_5_minutes: 4.101
                        last_15_minutes: 4.14
                        lifetime: 4.214
                      queue_persisted_growth_events:
                        current: 0
                        last_1_minute: 0
                        last_5_minutes: 0
                        last_15_minutes: 0
                        lifetime: 0
                      queue_backpressure:
                        current: 0
                        last_1_minute: 1.614e-05
                        last_5_minutes: 2.278e-05
                        last_15_minutes: 4.272e-05
                        lifetime: 5.901e-05
                      output_throughput:
                        current: 0
                        last_1_minute: 0.01614
                        last_5_minutes: 0.01627
                        last_15_minutes: 0.01643
                        lifetime: 0.0167
                      worker_utilization:
                        current: 0
                        last_1_minute: 0.0004036
                        last_5_minutes: 0.0006239
                        last_15_minutes: 0.0009858
                        lifetime: 0.001055
                      worker_concurrency:
                        current: 0
                        last_1_minute: 4.843e-05
                        last_5_minutes: 7.486e-05
                        last_15_minutes: 0.0001183
                        lifetime: 0.0001266
                      input_throughput:
                        current: 0
                        last_1_minute: 0.01614
                        last_5_minutes: 0.01627
                        last_15_minutes: 0.01643
                        lifetime: 0.0167
                    plugins:
                      inputs:
                        - id: c9ca46e359d73146590ca8af40092342afa922f3cbf07adc4b5009e346cb19f7
                          events:
                            queue_push_duration_in_millis: 159
                            out: 45
                          name: heartbeat
                          flow:
                            throughput:
                              current: 0
                              last_1_minute: 0.01614
                              last_5_minutes: 0.01627
                              last_15_minutes: 0.01643
                              lifetime: 0.0167
                      codecs:
                        - id: plain_b0090202-daac-428e-8355-18c35a0826cb
                          decode:
                            writes_in: 0
                            duration_in_millis: 0
                            out: 0
                          name: plain
                          encode:
                            writes_in: 0
                            duration_in_millis: 0
                        - id: 6bff4bc6-3a8c-494c-aa65-d16e1eb09578
                          name: rubydebug
                      filters:
                        - id: 585fa932a4fd506055ead07ee5ebcb3033c27c82ba90cbee73d6ac7e9357333a
                          events:
                            in: 45
                            duration_in_millis: 86
                            out: 45
                          name: ruby
                          flow:
                            worker_utilization:
                              current: 0
                              last_1_minute: 0.0001345
                              last_5_minutes: 0.0001627
                              last_15_minutes: 0.0002191
                              lifetime: 0.000266
                            worker_millis_per_event:
                              last_1_minute: 1
                              last_5_minutes: 1.2
                              last_15_minutes: 1.6
                              lifetime: 1.911
                      outputs:
                        - id: c4f801c8f170b4cb0679f704413773acd5f291929f42302d0a56361400c3741b
                          events:
                            in: 45
                            duration_in_millis: 216
                            out: 45
                          name: stdout
                          flow:
                            worker_utilization:
                              current: 0
                              last_1_minute: 0.000269
                              last_5_minutes: 0.000434
                              last_15_minutes: 0.0006663
                              lifetime: 0.000668
                            worker_millis_per_event:
                              last_1_minute: 2
                              last_5_minutes: 3.2
                              last_15_minutes: 4.867
                              lifetime: 4.8
                    reloads:
                      last_failure_timestamp:
                      successes: 0
                      failures: 0
                      last_success_timestamp:
                      last_error:
                    queue:
                      events: 0
                      capacity:
                        max_queue_size_in_bytes: 1073741824
                        max_unread_events: 0
                        queue_size_in_bytes: 11341
                        page_capacity_in_bytes: 67108864
                      data:
                        free_space_in_bytes: 60833390592
                        path: "/path/to/logstash/data/queue/heartbeat-ruby-stdout"
                        storage_type: apfs
                      type: persisted
                      events_count: 0
                      queue_size_in_bytes: 11341
                      max_queue_size_in_bytes: 1073741824
                    pipeline:
                      workers: 12
                      batch_size: 125
                      batch_delay: 50
                    hash: c11e0502ebf98956dffa371775fd1cb719f85f819ee166b770b3e982da1c999d
                    ephemeral_id: 6a218b06-9655-4ddc-84e9-d5bfa51e5dc7
      x-metaTags:
        - content: Logstash
          name: product_name

  /_node/stats/pipelines/{pipeline_name}:
    get:
      summary: Get statistics for a pipeline
      description: Get performance metrics and plugin details for a pipeline.
      operationId: nodeStatsPipeline
      tags:
        - node stats
      parameters:
        - name: pipeline_name
          in: path
          required: true
          schema:
            type: string
          description: The name of the pipeline to retrieve information for.
        - $ref: "#/components/parameters/pretty"
      responses:
        "200":
          description: A JSON object containing a single pipeline statistics.
          content:
            application/json:
              schema:
                allOf:
#                  - $ref: "#/components/schemas/Common"
#                  - $ref: '#/components/schemas/PipelineSettings'
                  - $ref: "#/components/schemas/PipelinesStats"
              examples:
                PipelineWithPersistedQueue:
                  description: A pipeline with a persisted queue.
                  value:
                    pipelines:
                      heartbeat-ruby-stdout:
                        batch:
                          event_count:
                            average:
                              lifetime: 115
                          byte_size:
                            average:
                              lifetime: 14820
                        events:
                          queue_push_duration_in_millis: 159
                          in: 45
                          duration_in_millis: 341
                          filtered: 45
                          out: 45
                        flow:
                          filter_throughput:
                            current: 0
                            last_1_minute: 0.01614
                            last_5_minutes: 0.01627
                            last_15_minutes: 0.01643
                            lifetime: 0.0167
                          queue_persisted_growth_bytes:
                            current: 0
                            last_1_minute: 4.068
                            last_5_minutes: 4.101
                            last_15_minutes: 4.14
                            lifetime: 4.214
                          queue_persisted_growth_events:
                            current: 0
                            last_1_minute: 0
                            last_5_minutes: 0
                            last_15_minutes: 0
                            lifetime: 0
                          queue_backpressure:
                            current: 0
                            last_1_minute: 1.614e-05
                            last_5_minutes: 2.278e-05
                            last_15_minutes: 4.272e-05
                            lifetime: 5.901e-05
                          output_throughput:
                            current: 0
                            last_1_minute: 0.01614
                            last_5_minutes: 0.01627
                            last_15_minutes: 0.01643
                            lifetime: 0.0167
                          worker_utilization:
                            current: 0
                            last_1_minute: 0.0004036
                            last_5_minutes: 0.0006239
                            last_15_minutes: 0.0009858
                            lifetime: 0.001055
                          worker_concurrency:
                            current: 0
                            last_1_minute: 4.843e-05
                            last_5_minutes: 7.486e-05
                            last_15_minutes: 0.0001183
                            lifetime: 0.0001266
                          input_throughput:
                            current: 0
                            last_1_minute: 0.01614
                            last_5_minutes: 0.01627
                            last_15_minutes: 0.01643
                            lifetime: 0.0167
                        plugins:
                          inputs:
                            - id: c9ca46e359d73146590ca8af40092342afa922f3cbf07adc4b5009e346cb19f7
                              events:
                                queue_push_duration_in_millis: 159
                                out: 45
                              name: heartbeat
                              flow:
                                throughput:
                                  current: 0
                                  last_1_minute: 0.01614
                                  last_5_minutes: 0.01627
                                  last_15_minutes: 0.01643
                                  lifetime: 0.0167
                          codecs:
                            - id: plain_b0090202-daac-428e-8355-18c35a0826cb
                              decode:
                                writes_in: 0
                                duration_in_millis: 0
                                out: 0
                              name: plain
                              encode:
                                writes_in: 0
                                duration_in_millis: 0
                            - id: 6bff4bc6-3a8c-494c-aa65-d16e1eb09578
                              name: rubydebug
                          filters:
                            - id: 585fa932a4fd506055ead07ee5ebcb3033c27c82ba90cbee73d6ac7e9357333a
                              events:
                                in: 45
                                duration_in_millis: 86
                                out: 45
                              name: ruby
                              flow:
                                worker_utilization:
                                  current: 0
                                  last_1_minute: 0.0001345
                                  last_5_minutes: 0.0001627
                                  last_15_minutes: 0.0002191
                                  lifetime: 0.000266
                                worker_millis_per_event:
                                  last_1_minute: 1
                                  last_5_minutes: 1.2
                                  last_15_minutes: 1.6
                                  lifetime: 1.911
                          outputs:
                            - id: c4f801c8f170b4cb0679f704413773acd5f291929f42302d0a56361400c3741b
                              events:
                                in: 45
                                duration_in_millis: 216
                                out: 45
                              name: stdout
                              flow:
                                worker_utilization:
                                  current: 0
                                  last_1_minute: 0.000269
                                  last_5_minutes: 0.000434
                                  last_15_minutes: 0.0006663
                                  lifetime: 0.000668
                                worker_millis_per_event:
                                  last_1_minute: 2
                                  last_5_minutes: 3.2
                                  last_15_minutes: 4.867
                                  lifetime: 4.8
                        reloads:
                          last_failure_timestamp:
                          successes: 0
                          failures: 0
                          last_success_timestamp:
                          last_error:
                        queue:
                          events: 0
                          capacity:
                            max_queue_size_in_bytes: 1073741824
                            max_unread_events: 0
                            queue_size_in_bytes: 11341
                            page_capacity_in_bytes: 67108864
                          data:
                            free_space_in_bytes: 60833390592
                            path: "/path/to/logstash/data/queue/heartbeat-ruby-stdout"
                            storage_type: apfs
                          type: persisted
                          events_count: 0
                          queue_size_in_bytes: 11341
                          max_queue_size_in_bytes: 1073741824
                        pipeline:
                          workers: 12
                          batch_size: 125
                          batch_delay: 50
                        hash: c11e0502ebf98956dffa371775fd1cb719f85f819ee166b770b3e982da1c999d
                        ephemeral_id: 6a218b06-9655-4ddc-84e9-d5bfa51e5dc7

                PipelineWithMemoryQueue:
                  description: A pipeline with a memory queue.
                  value:
                    pipelines:
                      heartbeat-ruby-stdout:
                        events:
                          duration_in_millis: 14
                          filtered: 2
                          in: 2
                          queue_push_duration_in_millis: 0
                          out: 2
                        flow:
                          input_throughput:
                            current: 0.09877
                            last_1_minute: 0.01661
                            lifetime: 0.03094
                          output_throughput:
                            current: 0.09877
                            last_1_minute: 0.01661
                            lifetime: 0.03094
                          worker_utilization:
                            current: 0.002469
                            last_1_minute: 0.001384
                            lifetime: 0.001805
                          filter_throughput:
                            current: 0.09877
                            last_1_minute: 0.01661
                            lifetime: 0.03094
                          worker_concurrency:
                            current: 0.0002963
                            last_1_minute: 0.0001661
                            lifetime: 0.0002166
                          queue_backpressure:
                            current: 0
                            last_1_minute: 0
                            lifetime: 0
                        plugins:
                          inputs:
                            - id: c9ca46e359d73146590ca8af40092342afa922f3cbf07adc4b5009e346cb19f7
                              events:
                                queue_push_duration_in_millis: 0
                                out: 2
                              name: heartbeat
                              flow:
                                throughput:
                                  current: 0.09876
                                  last_1_minute: 0.01661
                                  lifetime: 0.03094
                          codecs:
                            - id: 8b2798ec-d828-445a-a5c3-b0ebe2ec142a
                              name: rubydebug
                            - id: plain_dc12bcf8-1c2e-4f28-b55d-a82ab127d00a
                              encode:
                                duration_in_millis: 0
                                writes_in: 0
                              name: plain
                              decode:
                                duration_in_millis: 0
                                writes_in: 0
                                out: 0
                          filters:
                            - id: 585fa932a4fd506055ead07ee5ebcb3033c27c82ba90cbee73d6ac7e9357333a
                              events:
                                duration_in_millis: 4
                                in: 2
                                out: 2
                              name: ruby
                              flow:
                                worker_millis_per_event:
                                  current: 1
                                  last_1_minute: 4
                                  lifetime: 2
                                worker_utilization:
                                  current: 0.000823
                                  last_1_minute: 0.0005537
                                  lifetime: 0.0005157
                          outputs:
                            - id: c4f801c8f170b4cb0679f704413773acd5f291929f42302d0a56361400c3741b
                              events:
                                duration_in_millis: 7
                                in: 2
                                out: 2
                              name: stdout
                              flow:
                                worker_millis_per_event:
                                  current: 3
                                  last_1_minute: 4
                                  lifetime: 3.5
                                worker_utilization:
                                  current: 0.002469
                                  last_1_minute: 0.0005537
                                  lifetime: 0.0009025
                        reloads:
                          successes: 0
                          last_failure_timestamp:
                          failures: 0
                          last_success_timestamp:
                          last_error:
                        queue:
                          type: memory
                          events_count: 0
                          queue_size_in_bytes: 0
                          max_queue_size_in_bytes: 0
                        pipeline:
                          workers: 12
                          batch_size: 125
                          batch_delay: 50
                        hash: c11e0502ebf98956dffa371775fd1cb719f85f819ee166b770b3e982da1c999d
                        ephemeral_id: c91bff2b-c92b-45ac-8c74-04783f6cc1dd
      x-metaTags:
        - content: Logstash
          name: product_name

  /_node/stats/process:
    get:
      summary: Get process statistics
      description: Get system-level process statistics.
      operationId: nodeStatsProcess
      tags:
        - node stats
      parameters:
        - $ref: "#/components/parameters/pretty"
      responses:
        "200":
          description: A JSON object containing process statistics.
          content:
            application/json:
              schema:
                allOf:
#                  - $ref: "#/components/schemas/Common"
#                  - $ref: '#/components/schemas/PipelineSettings'
                  - $ref: "#/components/schemas/ProcessStats"
              example:
                process:
                  open_file_descriptors: 221
                  peak_open_file_descriptors: 221
                  max_file_descriptors: 10240
                  mem:
                    total_virtual_in_bytes: 428771917824
                  cpu:
                    total_in_millis: 74913
                    percent: 0
                    load_average:
                      1m: 6.06201171875
      x-metaTags:
        - content: Logstash
          name: product_name

  /_node/stats/reloads:
    get:
      summary: Get config reload statistics
      description: Get information about config reload successes and failures.
      operationId: nodeStatsReloads
      tags:
        - node stats
      parameters:
        - $ref: "#/components/parameters/pretty"
      responses:
        "200":
          description: A JSON object containing process statistics.
          content:
            application/json:
              schema:
                allOf:
#                  - $ref: "#/components/schemas/Common"
#                  - $ref: '#/components/schemas/PipelineSettings'
                  - $ref: "#/components/schemas/ReloadStats"
              example:
                reloads:
                  successes: 0
                  failures: 0
      x-metaTags:
        - content: Logstash
          name: product_name
  /_node/hot_threads:
    get:
      summary: Get hot threads
      description: >
        Get information about current hot threads for Logstash.
        A hot thread is a Java thread that has high CPU usage and takes longer than normal to execute.
      operationId: nodeHotThreads
      tags:
        - hot threads
      parameters:
        - name: threads
          in: query
          schema:
            type: integer
            default: 10
          description: The number of hot threads to return.
        - name: stacktrace_size
          in: query
          schema:
            type: integer
            default: 50
          description: The depth of the stack trace to report for each thread.
        - name: ignore_idle_threads
          in: query
          schema:
            type: boolean
            default: true
          description: If true, does not return idle threads.
        - $ref: "#/components/parameters/pretty"
        - name: human
          in: query
          schema:
            type: boolean
          description: If you append `?human=true` to the request, the JSON returned will be in a human-readable format.
      responses:
        '200':
          description: Indicates a successful call
          content:
            application/json:
              schema:
                allOf:
#                  - $ref: '#/components/schemas/Common'
#                  - $ref: '#/components/schemas/PipelineSettings'
                  - type: object
                    properties:
                      hot_threads:
                        type: object
                        properties:
                          time:
                            type: string
                          busiest_threads:
                            type: integer
                          threads:
                            type: array
                            items:
                              $ref: '#/components/schemas/Thread'
              examples:
                nodeHotThreadsExample1:
                  value:
                    hot_threads:
                      time: 2025-01-06T18:25:28-07:00
                      busiest_threads: 3
                      threads:
                        - name: Ruby-0-Thread-7
                          thread_id: 37
                          percent_of_cpu_time: 0.0
                          state: timed_waiting
                          traces:
                            - "java.lang.Object.wait(Native Method)"
                            - "org.jruby.RubyThread.sleep(RubyThread.java:1002)"
                            - "org.jruby.RubyKernel.sleep(RubyKernel.java:803)"
                        - name: "[test2]>worker3"
                          thread_id: 10
                          percent_of_cpu_time: 0.85
                          state: waiting
                          traces:
                            - "sun.misc.Unsafe.park(Native Method)"
                            - "java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)"
                            - "java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:836)"
                        - name: "[test2]>worker2"
                          thread_id: 11
                          percent_of_cpu_time: 0.85
                          state: runnable
                          traces:
                            - "org.jruby.RubyClass.allocate(RubyClass.java:225)"
                            - "org.jruby.RubyClass.newInstance(RubyClass.java:856)"
                            - "org.jruby.RubyClass$INVOKER$i$newInstance.call(RubyClass$INVOKER$i$newInstance.gen)"
      x-metaTags:
        - content: Logstash
          name: product_name

  /_health_report:
    get:
      summary: Get health status
      description: |
        The health API returns a report with the health status of Logstash and the pipelines that are running inside of it. 
        The report contains a list of indicators that compose Logstash functionality.

        Each indicator has a health status of: green, unknown, yellow, or red. 
        The indicator provides an explanation and metadata describing the reason for its current health status.

        The top-level status is controlled by the worst indicator status.

        In the event that an indicator status is non-green, a list of impacts may be present in the indicator result which detail the functionalities that are negatively affected by the health issue. 
        Each impact carries with it a severity level, an area of the system that is affected, and a simple description of the impact on the system.

        Some health indicators can determine the root cause of a health problem and prescribe a set of steps that can be performed in order to improve the health of the system. 
        The root cause and remediation steps are encapsulated in a diagnosis. 
        A diagnosis contains a cause detailing a root cause analysis, an action containing a brief description of the steps to take to fix the problem, and the URL for detailed troubleshooting help.
        
        NOTE: The health indicators perform root cause analysis of non-green health statuses. 
        This can be computationally expensive when called frequently.

      operationId: healthReport
      tags:
        - health
      parameters:
        - $ref: "#/components/parameters/pretty"
      responses:
        '200':
          description: Indicates a successful call
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Common'
                  - type: object
                    properties:
                      symptom:
                        type: string
                        example: "3 indicators are healthy"
                      indicators:
                        description: Information about the health of Logstash indicators.
                        type: object
                        properties:
                          pipelines:
                            type: object
                            properties:
                              status:
                                $ref: '#/components/schemas/Status'
                              symptom:
                                type: string
                              indicators:
                                type: object
                                additionalProperties:
                                  description: "pipeline name"
                                  type: object
                                  properties:
                                    status:
                                      $ref: '#/components/schemas/Status'
                                    symptom:
                                      type: string
                                      description: "A message providing information about the current health status."
                                      example: "The pipeline is healthy"
                                    details:
                                      type: object
                                      description: "An object that contains additional information about the indicator that has led to the current health status result."
                                      properties:
                                        status:
                                          type: object
                                          properties:
                                            state:
                                              type: string
                                              enum:
                                                - LOADING
                                                - RUNNING
                                                - FINISHED
                                                - TERMINATED
                                        flow:
                                          type: object
                                          properties:
                                            worker_utilization:
                                              $ref: '#/components/schemas/FlowWindows'
                                    impacts:
                                      type: array
                                      description: "If a non-healthy status is returned, indicators may include a list of impacts that this health status will have on Logstash."
                                      items:
                                        type: object
                                        properties:
                                          id:
                                            type: string
                                            description: |
                                              A unique identifier that may appear associated with a known impacts or issue.
                                              This ID follows a structured format that helps identify the specific problem.
                                            example: "logstash:health:pipeline:flow:impact:blocked_processing"
                                          severity:
                                            type: integer
                                            minimum: 1
                                            maximum: 10
                                            description: "How important this impact is to the functionality of Logstash. A value of 1 is the highest severity, with larger values indicating lower severity."
                                          description:
                                            type: string
                                            description: "A description of the impact on Logstash."
                                          impact_areas:
                                            type: array
                                            description: "The areas of Logstash affected by the health status. Possible values are:"
                                            example: ["pipeline_execution"]
                                            items:
                                              type: string
                                    diagnosis:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          id:
                                            type: string
                                            description: |
                                              A unique identifier that may appear associated with a known diagnosis or issue.
                                              This ID follows a structured format that helps identify the specific problem.
                                            example: "logstash:health:pipeline:flow:worker_utilization:diagnosis:5m-blocked"
                                          cause:
                                            type: string
                                            description: "A description of a root cause of this health problem."
                                          action:
                                            type: string
                                            description: "A brief description of the steps that should be taken to remediate the problem. A more detailed step-by-step guide to remediate the problem is provided by the `help_url` field."
                                          help_url:
                                            type: string
                                            format: uri
                                            description: "A link to the troubleshooting guide that will fix the health problem."
              examples:
                normalTerminatedCase:
                  description: "The pipeline has finished without errors or interruptions."
                  value:
                    symptom: "1 indicator is concerning (`pipelines`)"
                    indicators:
                      pipelines:
                        status: "yellow"
                        symptom: "1 indicator is concerning (`normal-completion-pipeline`)"
                        indicators:
                          normal-completion-pipeline:
                            status: "yellow"
                            symptom: "The pipeline is concerning; 1 area is impacted and 1 diagnosis is available"
                            diagnosis:
                              - cause: "pipeline has finished running because its inputs have been closed and events have been processed"
                                action: "if you expect this pipeline to run indefinitely, you will need to configure its inputs to continue receiving or fetching events"
                            impacts:
                              - impact_areas: ["pipeline_execution"]
                            details:
                              status:
                                state: "FINISHED"
                abnormalTerminatedCase:
                  description: "The pipeline is terminated with errors."
                  value:
                    status: "red"
                    symptom: "1 indicator is unhealthy (`pipelines`)"
                    indicators:
                      pipelines:
                        status: "red"
                        symptom: "1 indicator is unhealthy (`abnormal-termination-pipeline`)"
                        indicators:
                          abnormal-termination-pipeline:
                            status: "red"
                            symptom: "The pipeline is unhealthy; 1 area is impacted and 1 diagnosis is available"
                            diagnosis:
                              - cause: "pipeline is not running, likely because it has encountered an error"
                                action: "view logs to determine the cause of abnormal pipeline shutdown"
                            impacts:
                              - description: "the pipeline is not currently processing"
                                impact_areas: [ "pipeline_execution" ]
                            details:
                              status:
                                state: "TERMINATED"
                backpressureCase:
                  description: "A pipeline is blocked by slow downstream processing."
                  value:
                    status: "red"
                    symptom: "1 indicator is unhealthy (`pipelines`)"
                    indicators:
                      pipelines:
                        status: "red"
                        symptom: "1 indicator is unhealthy (`blocked-pipeline`)"
                        indicators:
                          blocked-pipeline:
                            status: "red"
                            symptom: "The pipeline is unhealthy; 1 area is impacted and 1 diagnosis is available"
                            diagnosis:
                              - id: "logstash:health:pipeline:flow:worker_utilization:diagnosis:5m-blocked"
                                cause: "pipeline workers have been completely blocked for at least five minutes"
                                action: "address bottleneck or add resources"
                            impacts:
                              - id: "logstash:health:pipeline:flow:impact:blocked_processing"
                                severity: 1
                                description: "the pipeline is blocked"
                                impact_areas: [ "pipeline_execution" ]
                            details:
                              status:
                                state: "RUNNING"
                              flow:
                                worker_utilization:
                                  last_1_minute: 100.0
                                  last_5_minutes: 100.0
      x-metaTags:
        - content: Logstash
          name: product_name

components:
  parameters:
    pretty:
      name: pretty
      in: query
      schema:
        type: boolean
      description: >
        If you append `?pretty=true` to the request, the JSON returned will be pretty formatted. Use it for debugging only!
  securitySchemes:
    BasicAuth:
      type: http
      scheme: basic
  schemas:
    Common:
      type: object
      properties:
        host:
          type: string
          description: The name of the host machine.
        version:
          type: string
          description: The version of the Logstash instance.
        http_address:
          type: string
          description: The HTTP address where the Logstash instance is accessible, including the port number.
        id:
          type: string
          description: A unique identifier (uuid) for the Logstash instance.
        name:
          type: string
          description: The name of the Logstash instance.
        ephemeral_id:
          type: string
          description: A unique identifier for the ephemeral session of the Logstash instance.
        snapshot:
          type: [boolean, 'null']
        status:
          $ref: '#/components/schemas/Status'
    PipelineSettings:
      type: object
      properties:
        pipeline:
          type: object
          properties:
            workers:
              type: integer
            batch_size:
              type: integer
            batch_delay:
              type: integer

    NodeInfoPipeline:
      type: object
      properties:
        workers:
          type: integer
        batch_size:
          type: integer
        batch_delay:
          type: integer
        dead_letter_queue_enabled:
          type: boolean

    Status:
      type: string
      description: |
        Health status of Logstash, based on the aggregated status of all indicators.
        Statuses are:
        
        - `green`: Logstash is healthy.
        - `unknown`: Logstash health could not be determined.
        - `yellow`: The functionality of Logstash is in a degraded state and may need remediation to avoid the health becoming red.
        - `red`: Logstash is experiencing an outage or certain features are unavailable for use.
      enum:
        - green
        - red
        - unknown
        - yellow

    FlowWindows:
      type: object
      description: |
        When the rate for a given flow metric window is infinite, it is presented as a string.
        This occurs when the numerator metric has changed during the window without a change in the rate’s denominator metric.
      properties:
        current:
          oneOf:
            - type: number
              format: double
            - type: string
              enum: ["Infinity"]
          description: "The most recent ~10s."
        last_1_minute:
          oneOf:
            - type: number
              format: double
            - type: string
              enum: ["Infinity"]
        last_5_minutes:
          oneOf:
            - type: number
              format: double
            - type: string
              enum: ["Infinity"]
        last_15_minutes:
          oneOf:
            - type: number
              format: double
            - type: string
              enum: ["Infinity"]
        last_1_hour:
          oneOf:
            - type: number
              format: double
            - type: string
              enum: ["Infinity"]
        last_24_hours:
          oneOf:
            - type: number
              format: double
            - type: string
              enum: ["Infinity"]
        lifetime:
          oneOf:
            - type: number
              format: double
            - type: string
              enum: ["Infinity"]
          description: "The lifetime of the relevant pipeline or process."
    FlowStatsPart1:
      type: object
      properties:
        input_throughput:
          description: |
            This metric is expressed in events-per-second, and is the rate of events being pushed into the pipeline(s) queue(s) relative to wall-clock time (`events.in` / second). It includes events that are blocked by the queue and have not yet been accepted.
          allOf: # need to use allOf to keep the description
            - $ref: "#/components/schemas/FlowWindows"
        filter_throughput:
          description: |
            This metric is expressed in events-per-second, and is the rate of events flowing through the filter phase of the pipeline(s) relative to wall-clock time (`events.filtered` / second).
          allOf: # need to use allOf to keep the description
            - $ref: "#/components/schemas/FlowWindows"
        output_throughput:
          description: |
            This metric is expressed in events-per-second, and is the rate of events flowing through the output phase of the pipeline(s) relative to wall-clock time (`events.out` / second).
          allOf: # need to use allOf to keep the description
            - $ref: "#/components/schemas/FlowWindows"
        queue_backpressure:
          description: |
            This is a unitless metric representing the cumulative time spent by all inputs blocked pushing events into their pipeline’s queue, relative to wall-clock time (queue_push_duration_in_millis / millisecond). It is typically most useful when looking at the stats for an individual pipeline.

            While a "zero" value indicates no back-pressure to the queue, the magnitude of this metric is highly dependent on the shape of the pipelines and their inputs. It cannot be used to compare one pipeline to another or even one process to itself if the quantity or shape of its pipelines changes. A pipeline with only one single-threaded input may contribute up to 1.00, a pipeline whose inputs have hundreds of inbound connections may contribute much higher numbers to this combined value.

            Additionally, some amount of back-pressure is both normal and expected for pipelines that are pulling data, as this back-pressure allows them to slow down and pull data at a rate its downstream pipeline can tolerate.
          allOf: # need to use allOf to keep the description
            - $ref: "#/components/schemas/FlowWindows"
        worker_concurrency:
          description: |
            This is a unitless metric representing the cumulative time spent by all workers relative to wall-clock time (duration_in_millis / millisecond).

            A pipeline is considered "saturated" when its worker_concurrency flow metric approaches its available pipeline.workers, because it indicates that all of its available workers are being kept busy. Tuning a saturated pipeline to have more workers can often work to increase that pipeline’s throughput and decrease back-pressure to its queue, unless the pipeline is experiencing back-pressure from its outputs.

            A process is also considered "saturated" when its top-level worker_concurrency flow metric approaches the cumulative pipeline.workers across all pipelines, and similarly can be addressed by tuning the individual pipelines that are saturated.
          allOf: # need to use allOf to keep the description
            - $ref: "#/components/schemas/FlowWindows"
    FlowStatsPart2:
      type: object
      properties:
        worker_utilization:
          description: |
            This is a unitless metric that indicates the percentage of available worker time being used by this individual plugin (duration / (uptime * `pipeline.workers`). It is useful for identifying which plugins in a pipeline are using the available worker resources.

            A pipeline is considered "saturated" when `worker_utilization` approaches 100, because it indicates that all of its workers are being kept busy. This is typically an indication of either downstream back-pressure or insufficient resources allocated to the pipeline. Tuning a saturated pipeline to have more workers can often work to increase that pipeline’s throughput and decrease back-pressure to its queue, unless the pipeline is experiencing back-pressure from its outputs.

            A pipeline is considered "starved" when `worker_utilization` approaches 0, because it indicates that none of its workers are being kept busy. This is typically an indication that the inputs are not receiving or retrieving enough volume to keep the pipeline workers busy. Tuning a starved pipeline to have fewer workers can help it to consume less memory and CPU, freeing up resources for other pipelines.
          allOf: # need to use allOf to keep the description
            - $ref: "#/components/schemas/FlowWindows"
    FlowStatsPart3:
      type: object
      properties:
        queue_persisted_growth_bytes:
          description: |
            This metric is expressed in bytes-per-second, and is the rate of change of the size of the persistent queue on disk, relative to wall-clock time (`queue.queue_size_in_bytes` / second). A positive number indicates that the queue size-on-disk is growing, and a negative number indicates that the queue is shrinking.

            NOTE: The size of a PQ on disk includes both unacknowledged events and previously-acknowledged events from pages that contain one or more unprocessed events. This means it grows gradually as individual events are added, but shrinks in large chunks each time a whole page of processed events is reclaimed (read more: [PQ disk garbage collection](https://www.elastic.co/guide/en/logstash/current/persistent-queues.html#garbage-collection)).
          allOf: # need to use allOf to keep the description
            - $ref: "#/components/schemas/FlowWindows"
        queue_persisted_growth_events:
          description: |
            This metric is expressed in events-per-second, and is the rate of change of the number of unacknowledged events in the queue, relative to wall-clock time (`queue.events_count` / second). A positive number indicates that the queue’s event-count is growing, and a negative number indicates that the queue is shrinking.
          allOf: # need to use allOf to keep the description
            - $ref: "#/components/schemas/FlowWindows"
    PipelineMQFlowStats:
      type: object
      allOf:
        - $ref: "#/components/schemas/FlowStatsPart1"
        - $ref: "#/components/schemas/FlowStatsPart2"
    PipelinePQFlowStats:
      type: object
      allOf:
        - $ref: "#/components/schemas/FlowStatsPart1"
        - $ref: "#/components/schemas/FlowStatsPart2"
        - $ref: "#/components/schemas/FlowStatsPart3"
    PipelineFlowStats:
      type: object
      description: |
        Each pipeline’s entry in the API response includes a number of pipeline-scoped [flow rates](https://www.elastic.co/guide/en/logstash/current/node-stats-api.html#flow-stats) such as `input_throughput`, `worker_concurrency`, and `queue_backpressure` to provide visibility into the flow of events through the pipeline.
        
        When configured with a [persistent queue](https://www.elastic.co/guide/en/logstash/current/persistent-queues.html, the pipeline’s flow will include additional rates to provide visibility into the health of the pipeline’s persistent queue:
      properties:
        flow:
          type: object
          oneOf:
            - $ref: "#/components/schemas/PipelineMQFlowStats" # For memory queue
            - $ref: "#/components/schemas/PipelinePQFlowStats" # For persisted queue

    NodeStatsFlow:
      type: object
      properties:
        flow:
          $ref: "#/components/schemas/FlowStatsPart1"

    Thread:
      type: object
      properties:
        name:
          type: string
        thread_id:
          type: integer
        percent_of_cpu_time:
          type: number
          format: double
        state:
          type: string
        traces:
          type: array
          items:
            type: string

    EventsStats:
      type: object
      properties:
        events:
          type: object
          properties:
            in:
              type: integer
              format: int64
            filtered:
              type: integer
              format: int64
            out:
              type: integer
              format: int64
            duration_in_millis:
              type: integer
              format: int64
            queue_push_duration_in_millis:
              type: integer
              format: int64

    JVMStats:
      type: object
      properties:
        jvm:
          type: object
          properties:
            threads:
              type: object
              properties:
                count:
                  type: integer
                  description: The number of active JVM threads.
                peak_count:
                  type: integer
                  description: The peak number of active JVM threads.
            mem:
              type: object
              properties:
                heap_used_percent:
                  type: integer
                  description: The percentage of heap memory used.
                heap_committed_in_bytes:
                  type: integer
                  format: int64
                  description: The committed heap memory in bytes.
                heap_max_in_bytes:
                  type: integer
                  format: int64
                  description: The maximum heap memory in bytes.
                heap_used_in_bytes:
                  type: integer
                  format: int64
                  description: The used heap memory in bytes.
                non_heap_used_in_bytes:
                  type: integer
                  format: int64
                  description: The used non-heap memory in bytes.
                non_heap_committed_in_bytes:
                  type: integer
                  format: int64
                  description: The committed non-heap memory in bytes.
                pools:
                  $ref: "#/components/schemas/JVMMemoryPools"
            gc:
              type: object
              properties:
                collectors:
                  $ref: "#/components/schemas/JVMGCCollectors"
            uptime_in_millis:
              type: integer
              format: int64
              description: The JVM uptime in milliseconds.
    JVMMemoryPool:
      type: object
      properties:
        peak_used_in_bytes:
          type: integer
          format: int64
        used_in_bytes:
          type: integer
          format: int64
        peak_max_in_bytes:
          type: integer
          format: int64
        max_in_bytes:
          type: integer
          format: int64
        committed_in_bytes:
          type: integer
          format: int64
    JVMMemoryPools:
      type: object
      properties:
        survivor:
          $ref: "#/components/schemas/JVMMemoryPool"
        old:
          $ref: "#/components/schemas/JVMMemoryPool"
        young:
          $ref: "#/components/schemas/JVMMemoryPool"
    JVMGCCollector:
      type: object
      properties:
        collection_time_in_millis:
          type: integer
          format: int64
        collection_count:
          type: integer
    JVMGCCollectors:
      type: object
      properties:
        old:
          $ref: "#/components/schemas/JVMGCCollector"
        young:
          $ref: "#/components/schemas/JVMGCCollector"

    OSStats:
      type: object
      properties:
        os:
          type: object
          properties:
            name:
              type: string
            arch:
              type: string
            version:
              type: string
            available_processors:
              type: integer

    ProcessStats:
      type: object
      properties:
        process:
          type: object
          properties:
            open_file_descriptors:
              type: integer
            peak_open_file_descriptors:
              type: integer
            max_file_descriptors:
              type: integer
            mem:
              type: object
              properties:
                total_virtual_in_bytes:
                  type: integer
            cpu:
              type: object
              properties:
                total_in_millis:
                  type: integer
                percent:
                  type: integer
                load_average:
                  type: object
                  properties:
                    "1m":
                      type: number

    ThroughputStats:
      type: object
      properties:
        throughput:
          description: |
            This metric is expressed in events-per-second, and is the rate of events this input plugin is pushing into the pipeline’s queue relative to wall-clock time (`events.in` / second). It includes events that are blocked by the queue and have not yet been accepted.
          allOf: # need to use allOf to keep the description
            - $ref: "#/components/schemas/FlowWindows"
    WorkerStats:
      type: object
      properties:
        worker_utilization:
          description: |
            This is a unitless metric that indicates the percentage of available worker time being used by this individual plugin (`duration` / (`uptime` * `pipeline.workers`). It is useful for identifying which plugins in a pipeline are using the available worker resources.
          allOf: # need to use allOf to keep the description
            - $ref: "#/components/schemas/FlowWindows"
        worker_millis_per_event:
          description: |
            This metric is expressed in worker-millis-spent-per-event (`duration_in_millis` / `events.in`) with higher scores indicating more resources spent per event. It is especially useful for identifying issues with plugins that operate on a small subset of events. An "Infinity" value for a given flow window indicates that worker millis have been spent without any events completing processing; this can indicate a plugin that is either stuck or handling only empty batches.
          allOf: # need to use allOf to keep the description
            - $ref: "#/components/schemas/FlowWindows"

    InputPluginEventsStats:
      type: object
      properties:
        out:
          type: integer
          format: int64
        queue_push_duration_in_millis:
          type: integer
          format: int64
    InputPluginStats:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        flow:
          $ref: "#/components/schemas/ThroughputStats"
        events:
          $ref: "#/components/schemas/InputPluginEventsStats"
    FilterOutputPluginEventsStats:
      type: object
      properties:
        in:
          type: integer
          format: int64
        out:
          type: integer
          format: int64
        duration_in_millis:
          type: integer
          format: int64
    FilterOutputPluginStats:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        flow:
          $ref: "#/components/schemas/WorkerStats"
        events:
          $ref: "#/components/schemas/FilterOutputPluginEventsStats"
    CodecPluginStats:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        decode:
          type: object
          properties:
            duration_in_millis:
              type: integer
            writes_in:
              type: integer
            out:
              type: integer
        encode:
          type: object
          properties:
            duration_in_millis:
              type: integer
            writes_in:
              type: integer

    PipelinesStats:
      type: object
      properties:
        pipelines:
          type: object
          description: |
            A map where each key is a user-defined pipeline name, and the value contains the metrics for that pipeline.
          additionalProperties:
            description: "Metrics of each plugin in the pipeline, flow statistics, event statistics and queue statistics."
            type: object
            allOf:
              - $ref: "#/components/schemas/EventsStats"
              - $ref: "#/components/schemas/PipelineFlowStats"
              - type: object
                properties:
                  plugins:
                    type: object
                    properties:
                      inputs:
                        type: array
                        items:
                          $ref: "#/components/schemas/InputPluginStats"
                      codecs:
                        type: array
                        items:
                          $ref: "#/components/schemas/CodecPluginStats"
                      filters:
                        type: array
                        items:
                          $ref: "#/components/schemas/FilterOutputPluginStats"
                      outputs:
                        type: array
                        items:
                          $ref: "#/components/schemas/FilterOutputPluginStats"
              - $ref: "#/components/schemas/PipelineReloadStats"
              - $ref: "#/components/schemas/PipelineQueueStats"
              - $ref: "#/components/schemas/PipelineSettings"
              - type: object
                properties:
                  hash:
                    type: string
                    description: "A unique hash identifier."
                  ephemeral_id:
                    type: string
                    format: uuid
                    description: "A temporary unique identifier for the instance."

    PipelineReloadStats:
      type: object
      properties:
        reloads:
          type: object
          properties:
            last_error:
              type: [ string, 'null']
            successes:
              type: integer
              format: int64
            last_success_timestamp:
              type: [ string, 'null']
              format: date-time
            last_failure_timestamp:
              type: [ string, 'null']
              format: date-time
            failures:
              type: integer
              format: int64

    ReloadStats:
      type: object
      properties:
        reloads:
          type: object
          properties:
            successes:
              type: integer
              format: int64
            failures:
              type: integer
              format: int64

    PipelineQueueStats:
      type: object
      properties:
        queue:
          type: object
          oneOf:
            - type: object
              description: "The metrics of persisted queue."
              required:
                - type
              properties:
                type:
                  type: string
                  enum:
                    - persisted
                capacity:
                  type: object
                  properties:
                    max_unread_events:
                      type: integer
                      format: int64
                    page_capacity_in_bytes:
                      type: integer
                      format: int64
                    max_queue_size_in_bytes:
                      type: integer
                      format: int64
                    queue_size_in_bytes:
                      type: integer
                      format: int64
                data:
                  type: object
                  properties:
                    path:
                      type: string
                    free_space_in_bytes:
                      type: integer
                      format: int64
                    storage_type:
                      type: string
                events:
                  type: integer
                  format: int64
                events_count:
                  type: integer
                  format: int64
                queue_size_in_bytes:
                  type: integer
                  format: int64
                max_queue_size_in_bytes:
                  type: integer
                  format: int64
                compression:
                  type: object
                  properties:
                    encode:
                      type: object
                      properties:
                        goal:
                          type: string
                          enum:
                              - speed
                              - balanced
                              - size
                        ratio:
                          type: object
                          description: the ratio of event size in bytes to its representation on disk
                          properties:
                            lifetime:
                              oneOf:
                                - type: number
                                - enum:
                                    - "Infinity"
                                    - "NaN"
                                    - "-Infinity"
                        spend:
                          type: object
                          description: the fraction of wall-clock time spent encoding events
                          properties:
                            lifetime:
                              oneOf:
                                - type: number
                                - enum:
                                    - "Infinity"
                                    - "NaN"
                                    - "-Infinity"
                    decode:
                      type: object
                      properties:
                        ratio:
                          type: object
                          description: the ratio of event representation on disk to event size
                          properties:
                            lifetime:
                              oneOf:
                                - type: number
                                - enum:
                                    - "Infinity"
                                    - "NaN"
                                    - "-Infinity"
                        spend:
                          type: object
                          description: the fraction of wall-clock time spent decoding events
                          properties:
                            lifetime:
                              oneOf:
                                - type: number
                                - enum:
                                    - "Infinity"
                                    - "NaN"
                                    - "-Infinity"
            - type: object
              description: "The metrics of memory queue."
              required:
                - type
              properties:
                type:
                  type: string
                  enum:
                    - memory
                events_count:
                  type: integer
                  format: int64
                queue_size_in_bytes:
                  type: integer
                  format: int64
                max_queue_size_in_bytes:
                  type: integer
                  format: int64
          discriminator:
            propertyName: type
    QueueStats:
      type: object
      properties:
        queue:
          type: object
          properties:
            events_count:
              type: integer
              format: int64

    GeoIPDBLicenseStats:
      type: object
      properties:
        status:
          type: string
          enum: [ "init", "up_to_date", "to_be_expired", "expired" ]
          description: The status of the database license.
        fail_check_in_days:
          type: integer
          description: The number of days since the last successful check.
        last_updated_at:
          type: string
          format: date-time
          description: The last update timestamp.