---
title: "ElasticSearch Input"
description: "read events from an ElasticSearch hosted/on-premises cluster"
source: "https://github.com/log-10x/modules/tree/main/pipelines/run/modules/input/analyzer/elasticsearch/module.yaml"
icon: "simple/elasticsearch"

---
Reads events from Elasticsearch clusters and transforms them into TenXObjects.

Instances of this [module](https://doc.log10x.com/engine/module/) define a connection to a hosted/on-premises
ElasticSearch cluster from which events to retrieve, as well as the querying logic used
such as chronological direction, start values, time ranges, and page size
of each API request sent.

ElasticSearch inputs commonly run within scheduled jobs (e.g., k8s CronJob)
to retrieve a recent sample amount of events (e.g., 200MB in the last 10min) to [transform](https://doc.log10x.com/run/transform/ "Transform log and trace events into well-defined TenXObjects") into TenXObjects as part of the [Dev app](https://doc.log10x.com/apps/dev/) app.

## :material-wrench-outline: Config Files

To configure the ElasticSearch input module, [:material-cog: Edit](https://doc.log10x.com/config/app/#module-config "Learn how to edit app and module configurations") these files:
??? tenx-elastic "Elastic"

    <a id="elastic"></a>
    ### Elastic {.hidden-heading}

    Activate [ElasticSearch inputs](/run/input/analyzer/elasticsearch "Read events from an ElasticSearch hosted/on-premises cluster") to read events from an ElasticSearch hosted/on-premises cluster.

    Below is the default configuration from: [elastic/config.yaml](https://github.dev/log-10x/config/blob/main/pipelines/run/input/analyzer/elastic/config.yaml "elastic/config.yaml"){target="\_blank"} (<span class="tenx-tooltip" data-tooltip="The config file below contains required fields to activate this module, marked with &#10071;">** Required Fields*</span>).  
  
    <div class="edit-options">
        <a class="md-button tenx-edit-online-button" data-tooltip="Edit online on github.dev" href="https://github.dev/log-10x/config/blob/main/pipelines/run/input/analyzer/elastic/config.yaml" target="_blank" rel="noopener noreferrer">
            <span class="twemoji" style="margin-right: 0.3rem;">
                <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
                    <path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"></path>
                </svg>
            </span> Edit Online
        </a>
        <button class="md-button tenx-config.yaml0-edit-button" data-tooltip="Edit configuration file" data-dialog-id="config-yaml0-dialog">
            <span style="margin-right: 0.3rem;">
                <span class="twemoji">
                    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
                        <path d="M20.71,7.04C21.1,6.65 21.1,6 20.71,5.63L18.37,3.29C18,2.9 17.35,2.9 16.96,3.29L15.12,5.12L18.87,8.87M3,17.25V21H6.75L17.81,9.93L14.06,6.18L3,17.25Z"></path>
                    </svg>
                </span>
            </span>Edit Locally
        </button>
    </div>
    
    <dialog id="config-yaml0-dialog" class="md-dialog md-dialog--editor">
        <div class="editor-dialog-wrapper">
            <div class="editor-dialog-header">
                <span class="editor-dialog-title">Edit ElasticSearch input Config Locally</span>
                <div class="editor-header-actions">
                    <button class="editor-toolbar-btn yaml-editor-locations" data-tooltip="Save">
                        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="currentColor" d="M5 20h14v-2H5v2m14-9h-4V3H9v8H5l7 7 7-7Z"></path></svg>
                    </button>
                    <button class="editor-toolbar-btn yaml-editor-reset" data-tooltip="Reset to default">
                        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="currentColor" d="M12.5 8c-2.65 0-5.05 1-6.9 2.6L2 7v9h9l-3.62-3.62c1.39-1.16 3.16-1.88 5.12-1.88 3.54 0 6.55 2.31 7.6 5.5l2.37-.78C21.08 11.03 17.15 8 12.5 8z"></path></svg>
                    </button>
                    <button class="editor-toolbar-btn yaml-editor-copy" data-tooltip="Copy to clipboard">
                        <svg class="icon-copy" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="currentColor" d="M19 21H8V7h11m0-2H8a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h11a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2m-3-4H4a2 2 0 0 0-2 2v14h2V3h12V1Z"></path></svg>
                        <svg class="icon-check" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" style="display:none;"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg>
                    </button>
                    <span class="header-divider"></span>
                    <button class="editor-toolbar-btn yaml-editor-fullscreen" data-tooltip="Fullscreen">
                        <svg class="icon-maximize" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="currentColor" d="M5,5H10V7H7V10H5V5M14,5H19V10H17V7H14V5M17,14H19V19H14V17H17V14M10,17V19H5V14H7V17H10Z"></path></svg>
                        <svg class="icon-minimize" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" style="display:none;"><path fill="currentColor" d="M5,16H8V19H10V14H5V16M14,14V19H16V16H19V14H14M16,5V8H19V10H14V5H16M10,5V10H5V8H8V5H10Z"></path></svg>
                    </button>
                    <span class="header-divider"></span>
                    <button class="editor-toolbar-btn editor-dialog-close" onclick="closeDialog('config-yaml0-dialog')" data-tooltip="Close">
                        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="currentColor" d="M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z"></path></svg>
                    </button>
                </div>
            </div>
            <div class="editor-dialog-content">
                <div class="yaml-editor-container"></div>
            </div>
            <div class="yaml-editor-statusbar">
                <span class="yaml-editor-status"></span>
            </div>
        </div>
        <!-- Locations Popup -->
        <div class="locations-popup" style="display: none;">
            <div class="locations-popup-content">
                <div class="locations-popup-header">
                    <span class="locations-header-label">Download and save to:</span>
                    <button class="locations-popup-close" aria-label="Close">
                        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="16" height="16">
                            <path fill="currentColor" d="M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z"></path>
                        </svg>
                    </button>
                </div>
                <ul class="locations-list">
                    <li>
                        <span class="location-label">Linux / Docker / macOS
                            <span class="help-icon" data-tooltip="Default system location. The engine automatically reads configs from here at startup. Best for production deployments.">
                                <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="12" height="12"><path fill="currentColor" d="M11 18h2v-2h-2v2m1-16A10 10 0 0 0 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2m0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8m0-14a4 4 0 0 0-4 4h2a2 2 0 0 1 2-2 2 2 0 0 1 2 2c0 2-3 1.75-3 5h2c0-2.25 3-2.5 3-5a4 4 0 0 0-4-4Z"/></svg>
                            </span>
                        </span>
                        <div class="location-path-row">
                            <code class="default-path location-path" data-tooltip=""
                                data-copy-osx="/etc/log10x/config/run/input/analyzer/elastic/config.yaml"
                                data-copy-nix="/etc/log10x/config/run/input/analyzer/elastic/config.yaml"
                                data-copy-win="C:\log10x\configs/run/input/analyzer/elastic/config.yaml"></code>
                            <button class="copy-btn" data-tooltip="Copy path">
                                <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="14" height="14">
                                    <path fill="currentColor" d="M19 21H8V7h11m0-2H8a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h11a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2m-3-4H4a2 2 0 0 0-2 2v14h2V3h12V1Z"></path>
                                </svg>
                            </button>
                        </div>
                    </li>
                    <li>
                        <span class="location-label">Custom directory
                            <span class="help-icon" data-tooltip="Set TENX_CONFIG environment variable to point to a custom config directory. Useful when you want configs in a non-standard location.">
                                <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="12" height="12"><path fill="currentColor" d="M11 18h2v-2h-2v2m1-16A10 10 0 0 0 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2m0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8m0-14a4 4 0 0 0-4 4h2a2 2 0 0 1 2-2 2 2 0 0 1 2 2c0 2-3 1.75-3 5h2c0-2.25 3-2.5 3-5a4 4 0 0 0-4-4Z"/></svg>
                            </span>
                        </span>
                        <div class="location-path-row">
                            <code class="location-path" data-tooltip="$TENX_CONFIG/run/input/analyzer/elastic/config.yaml">$TENX_CONFIG/run/input/analyzer/elastic/config.yaml</code>
                            <button class="copy-btn" data-tooltip="Copy path">
                                <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="14" height="14">
                                    <path fill="currentColor" d="M19 21H8V7h11m0-2H8a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h11a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2m-3-4H4a2 2 0 0 0-2 2v14h2V3h12V1Z"></path>
                                </svg>
                            </button>
                        </div>
                    </li>
                    <li>
                        <span class="location-label">Within cloned repo
                            <span class="help-icon" data-tooltip="First run: git clone github.com/log-10x/config. Then save the file to this path within the cloned folder. Use for version control.">
                                <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="12" height="12"><path fill="currentColor" d="M11 18h2v-2h-2v2m1-16A10 10 0 0 0 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2m0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8m0-14a4 4 0 0 0-4 4h2a2 2 0 0 1 2-2 2 2 0 0 1 2 2c0 2-3 1.75-3 5h2c0-2.25 3-2.5 3-5a4 4 0 0 0-4-4Z"/></svg>
                            </span>
                        </span>
                        <div class="location-path-row">
                            <code class="location-path" data-tooltip="./pipelines/run/input/analyzer/elastic/config.yaml">./pipelines/run/input/analyzer/elastic/config.yaml</code>
                            <button class="copy-btn" data-tooltip="Copy path">
                                <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="14" height="14">
                                    <path fill="currentColor" d="M19 21H8V7h11m0-2H8a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h11a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2m-3-4H4a2 2 0 0 0-2 2v14h2V3h12V1Z"></path>
                                </svg>
                            </button>
                        </div>
                    </li>
                </ul>
                <div class="locations-popup-footer">
                    <button class="locations-download-btn" title="Download config file">
                        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="14" height="14">
                            <path fill="currentColor" d="M5 20h14v-2H5v2m14-9h-4V3H9v8H5l7 7 7-7Z"></path>
                        </svg>
                        <span>Download</span>
                    </button>
                </div>
            </div>
        </div>
    </dialog>
    
    <template class="tenx-config-schema" data-encoding="base64">ewogICJ0eXBlIiA6ICJvYmplY3QiLAogICJwcm9wZXJ0aWVzIiA6IHsKICAgICJpbmNsdWRlIiA6IHsKICAgICAgInR5cGUiIDogInN0cmluZyIKICAgIH0sCiAgICAidGVueCIgOiB7CiAgICAgICJ0eXBlIiA6ICJzdHJpbmciCiAgICB9LAogICAgImVsYXN0aWNTZWFyY2giIDogewogICAgICAidHlwZSIgOiAiYXJyYXkiLAogICAgICAiaXRlbXMiIDogewogICAgICAgICJ0eXBlIiA6ICJvYmplY3QiLAogICAgICAgICJhZGRpdGlvbmFsUHJvcGVydGllcyIgOiBmYWxzZSwKICAgICAgICAicHJvcGVydGllcyIgOiB7CiAgICAgICAgICAibmFtZSIgOiB7CiAgICAgICAgICAgICJ0eXBlIiA6IFsKICAgICAgICAgICAgICAic3RyaW5nIiwKICAgICAgICAgICAgICAibnVsbCIKICAgICAgICAgICAgXSwKICAgICAgICAgICAgIm1hcmtkb3duRGVzY3JpcHRpb24iIDogIkxvZ2ljYWwgbmFtZSBmb3IgdGhpcyBlbGFzdGljIGlucHV0XG5cblNldHMgYSBsb2dpY2FsIG5hbWUgKGUuZy4sICdteUVsYXN0aWMnKSBmb3IgdGhpcyBpbnB1dC4gVGhlIFtpbnB1dE5hbWVdKGh0dHBzOi8vZG9jLmxvZzEweC5jb20vYXBpL2pzLyNUZW5YQmFzZU9iamVjdCtpbnB1dE5hbWUpIGZpZWxkIHJldHVybnMgdGhpcyB2YWx1ZSBhdCBydW4gdGltZSB0byBhbGxvdyBmb3IgaWRlbnRpZnlpbmcgYW5kIG9wZXJhdGluZyBvbiBpbnN0YW5jZXMgb3JpZ2luYXRpbmcgZnJvbSB0aGlzIGlucHV0LiIKICAgICAgICAgIH0sCiAgICAgICAgICAiZW5hYmxlZCIgOiB7CiAgICAgICAgICAgICJ0eXBlIiA6IFsKICAgICAgICAgICAgICAiYm9vbGVhbiIsCiAgICAgICAgICAgICAgInN0cmluZyIsCiAgICAgICAgICAgICAgIm51bGwiCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJtYXJrZG93bkRlc2NyaXB0aW9uIiA6ICJTZXRzIHdoZXRoZXIgdGhpcyBpbnB1dCBpcyBlbmFibGVkXG5cblNldHMgd2hldGhlciB0byBvcGVuIHRoZSBpbnB1dCBzdHJlYW0uIFRvIGVuYWJsZSB0aGlzIGlucHV0IG9ubHkgd2hlbiBhICdlbGFzdGljU2VhcmNoSG9zdCcgc3RhcnR1cCBhcmd1bWVudCB2YWx1ZSBpcyB0cnV0aHksIHVzZTogYGBgIHlhbWwgZWxhc3RpY1NlYXJjaEVuYWJsZWQ6ICQ9VGVuWEVudi5nZXQoXCJlbGFzdGljU2VhcmNoSG9zdFwiKSBgYGAgVG8gbGVhcm4gbW9yZSBzZWUgW1RlblhFbnYuZ2V0XShodHRwczovL2RvYy5sb2cxMHguY29tL2FwaS9qcy8jVGVuWEVudi5nZXQpLiAoQWNjZXB0cyBib29sZWFuIG9yIHN0cmluZyB3aXRoICQ9IHByZWZpeCBmb3IgcnVudGltZSBldmFsdWF0aW9uKSAoRGVmYXVsdDogdHJ1ZSkiLAogICAgICAgICAgICAiZGVmYXVsdCIgOiB0cnVlCiAgICAgICAgICB9LAogICAgICAgICAgInByaW50UHJvZ3Jlc3MiIDogewogICAgICAgICAgICAidHlwZSIgOiBbCiAgICAgICAgICAgICAgImJvb2xlYW4iLAogICAgICAgICAgICAgICJzdHJpbmciLAogICAgICAgICAgICAgICJudWxsIgogICAgICAgICAgICBdLAogICAgICAgICAgICAibWFya2Rvd25EZXNjcmlwdGlvbiIgOiAiU2V0cyB3aGV0aGVyIHRoaXMgaW5wdXQgcHJpbnRzIHRocm91Z2hwdXQgc3RhdHMgdG8gdGhlIGNvbnNvbGVcblxuU2V0cyB3aGV0aGVyIHRoaXMgaW5wdXQgcHJpbnRzIHRocm91Z2hwdXQgc3RhdHMgdG8gdGhlIGNvbnNvbGUgZm9yIHRlc3RpbmcgYW4gaW50ZWdyYXRpb24gdG8gYSByZW1vdGUgZW5kcG9pbnQuIChBY2NlcHRzIGJvb2xlYW4gb3Igc3RyaW5nIHdpdGggJD0gcHJlZml4IGZvciBydW50aW1lIGV2YWx1YXRpb24pIChEZWZhdWx0OiBmYWxzZSkiLAogICAgICAgICAgICAiZGVmYXVsdCIgOiBmYWxzZQogICAgICAgICAgfSwKICAgICAgICAgICJ0b3RhbER1cmF0aW9uIiA6IHsKICAgICAgICAgICAgInR5cGUiIDogWwogICAgICAgICAgICAgICJzdHJpbmciLAogICAgICAgICAgICAgICJudWxsIgogICAgICAgICAgICBdLAogICAgICAgICAgICAibWFya2Rvd25EZXNjcmlwdGlvbiIgOiAiU2V0cyBtYXhpbXVtIHRpbWUgdG8gcXVlcnkgdGhlIGJhY2tlbmRcblxuU2V0cyB0aGUgbWF4aW11bSB0aW1lIHRoZSBwaXBlbGluZSB3aWxsIGNvbnRpbnVlIHRvIHF1ZXJ5IHRoZSBiYWNrZW5kIGJlZm9yZSBleGl0aW5nLiBGb3IgZXhhbXBsZSwgc2V0dGluZyB0aGlzIHRvICcxbWluJyBtZWFucyB0aGF0IHF1ZXJpZXMgdG8gdGhlIGJhY2tlbmQgd2lsbCBzdG9wIGFmdGVyIDEgbWludXRlIGhhcyBwYXNzZWQuIChEZWZhdWx0OiA1bWluKSIsCiAgICAgICAgICAgICJkZWZhdWx0IiA6ICI1bWluIgogICAgICAgICAgfSwKICAgICAgICAgICJleHRyYWN0b3JzIiA6IHsKICAgICAgICAgICAgInR5cGUiIDogWwogICAgICAgICAgICAgICJhcnJheSIsCiAgICAgICAgICAgICAgInN0cmluZyIsCiAgICAgICAgICAgICAgIm51bGwiCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJtYXJrZG93bkRlc2NyaXB0aW9uIiA6ICJMaXN0IG9mIGV4dHJhY3RvcnMgdG8gYXBwbHkgb24gdGhlIGV2ZW50cyByZXR1cm5pbmcgZnJvbSB0aGUgcXVlcnlcblxuU2V0cyBsaXN0IG9mIGV4dHJhY3RvciBuYW1lcyB3aGljaCB3aWxsIHdvcmsgb24gdGhlIGV2ZW50cyByZXR1cm5pbmcgZnJvbSB0aGUgcXVlcnkuIEZvciBtb3JlIGluZm8gb24gZXh0cmFjdG9ycywgc2VlOiBodHRwczovL2RvYy5sb2cxMHguY29tL3J1bi9pbnB1dC9leHRyYWN0IiwKICAgICAgICAgICAgIml0ZW1zIiA6IHsKICAgICAgICAgICAgICAidHlwZSIgOiAic3RyaW5nIgogICAgICAgICAgICB9CiAgICAgICAgICB9LAogICAgICAgICAgImhvc3QiIDogewogICAgICAgICAgICAidHlwZSIgOiBbCiAgICAgICAgICAgICAgInN0cmluZyIsCiAgICAgICAgICAgICAgIm51bGwiCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJtYXJrZG93bkRlc2NyaXB0aW9uIiA6ICJFbGFzdGljIGhvc3QgYWRkcmVzc1xuXG5TZXQgdGhlIGVsYXN0aWMgaG9zdCBhZGRyZXNzIHRvIGNvbm5lY3QgdG8uIEV4YW1wbGVzOiBjb3JhbG9naXgtZXNhcGkuY29yYWxvZ2l4LmNvbSBhcGkubG9nei5pbyA8ZGVwbG95bWVudC1pZD4udXMtY2VudHJhbDEuZ2NwLmNsb3VkLmVzLmlvIgogICAgICAgICAgfSwKICAgICAgICAgICJwb3J0IiA6IHsKICAgICAgICAgICAgInR5cGUiIDogWwogICAgICAgICAgICAgICJudW1iZXIiLAogICAgICAgICAgICAgICJzdHJpbmciLAogICAgICAgICAgICAgICJudWxsIgogICAgICAgICAgICBdLAogICAgICAgICAgICAibWFya2Rvd25EZXNjcmlwdGlvbiIgOiAiRWxhc3RpYyBzZXJ2ZXIgcG9ydFxuXG5TZXRzIHRoZSBlbGFzdGljIHNlcnZlciBwb3J0IHRvIGNvbm5lY3QgdG8gKGUuZy4sICc5NDQzJykgVGhlIHBvcnQgdmFsdWUgaXMgbm90IG5lZWRlZCBpZiBbZWxhc3RpY1NlYXJjaEhvc3RdKGh0dHBzOi8vZG9jLmxvZzEweC5jb20vcnVuL2lucHV0L2FuYWx5emVyL2VsYXN0aWNzZWFyY2gvI2VsYXN0aWNzZWFyY2hob3N0KSB2YWx1ZSBlbmNhcHN1bGF0ZXMgdGhlIHBvcnQgKEFjY2VwdHMgbnVtYmVyIG9yIHN0cmluZyB3aXRoICQ9IHByZWZpeCBmb3IgcnVudGltZSBldmFsdWF0aW9uKSIKICAgICAgICAgIH0sCiAgICAgICAgICAicHJvdG9jb2wiIDogewogICAgICAgICAgICAidHlwZSIgOiBbCiAgICAgICAgICAgICAgInN0cmluZyIsCiAgICAgICAgICAgICAgIm51bGwiCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJtYXJrZG93bkRlc2NyaXB0aW9uIiA6ICJEZWZpbmVzIHRoZSBwcm90b2NvbCB0byBjb25uZWN0IHRvIEVsYXN0aWNTZWFyY2hcblxuU2V0cyB0aGUgcHJvdG9jb2wgdG8gY29ubmVjdCB0byBlbGFzdGljIHdpdGggKGUuZy4sIGBodHRwc2ApLiAoRGVmYXVsdDogaHR0cHMpIiwKICAgICAgICAgICAgImRlZmF1bHQiIDogImh0dHBzIgogICAgICAgICAgfSwKICAgICAgICAgICJ0b2tlbiIgOiB7CiAgICAgICAgICAgICJ0eXBlIiA6IFsKICAgICAgICAgICAgICAic3RyaW5nIiwKICAgICAgICAgICAgICAibnVsbCIKICAgICAgICAgICAgXSwKICAgICAgICAgICAgIm1hcmtkb3duRGVzY3JpcHRpb24iIDogIkVsYXN0aWMgYXV0aGVudGljYXRpb24gdG9rZW5cblxuU2V0cyB0aGUgQVBJIHRva2VuIHVzZWQgdG8gYXV0aGVudGljYXRlIGFnYWluc3QgdGhlIHRhcmdldCBlbGFzdGljIGNsdXN0ZXIuIFRvIGxlYXJuIG1vcmUgc2VlOiBbYXBpIHRva2Vuc10oaHR0cHM6Ly93d3cuZWxhc3RpYy5jby9ndWlkZS9lbi9lbGFzdGljc2VhcmNoL3JlZmVyZW5jZS9jdXJyZW50L3NlY3VyaXR5LWFwaS1nZXQtdG9rZW4uaHRtbCkiCiAgICAgICAgICB9LAogICAgICAgICAgImF1dGhvcml6YXRpb25LZXlOYW1lIiA6IHsKICAgICAgICAgICAgInR5cGUiIDogWwogICAgICAgICAgICAgICJzdHJpbmciLAogICAgICAgICAgICAgICJudWxsIgogICAgICAgICAgICBdLAogICAgICAgICAgICAibWFya2Rvd25EZXNjcmlwdGlvbiIgOiAiUHJlZml4IGZvciB0aGUgZWxhc3RpYyBhdXRoZW50aWNhdGlvbiB0b2tlblxuXG5TZXRzIHRoZSBwcmVmaXggZm9yIHRoZSBwcm92aWRlZCBbZWxhc3RpY1NlYXJjaFRva2VuXShodHRwczovL2RvYy5sb2cxMHguY29tL3J1bi9pbnB1dC9hbmFseXplci9lbGFzdGljc2VhcmNoLyNlbGFzdGljc2VhcmNodG9rZW4pIHdoZW4gdXNpbmcgaXQgaW4gYW4gJ0F1dGhvcml6YXRpb24nIGhlYWRlci4gY29tbW9ubHkgdXNlZCB2YWx1ZXMgYnkgZGlmZmVyZW50IGVsYXN0aWMgdmVuZG9ycyBhcmUgJ0FwaUtleScgYW5kICdCZWFyZXInIChEZWZhdWx0OiBBcGlLZXkpIiwKICAgICAgICAgICAgImRlZmF1bHQiIDogIkFwaUtleSIKICAgICAgICAgIH0sCiAgICAgICAgICAicXVlcnkiIDogewogICAgICAgICAgICAidHlwZSIgOiBbCiAgICAgICAgICAgICAgInN0cmluZyIsCiAgICAgICAgICAgICAgIm51bGwiCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJtYXJrZG93bkRlc2NyaXB0aW9uIiA6ICJRdWVyeSB0byBwYXNzIHRvIHRoZSBlbGFzdGljIHNlcnZlclxuXG5TZXRzIHRoZSBlbGFzdGljIHF1ZXJ5IHRvIHJlcXVlc3QgcGFnaW5hdGVkIGRvY3VtZW50cyBmcm9tIHRoZSAgJy9fc2VhcmNoJyBSRVNUIGVuZHBvaW50LiBUaGUgZGVmYXVsdCBxdWVyeSAoZGVmaW5lZCBpbiAnZWxhc3RpY3NlYXJjaC9xdWVyeS50eHQnKSByZXRyaWV2ZXMgcGFnaW5hdGVkIHZhbHVlcyBzb3J0ZWQgaW4gZGVzYyBvcmRlciBieSBAdGltZXN0YW1wLCBzdGFydGluZyBmcm9tIHRoZSB2YWx1ZSBvZiAnbm93KCknLiIKICAgICAgICAgIH0sCiAgICAgICAgICAibWVzc2FnZUZpZWxkIiA6IHsKICAgICAgICAgICAgInR5cGUiIDogWwogICAgICAgICAgICAgICJzdHJpbmciLAogICAgICAgICAgICAgICJudWxsIgogICAgICAgICAgICBdLAogICAgICAgICAgICAibWFya2Rvd25EZXNjcmlwdGlvbiIgOiAiTmFtZSBvZiB0aGUgZmllbGQgdXNlZCB0byBleHRyYWN0IHRoZSBsb2cgbWVzc2FnZSBmcm9tIHJldHJpZXZlZCBkb2N1bWVudHNcblxuU2V0cyB0aGUgbmFtZSBvZiB0aGUgZmllbGQgdXNlZCB0byBleHRyYWN0IHRoZSBsb2cgbWVzc2FnZSBmcm9tIHJldHJpZXZlZCBkb2N1bWVudHMgKERlZmF1bHQ6IGxvZykiLAogICAgICAgICAgICAiZGVmYXVsdCIgOiAibG9nIgogICAgICAgICAgfSwKICAgICAgICAgICJ0aW1lc3RhbXBGaWVsZCIgOiB7CiAgICAgICAgICAgICJ0eXBlIiA6IFsKICAgICAgICAgICAgICAic3RyaW5nIiwKICAgICAgICAgICAgICAibnVsbCIKICAgICAgICAgICAgXSwKICAgICAgICAgICAgIm1hcmtkb3duRGVzY3JpcHRpb24iIDogIk5hbWUgb2YgdGhlIGZpZWxkIHVzZWQgdG8gc29ydCByZXRyaWV2ZWQgZG9jdW1lbnRzIGJ5XG5cblNldHMgdGhlIG5hbWUgb2YgdGhlIGZpZWxkIHVzZWQgdG8gc29ydCByZXRyaWV2ZWQgZG9jdW1lbnRzIGJ5IChEZWZhdWx0OiBAdGltZXN0YW1wKSIsCiAgICAgICAgICAgICJkZWZhdWx0IiA6ICJAdGltZXN0YW1wIgogICAgICAgICAgfSwKICAgICAgICAgICJzdGFydFRpbWUiIDogewogICAgICAgICAgICAidHlwZSIgOiBbCiAgICAgICAgICAgICAgInN0cmluZyIsCiAgICAgICAgICAgICAgIm51bGwiCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJtYXJrZG93bkRlc2NyaXB0aW9uIiA6ICJUaGUgc3RhcnQgb2YgdGhlIHRpbWUgcmFuZ2UsIGV4cHJlc3NlZCBhcyBhIHJlbGF0aXZlIHN0cmluZyAoaS5lLiwgXCJub3ctN2RcIikgb3IgdGhlIG51bWJlciBvZiBtaWxsaXNlY29uZHMgYWZ0ZXIgSmFuIDEsIDE5NzAgMDA6MDA6MDAgVVRDLlxuXG5TZXRzIHRoZSBzdGFydCBvZiB0aGUgdGltZSByYW5nZSwgZXhwcmVzc2VkIGFzIGEgcmVsYXRpdmUgc3RyaW5nIChpLmUuLCBcIm5vdy03ZFwiKSBvciB0aGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyBhZnRlciBKYW4gMSwgMTk3MCAwMDowMDowMCBVVEMuIFRoZSBxdWVyeSBpbmNsdWRlcyBldmVudHMgd2l0aCBhIHRpbWVzdGFtcCBlcXVhbCBvciBsYXRlciB0byB0aGlzIHZhbHVlLiIKICAgICAgICAgIH0sCiAgICAgICAgICAiZW5kVGltZSIgOiB7CiAgICAgICAgICAgICJ0eXBlIiA6IFsKICAgICAgICAgICAgICAic3RyaW5nIiwKICAgICAgICAgICAgICAibnVsbCIKICAgICAgICAgICAgXSwKICAgICAgICAgICAgIm1hcmtkb3duRGVzY3JpcHRpb24iIDogIlRoZSBlbmQgb2YgdGhlIHRpbWUgcmFuZ2UsIGV4cHJlc3NlZCBhcyBhIHJlbGF0aXZlIHN0cmluZyAoaS5lLiwgXCJub3ctN2RcIikgb3IgdGhlIG51bWJlciBvZiBtaWxsaXNlY29uZHMgYWZ0ZXIgSmFuIDEsIDE5NzAgMDA6MDA6MDAgVVRDXG5cblNldHMgdGhlIGVuZCBvZiB0aGUgdGltZSByYW5nZSwgZXhwcmVzc2VkIGFzIGEgcmVsYXRpdmUgc3RyaW5nIChpLmUuLCBcIm5vdy03ZFwiKSBvciB0aGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyBhZnRlciBKYW4gMSwgMTk3MCAwMDowMDowMCBVVEMuIFRoZSBxdWVyeSBleGNsdWRlcyBldmVudHMgd2l0aCBhIHRpbWVzdGFtcCBsYXRlciB0aGFuIHRoaXMgdmFsdWUuIgogICAgICAgICAgfSwKICAgICAgICAgICJ0YXJnZXRzIiA6IHsKICAgICAgICAgICAgInR5cGUiIDogWwogICAgICAgICAgICAgICJhcnJheSIsCiAgICAgICAgICAgICAgInN0cmluZyIsCiAgICAgICAgICAgICAgIm51bGwiCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJtYXJrZG93bkRlc2NyaXB0aW9uIiA6ICJMaXN0IG9mIGRhdGEgc3RyZWFtcywgaW5kaWNlcywgYW5kIGFsaWFzZXMgdG8gc2VhcmNoXG5cblNldHMgbGlzdCBvZiBkYXRhIHN0cmVhbXMsIGluZGljZXMsIGFuZCBhbGlhc2VzIHRvIHNlYXJjaC4gVG8gc2VhcmNoIGFsbCBkYXRhIHN0cmVhbXMgYW5kIGluZGljZXMsIG9taXQgdGhpcyBwYXJhbWV0ZXIgb3IgdXNlICcqJyBvciAnX2FsbCcuIiwKICAgICAgICAgICAgIml0ZW1zIiA6IHsKICAgICAgICAgICAgICAidHlwZSIgOiAic3RyaW5nIgogICAgICAgICAgICB9CiAgICAgICAgICB9LAogICAgICAgICAgImVuZHBvaW50IiA6IHsKICAgICAgICAgICAgInR5cGUiIDogWwogICAgICAgICAgICAgICJzdHJpbmciLAogICAgICAgICAgICAgICJudWxsIgogICAgICAgICAgICBdLAogICAgICAgICAgICAibWFya2Rvd25EZXNjcmlwdGlvbiIgOiAiTmFtZSBvZiBzZWFyY2ggUkVTVCBlbmRwb2ludFxuXG5TZXRzIHRoZSBuYW1lIG9mIHRoZSBzZWFyY2ggUkVTVCBlbmRwb2ludC4gKERlZmF1bHQ6IF9zZWFyY2gpIiwKICAgICAgICAgICAgImRlZmF1bHQiIDogIl9zZWFyY2giCiAgICAgICAgICB9LAogICAgICAgICAgInF1ZXJ5U2l6ZSIgOiB7CiAgICAgICAgICAgICJ0eXBlIiA6IFsKICAgICAgICAgICAgICAibnVtYmVyIiwKICAgICAgICAgICAgICAic3RyaW5nIiwKICAgICAgICAgICAgICAibnVsbCIKICAgICAgICAgICAgXSwKICAgICAgICAgICAgIm1hcmtkb3duRGVzY3JpcHRpb24iIDogIk51bWJlciBvZiBkb2N1bWVudHMgdG8gcmVhZCBwZXIgYmF0Y2ggZnJvbSB0aGUgZWxhc3RpYyBzZXJ2ZXJcblxuU2V0cyB0aGUgbnVtYmVyIG9mIGRvY3VtZW50cyB0byByZXRyaWV2ZSB3aXRoIGVhY2ggcGFnZSBvZiByZXN1bHRzLiAoQWNjZXB0cyBudW1iZXIgb3Igc3RyaW5nIHdpdGggJD0gcHJlZml4IGZvciBydW50aW1lIGV2YWx1YXRpb24pIChEZWZhdWx0OiA1MDApIiwKICAgICAgICAgICAgImRlZmF1bHQiIDogNTAwCiAgICAgICAgICB9LAogICAgICAgICAgInJldHJ5VGltZW91dCIgOiB7CiAgICAgICAgICAgICJ0eXBlIiA6IFsKICAgICAgICAgICAgICAibnVtYmVyIiwKICAgICAgICAgICAgICAic3RyaW5nIiwKICAgICAgICAgICAgICAibnVsbCIKICAgICAgICAgICAgXSwKICAgICAgICAgICAgIm1hcmtkb3duRGVzY3JpcHRpb24iIDogIkEgdGltZW91dCBwZXJpb2QgKGluIG1pbGxpc2Vjb25kcykgdG8gd2FpdCBmb3IgcXVlcnlpbmcgb2YgbmV3IGRhdGFcblxuRGV0ZXJtaW5lcyBob3cgbG9uZyB0byB3YWl0IHRvIGludm9rZSB0aGUgc2VhcmNoIGVuZHBvaW50IEFQSSBhZ2FpbiB0byBxdWVyeSBmb3IgbmV3IGRhdGEuIFNlZSBbZWxhc3RpYy1pbnB1dC5qc10oaHR0cHM6Ly9naXRodWIuY29tL2xvZy0xMHgvbW9kdWxlcy9ibG9iL21haW4vcGlwZWxpbmVzL3J1bi9tb2R1bGVzL2lucHV0L2FuYWx5emVyL2VsYXN0aWNzZWFyY2gvZWxhc3RpYy1pbnB1dC5qcykuIChBY2NlcHRzIG51bWJlciBvciBzdHJpbmcgd2l0aCAkPSBwcmVmaXggZm9yIHJ1bnRpbWUgZXZhbHVhdGlvbikgKERlZmF1bHQ6IDEwMDAwKSIsCiAgICAgICAgICAgICJkZWZhdWx0IiA6IDEwMDAwCiAgICAgICAgICB9LAogICAgICAgICAgInRvdGFsQnl0ZXNMaW1pdCIgOiB7CiAgICAgICAgICAgICJ0eXBlIiA6IFsKICAgICAgICAgICAgICAibnVtYmVyIiwKICAgICAgICAgICAgICAic3RyaW5nIiwKICAgICAgICAgICAgICAibnVsbCIKICAgICAgICAgICAgXSwKICAgICAgICAgICAgIm1hcmtkb3duRGVzY3JpcHRpb24iIDogIk1heGltdW0gdG90YWwgYnl0ZXMgdG8gcmVhZCBmcm9tIGlucHV0IGJlZm9yZSBjbG9zaW5nXG5cblNldHMgdGhlIG1heGltdW0gbnVtYmVyIG9mIGJ5dGVzIGEgdGFyZ2V0IHBpcGVsaW5lIGlucHV0IHdpbGwgcmVhZCBpbnRvIHRoZSBwaXBlbGluZS4gVGhpcyB2YWx1ZSBsaW1pdHMgdGhlIHZvbHVtZSBvZiBldmVudHMgdG8gcmVhZCBmcm9tIGEgbG9jYWwvcmVtb3RlIHNvdXJjZSAoZS5nLiwgbG9nIGFuYWx5emVyKS4gICBGb3IgZXhhbXBsZTogYGBgIHlhbWwgZWxhc3RpY1NlYXJjaFRvdGFsQnl0ZXNMaW1pdDogJD1wYXJzZUJ5dGVzKFwiMUdCXCIpIGBgYCAoQWNjZXB0cyBudW1iZXIgb3Igc3RyaW5nIHdpdGggJD0gcHJlZml4IGZvciBydW50aW1lIGV2YWx1YXRpb24pIgogICAgICAgICAgfSwKICAgICAgICAgICJ0b3RhbEV2ZW50c0xpbWl0IiA6IHsKICAgICAgICAgICAgInR5cGUiIDogWwogICAgICAgICAgICAgICJudW1iZXIiLAogICAgICAgICAgICAgICJzdHJpbmciLAogICAgICAgICAgICAgICJudWxsIgogICAgICAgICAgICBdLAogICAgICAgICAgICAibWFya2Rvd25EZXNjcmlwdGlvbiIgOiAiTWF4aW11bSB0b3RhbCBldmVudHMgdG8gcmVhZCBmcm9tIGlucHV0IGJlZm9yZSBjbG9zaW5nXG5cblNldHMgdGhlIG1heGltdW0gbnVtYmVyIG9mIGV2ZW50cyBhIHRhcmdldCBwaXBlbGluZSBpbnB1dCB3aWxsIHJlYWQgaW50byB0aGUgcGlwZWxpbmUuIFRoaXMgdmFsdWUgbGltaXRzIHRoZSB2b2x1bWUgb2YgZXZlbnRzIHRvIHJlYWQgZnJvbSBhIGxvY2FsL3JlbW90ZSBzb3VyY2UgKGUuZy4sIGxvZyBhbmFseXplcikuIChBY2NlcHRzIG51bWJlciBvciBzdHJpbmcgd2l0aCAkPSBwcmVmaXggZm9yIHJ1bnRpbWUgZXZhbHVhdGlvbikgKERlZmF1bHQ6IDEwMDAwKSIsCiAgICAgICAgICAgICJkZWZhdWx0IiA6IDEwMDAwCiAgICAgICAgICB9LAogICAgICAgICAgInF1ZXJ5SW50ZXJ2YWwiIDogewogICAgICAgICAgICAidHlwZSIgOiBbCiAgICAgICAgICAgICAgIm51bWJlciIsCiAgICAgICAgICAgICAgInN0cmluZyIsCiAgICAgICAgICAgICAgIm51bGwiCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJtYXJrZG93bkRlc2NyaXB0aW9uIiA6ICJRdWVyeSBpbnRlcnZhbCAoaW4gbWlsbGlzZWNvbmRzKSBmb3IgY2hlY2tpbmcgbmV3IGRhdGEgZnJvbSByZW1vdGUgc291cmNlXG5cblNldHMgdGhlIGludGVydmFsIGJldHdlZW4gcXVlcmllcyB0byB0aGUgcmVtb3RlIEVsYXN0aWNzZWFyY2ggQVBJLiBUaGlzIGNvbnRyb2xzIGhvdyBmcmVxdWVudGx5IHRoZSBpbnB1dCBwb2xscyBmb3IgbmV3IGxvZyBkYXRhLiAgRm9yIGV4YW1wbGU6IGBgYCB5YW1sIGVsYXN0aWNTZWFyY2hRdWVyeUludGVydmFsOiAkPXBhcnNlRHVyYXRpb24oXCI1c1wiKSBgYGAgKEFjY2VwdHMgbnVtYmVyIG9yIHN0cmluZyB3aXRoICQ9IHByZWZpeCBmb3IgcnVudGltZSBldmFsdWF0aW9uKSAoRGVmYXVsdDogMjAwMCkiLAogICAgICAgICAgICAiZGVmYXVsdCIgOiAyMDAwCiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICAicmVxdWlyZWQiIDogWwogICAgICAgICAgImhvc3QiLAogICAgICAgICAgInRva2VuIgogICAgICAgIF0KICAgICAgfQogICAgfQogIH0sCiAgImFkZGl0aW9uYWxQcm9wZXJ0aWVzIiA6IHRydWUKfQ==</template>

    ```yaml
    # 🔟❎ 'run' Elastic input configuration
    
    # Configure an Elastic event input
    # To learn more see https://doc.log10x.com/run/input/analyzer/elasticsearch/
    
    # Set the 10x pipeline to 'run'
    tenx: run
    
    # =============================== Dependencies ================================
    
    include: run/modules/input/analyzer/elasticsearch
    
    # =============================== Elastic Options ==============================
    
    # Multiple Elastic inputs can be defined below:
    elasticSearch:
    
        # 'name' sets a unique logical name across all pipeline inputs
      - name: ElasticSearch
    
        # --------------------------- Connection Options --------------------------
    
        # 'host' and 'port' set the ElasticSearch API endpoint to connect to
        #  For hosted Elastic (e.g. my-project-ec5189.es.us-central1.gcp.elastic.cloud).
        #  See https://cloud.elastic.co/deployments and https://i.stack.imgur.com/jXjLJ.png
        host: null # (❗ REQUIRED)
        port: "" # (not mandatory if the host already encapsulates it)
    
        # 'protocol' sets the connection protocol ('https' or 'http' for local testing)
        protocol: https
    
        # 'token' used to authenticate with. To learn more see:
        # https://www.elastic.co/guide/en/cloud-enterprise/current/ece-restful-api-authentication.html
        token: $=TenXEnv.get("ELASTIC_TOKEN") # (❗ REQUIRED)
    
        # ----------------------------- Query Options -----------------------------
    
        # 'targets' lists data streams, indices, and aliases to search.
        #  To search all data streams and indices, use '*' or '_all'.
        targets:
          - _all
    
        # 'startTime' and 'endTime' set the time frame of the query.
        startTime: now-1h
        endTime: now
    
        # --------------------------- Backpressure Options -----------------------
    
      # 'queryInterval' sets the interval between queries to the remote API
        queryInterval: $=parseDuration("2s")
    
        # 'totalDuration' sets the max duration to try reading from the the remote input
        totalDuration: $=parseDuration("5min")
    
        # 'totalBytesLimit' sets the max total bytes to read from the remote input
        totalBytesLimit: $=parseBytes("50MB")
    
        # 'totalEventsLimit' sets the max number of events to read the remote input
        totalEventsLimit: 10000
    
        # --------------------------- Ancillary Options ---------------------------
    
        # 'printProgress' controls whether to print a progress gage to the console
        #  This option helps debug and test the input
        printProgress: $=!TenXEnv.get("quiet")
    
        # --------------------------- Advanced Options ---------------------------
    
        # 'querySize' sets the number of documents retrieved with each results page.
        querySize: 500
    
        # 'query' sets the elastic query to request paginated documents from the  '/_search' REST endpoint.
        #  The default query (defined in 'input/analyzer/elasticsearch/query.txt')
        #  retrieves paginated values sorted in desc order by @timestamp
        query: null
    ```

??? tenx-logzio "Logz.io"

    <a id="logzio"></a>
    ### Logz.io {.hidden-heading}



    Below is the default configuration from: [logzio/config.yaml](https://github.dev/log-10x/config/blob/main/pipelines/run/input/analyzer/logzio/config.yaml "logzio/config.yaml"){target="\_blank"} (<span class="tenx-tooltip" data-tooltip="The config file below contains required fields to activate this module, marked with &#10071;">** Required Fields*</span>).  
  
    <div class="edit-options">
        <a class="md-button tenx-edit-online-button" data-tooltip="Edit online on github.dev" href="https://github.dev/log-10x/config/blob/main/pipelines/run/input/analyzer/logzio/config.yaml" target="_blank" rel="noopener noreferrer">
            <span class="twemoji" style="margin-right: 0.3rem;">
                <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
                    <path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"></path>
                </svg>
            </span> Edit Online
        </a>
        <button class="md-button tenx-config.yaml1-edit-button" data-tooltip="Edit configuration file" data-dialog-id="config-yaml1-dialog">
            <span style="margin-right: 0.3rem;">
                <span class="twemoji">
                    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
                        <path d="M20.71,7.04C21.1,6.65 21.1,6 20.71,5.63L18.37,3.29C18,2.9 17.35,2.9 16.96,3.29L15.12,5.12L18.87,8.87M3,17.25V21H6.75L17.81,9.93L14.06,6.18L3,17.25Z"></path>
                    </svg>
                </span>
            </span>Edit Locally
        </button>
    </div>
    
    <dialog id="config-yaml1-dialog" class="md-dialog md-dialog--editor">
        <div class="editor-dialog-wrapper">
            <div class="editor-dialog-header">
                <span class="editor-dialog-title">Edit config.yaml Locally</span>
                <div class="editor-header-actions">
                    <button class="editor-toolbar-btn yaml-editor-locations" data-tooltip="Save">
                        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="currentColor" d="M5 20h14v-2H5v2m14-9h-4V3H9v8H5l7 7 7-7Z"></path></svg>
                    </button>
                    <button class="editor-toolbar-btn yaml-editor-reset" data-tooltip="Reset to default">
                        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="currentColor" d="M12.5 8c-2.65 0-5.05 1-6.9 2.6L2 7v9h9l-3.62-3.62c1.39-1.16 3.16-1.88 5.12-1.88 3.54 0 6.55 2.31 7.6 5.5l2.37-.78C21.08 11.03 17.15 8 12.5 8z"></path></svg>
                    </button>
                    <button class="editor-toolbar-btn yaml-editor-copy" data-tooltip="Copy to clipboard">
                        <svg class="icon-copy" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="currentColor" d="M19 21H8V7h11m0-2H8a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h11a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2m-3-4H4a2 2 0 0 0-2 2v14h2V3h12V1Z"></path></svg>
                        <svg class="icon-check" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" style="display:none;"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg>
                    </button>
                    <span class="header-divider"></span>
                    <button class="editor-toolbar-btn yaml-editor-fullscreen" data-tooltip="Fullscreen">
                        <svg class="icon-maximize" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="currentColor" d="M5,5H10V7H7V10H5V5M14,5H19V10H17V7H14V5M17,14H19V19H14V17H17V14M10,17V19H5V14H7V17H10Z"></path></svg>
                        <svg class="icon-minimize" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" style="display:none;"><path fill="currentColor" d="M5,16H8V19H10V14H5V16M14,14V19H16V16H19V14H14M16,5V8H19V10H14V5H16M10,5V10H5V8H8V5H10Z"></path></svg>
                    </button>
                    <span class="header-divider"></span>
                    <button class="editor-toolbar-btn editor-dialog-close" onclick="closeDialog('config-yaml1-dialog')" data-tooltip="Close">
                        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="currentColor" d="M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z"></path></svg>
                    </button>
                </div>
            </div>
            <div class="editor-dialog-content">
                <div class="yaml-editor-container"></div>
            </div>
            <div class="yaml-editor-statusbar">
                <span class="yaml-editor-status"></span>
            </div>
        </div>
        <!-- Locations Popup -->
        <div class="locations-popup" style="display: none;">
            <div class="locations-popup-content">
                <div class="locations-popup-header">
                    <span class="locations-header-label">Download and save to:</span>
                    <button class="locations-popup-close" aria-label="Close">
                        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="16" height="16">
                            <path fill="currentColor" d="M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z"></path>
                        </svg>
                    </button>
                </div>
                <ul class="locations-list">
                    <li>
                        <span class="location-label">Linux / Docker / macOS
                            <span class="help-icon" data-tooltip="Default system location. The engine automatically reads configs from here at startup. Best for production deployments.">
                                <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="12" height="12"><path fill="currentColor" d="M11 18h2v-2h-2v2m1-16A10 10 0 0 0 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2m0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8m0-14a4 4 0 0 0-4 4h2a2 2 0 0 1 2-2 2 2 0 0 1 2 2c0 2-3 1.75-3 5h2c0-2.25 3-2.5 3-5a4 4 0 0 0-4-4Z"/></svg>
                            </span>
                        </span>
                        <div class="location-path-row">
                            <code class="default-path location-path" data-tooltip=""
                                data-copy-osx="/etc/log10x/config/run/input/analyzer/logzio/config.yaml"
                                data-copy-nix="/etc/log10x/config/run/input/analyzer/logzio/config.yaml"
                                data-copy-win="C:\log10x\configs/run/input/analyzer/logzio/config.yaml"></code>
                            <button class="copy-btn" data-tooltip="Copy path">
                                <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="14" height="14">
                                    <path fill="currentColor" d="M19 21H8V7h11m0-2H8a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h11a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2m-3-4H4a2 2 0 0 0-2 2v14h2V3h12V1Z"></path>
                                </svg>
                            </button>
                        </div>
                    </li>
                    <li>
                        <span class="location-label">Custom directory
                            <span class="help-icon" data-tooltip="Set TENX_CONFIG environment variable to point to a custom config directory. Useful when you want configs in a non-standard location.">
                                <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="12" height="12"><path fill="currentColor" d="M11 18h2v-2h-2v2m1-16A10 10 0 0 0 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2m0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8m0-14a4 4 0 0 0-4 4h2a2 2 0 0 1 2-2 2 2 0 0 1 2 2c0 2-3 1.75-3 5h2c0-2.25 3-2.5 3-5a4 4 0 0 0-4-4Z"/></svg>
                            </span>
                        </span>
                        <div class="location-path-row">
                            <code class="location-path" data-tooltip="$TENX_CONFIG/run/input/analyzer/logzio/config.yaml">$TENX_CONFIG/run/input/analyzer/logzio/config.yaml</code>
                            <button class="copy-btn" data-tooltip="Copy path">
                                <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="14" height="14">
                                    <path fill="currentColor" d="M19 21H8V7h11m0-2H8a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h11a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2m-3-4H4a2 2 0 0 0-2 2v14h2V3h12V1Z"></path>
                                </svg>
                            </button>
                        </div>
                    </li>
                    <li>
                        <span class="location-label">Within cloned repo
                            <span class="help-icon" data-tooltip="First run: git clone github.com/log-10x/config. Then save the file to this path within the cloned folder. Use for version control.">
                                <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="12" height="12"><path fill="currentColor" d="M11 18h2v-2h-2v2m1-16A10 10 0 0 0 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2m0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8m0-14a4 4 0 0 0-4 4h2a2 2 0 0 1 2-2 2 2 0 0 1 2 2c0 2-3 1.75-3 5h2c0-2.25 3-2.5 3-5a4 4 0 0 0-4-4Z"/></svg>
                            </span>
                        </span>
                        <div class="location-path-row">
                            <code class="location-path" data-tooltip="./pipelines/run/input/analyzer/logzio/config.yaml">./pipelines/run/input/analyzer/logzio/config.yaml</code>
                            <button class="copy-btn" data-tooltip="Copy path">
                                <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="14" height="14">
                                    <path fill="currentColor" d="M19 21H8V7h11m0-2H8a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h11a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2m-3-4H4a2 2 0 0 0-2 2v14h2V3h12V1Z"></path>
                                </svg>
                            </button>
                        </div>
                    </li>
                </ul>
                <div class="locations-popup-footer">
                    <button class="locations-download-btn" title="Download config file">
                        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="14" height="14">
                            <path fill="currentColor" d="M5 20h14v-2H5v2m14-9h-4V3H9v8H5l7 7 7-7Z"></path>
                        </svg>
                        <span>Download</span>
                    </button>
                </div>
            </div>
        </div>
    </dialog>
    
    <template class="tenx-config-schema" data-encoding="base64">ewogICJ0eXBlIiA6ICJvYmplY3QiLAogICJwcm9wZXJ0aWVzIiA6IHsKICAgICJpbmNsdWRlIiA6IHsKICAgICAgInR5cGUiIDogInN0cmluZyIKICAgIH0sCiAgICAidGVueCIgOiB7CiAgICAgICJ0eXBlIiA6ICJzdHJpbmciCiAgICB9LAogICAgImVsYXN0aWNTZWFyY2giIDogewogICAgICAidHlwZSIgOiAiYXJyYXkiLAogICAgICAiaXRlbXMiIDogewogICAgICAgICJ0eXBlIiA6ICJvYmplY3QiLAogICAgICAgICJhZGRpdGlvbmFsUHJvcGVydGllcyIgOiBmYWxzZSwKICAgICAgICAicHJvcGVydGllcyIgOiB7CiAgICAgICAgICAibmFtZSIgOiB7CiAgICAgICAgICAgICJ0eXBlIiA6IFsKICAgICAgICAgICAgICAic3RyaW5nIiwKICAgICAgICAgICAgICAibnVsbCIKICAgICAgICAgICAgXSwKICAgICAgICAgICAgIm1hcmtkb3duRGVzY3JpcHRpb24iIDogIkxvZ2ljYWwgbmFtZSBmb3IgdGhpcyBlbGFzdGljIGlucHV0XG5cblNldHMgYSBsb2dpY2FsIG5hbWUgKGUuZy4sICdteUVsYXN0aWMnKSBmb3IgdGhpcyBpbnB1dC4gVGhlIFtpbnB1dE5hbWVdKGh0dHBzOi8vZG9jLmxvZzEweC5jb20vYXBpL2pzLyNUZW5YQmFzZU9iamVjdCtpbnB1dE5hbWUpIGZpZWxkIHJldHVybnMgdGhpcyB2YWx1ZSBhdCBydW4gdGltZSB0byBhbGxvdyBmb3IgaWRlbnRpZnlpbmcgYW5kIG9wZXJhdGluZyBvbiBpbnN0YW5jZXMgb3JpZ2luYXRpbmcgZnJvbSB0aGlzIGlucHV0LiIKICAgICAgICAgIH0sCiAgICAgICAgICAiZW5hYmxlZCIgOiB7CiAgICAgICAgICAgICJ0eXBlIiA6IFsKICAgICAgICAgICAgICAiYm9vbGVhbiIsCiAgICAgICAgICAgICAgInN0cmluZyIsCiAgICAgICAgICAgICAgIm51bGwiCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJtYXJrZG93bkRlc2NyaXB0aW9uIiA6ICJTZXRzIHdoZXRoZXIgdGhpcyBpbnB1dCBpcyBlbmFibGVkXG5cblNldHMgd2hldGhlciB0byBvcGVuIHRoZSBpbnB1dCBzdHJlYW0uIFRvIGVuYWJsZSB0aGlzIGlucHV0IG9ubHkgd2hlbiBhICdlbGFzdGljU2VhcmNoSG9zdCcgc3RhcnR1cCBhcmd1bWVudCB2YWx1ZSBpcyB0cnV0aHksIHVzZTogYGBgIHlhbWwgZWxhc3RpY1NlYXJjaEVuYWJsZWQ6ICQ9VGVuWEVudi5nZXQoXCJlbGFzdGljU2VhcmNoSG9zdFwiKSBgYGAgVG8gbGVhcm4gbW9yZSBzZWUgW1RlblhFbnYuZ2V0XShodHRwczovL2RvYy5sb2cxMHguY29tL2FwaS9qcy8jVGVuWEVudi5nZXQpLiAoQWNjZXB0cyBib29sZWFuIG9yIHN0cmluZyB3aXRoICQ9IHByZWZpeCBmb3IgcnVudGltZSBldmFsdWF0aW9uKSAoRGVmYXVsdDogdHJ1ZSkiLAogICAgICAgICAgICAiZGVmYXVsdCIgOiB0cnVlCiAgICAgICAgICB9LAogICAgICAgICAgInByaW50UHJvZ3Jlc3MiIDogewogICAgICAgICAgICAidHlwZSIgOiBbCiAgICAgICAgICAgICAgImJvb2xlYW4iLAogICAgICAgICAgICAgICJzdHJpbmciLAogICAgICAgICAgICAgICJudWxsIgogICAgICAgICAgICBdLAogICAgICAgICAgICAibWFya2Rvd25EZXNjcmlwdGlvbiIgOiAiU2V0cyB3aGV0aGVyIHRoaXMgaW5wdXQgcHJpbnRzIHRocm91Z2hwdXQgc3RhdHMgdG8gdGhlIGNvbnNvbGVcblxuU2V0cyB3aGV0aGVyIHRoaXMgaW5wdXQgcHJpbnRzIHRocm91Z2hwdXQgc3RhdHMgdG8gdGhlIGNvbnNvbGUgZm9yIHRlc3RpbmcgYW4gaW50ZWdyYXRpb24gdG8gYSByZW1vdGUgZW5kcG9pbnQuIChBY2NlcHRzIGJvb2xlYW4gb3Igc3RyaW5nIHdpdGggJD0gcHJlZml4IGZvciBydW50aW1lIGV2YWx1YXRpb24pIChEZWZhdWx0OiBmYWxzZSkiLAogICAgICAgICAgICAiZGVmYXVsdCIgOiBmYWxzZQogICAgICAgICAgfSwKICAgICAgICAgICJ0b3RhbER1cmF0aW9uIiA6IHsKICAgICAgICAgICAgInR5cGUiIDogWwogICAgICAgICAgICAgICJzdHJpbmciLAogICAgICAgICAgICAgICJudWxsIgogICAgICAgICAgICBdLAogICAgICAgICAgICAibWFya2Rvd25EZXNjcmlwdGlvbiIgOiAiU2V0cyBtYXhpbXVtIHRpbWUgdG8gcXVlcnkgdGhlIGJhY2tlbmRcblxuU2V0cyB0aGUgbWF4aW11bSB0aW1lIHRoZSBwaXBlbGluZSB3aWxsIGNvbnRpbnVlIHRvIHF1ZXJ5IHRoZSBiYWNrZW5kIGJlZm9yZSBleGl0aW5nLiBGb3IgZXhhbXBsZSwgc2V0dGluZyB0aGlzIHRvICcxbWluJyBtZWFucyB0aGF0IHF1ZXJpZXMgdG8gdGhlIGJhY2tlbmQgd2lsbCBzdG9wIGFmdGVyIDEgbWludXRlIGhhcyBwYXNzZWQuIChEZWZhdWx0OiA1bWluKSIsCiAgICAgICAgICAgICJkZWZhdWx0IiA6ICI1bWluIgogICAgICAgICAgfSwKICAgICAgICAgICJleHRyYWN0b3JzIiA6IHsKICAgICAgICAgICAgInR5cGUiIDogWwogICAgICAgICAgICAgICJhcnJheSIsCiAgICAgICAgICAgICAgInN0cmluZyIsCiAgICAgICAgICAgICAgIm51bGwiCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJtYXJrZG93bkRlc2NyaXB0aW9uIiA6ICJMaXN0IG9mIGV4dHJhY3RvcnMgdG8gYXBwbHkgb24gdGhlIGV2ZW50cyByZXR1cm5pbmcgZnJvbSB0aGUgcXVlcnlcblxuU2V0cyBsaXN0IG9mIGV4dHJhY3RvciBuYW1lcyB3aGljaCB3aWxsIHdvcmsgb24gdGhlIGV2ZW50cyByZXR1cm5pbmcgZnJvbSB0aGUgcXVlcnkuIEZvciBtb3JlIGluZm8gb24gZXh0cmFjdG9ycywgc2VlOiBodHRwczovL2RvYy5sb2cxMHguY29tL3J1bi9pbnB1dC9leHRyYWN0IiwKICAgICAgICAgICAgIml0ZW1zIiA6IHsKICAgICAgICAgICAgICAidHlwZSIgOiAic3RyaW5nIgogICAgICAgICAgICB9CiAgICAgICAgICB9LAogICAgICAgICAgImhvc3QiIDogewogICAgICAgICAgICAidHlwZSIgOiBbCiAgICAgICAgICAgICAgInN0cmluZyIsCiAgICAgICAgICAgICAgIm51bGwiCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJtYXJrZG93bkRlc2NyaXB0aW9uIiA6ICJFbGFzdGljIGhvc3QgYWRkcmVzc1xuXG5TZXQgdGhlIGVsYXN0aWMgaG9zdCBhZGRyZXNzIHRvIGNvbm5lY3QgdG8uIEV4YW1wbGVzOiBjb3JhbG9naXgtZXNhcGkuY29yYWxvZ2l4LmNvbSBhcGkubG9nei5pbyA8ZGVwbG95bWVudC1pZD4udXMtY2VudHJhbDEuZ2NwLmNsb3VkLmVzLmlvIgogICAgICAgICAgfSwKICAgICAgICAgICJwb3J0IiA6IHsKICAgICAgICAgICAgInR5cGUiIDogWwogICAgICAgICAgICAgICJudW1iZXIiLAogICAgICAgICAgICAgICJzdHJpbmciLAogICAgICAgICAgICAgICJudWxsIgogICAgICAgICAgICBdLAogICAgICAgICAgICAibWFya2Rvd25EZXNjcmlwdGlvbiIgOiAiRWxhc3RpYyBzZXJ2ZXIgcG9ydFxuXG5TZXRzIHRoZSBlbGFzdGljIHNlcnZlciBwb3J0IHRvIGNvbm5lY3QgdG8gKGUuZy4sICc5NDQzJykgVGhlIHBvcnQgdmFsdWUgaXMgbm90IG5lZWRlZCBpZiBbZWxhc3RpY1NlYXJjaEhvc3RdKGh0dHBzOi8vZG9jLmxvZzEweC5jb20vcnVuL2lucHV0L2FuYWx5emVyL2VsYXN0aWNzZWFyY2gvI2VsYXN0aWNzZWFyY2hob3N0KSB2YWx1ZSBlbmNhcHN1bGF0ZXMgdGhlIHBvcnQgKEFjY2VwdHMgbnVtYmVyIG9yIHN0cmluZyB3aXRoICQ9IHByZWZpeCBmb3IgcnVudGltZSBldmFsdWF0aW9uKSIKICAgICAgICAgIH0sCiAgICAgICAgICAicHJvdG9jb2wiIDogewogICAgICAgICAgICAidHlwZSIgOiBbCiAgICAgICAgICAgICAgInN0cmluZyIsCiAgICAgICAgICAgICAgIm51bGwiCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJtYXJrZG93bkRlc2NyaXB0aW9uIiA6ICJEZWZpbmVzIHRoZSBwcm90b2NvbCB0byBjb25uZWN0IHRvIEVsYXN0aWNTZWFyY2hcblxuU2V0cyB0aGUgcHJvdG9jb2wgdG8gY29ubmVjdCB0byBlbGFzdGljIHdpdGggKGUuZy4sIGBodHRwc2ApLiAoRGVmYXVsdDogaHR0cHMpIiwKICAgICAgICAgICAgImRlZmF1bHQiIDogImh0dHBzIgogICAgICAgICAgfSwKICAgICAgICAgICJ0b2tlbiIgOiB7CiAgICAgICAgICAgICJ0eXBlIiA6IFsKICAgICAgICAgICAgICAic3RyaW5nIiwKICAgICAgICAgICAgICAibnVsbCIKICAgICAgICAgICAgXSwKICAgICAgICAgICAgIm1hcmtkb3duRGVzY3JpcHRpb24iIDogIkVsYXN0aWMgYXV0aGVudGljYXRpb24gdG9rZW5cblxuU2V0cyB0aGUgQVBJIHRva2VuIHVzZWQgdG8gYXV0aGVudGljYXRlIGFnYWluc3QgdGhlIHRhcmdldCBlbGFzdGljIGNsdXN0ZXIuIFRvIGxlYXJuIG1vcmUgc2VlOiBbYXBpIHRva2Vuc10oaHR0cHM6Ly93d3cuZWxhc3RpYy5jby9ndWlkZS9lbi9lbGFzdGljc2VhcmNoL3JlZmVyZW5jZS9jdXJyZW50L3NlY3VyaXR5LWFwaS1nZXQtdG9rZW4uaHRtbCkiCiAgICAgICAgICB9LAogICAgICAgICAgImF1dGhvcml6YXRpb25LZXlOYW1lIiA6IHsKICAgICAgICAgICAgInR5cGUiIDogWwogICAgICAgICAgICAgICJzdHJpbmciLAogICAgICAgICAgICAgICJudWxsIgogICAgICAgICAgICBdLAogICAgICAgICAgICAibWFya2Rvd25EZXNjcmlwdGlvbiIgOiAiUHJlZml4IGZvciB0aGUgZWxhc3RpYyBhdXRoZW50aWNhdGlvbiB0b2tlblxuXG5TZXRzIHRoZSBwcmVmaXggZm9yIHRoZSBwcm92aWRlZCBbZWxhc3RpY1NlYXJjaFRva2VuXShodHRwczovL2RvYy5sb2cxMHguY29tL3J1bi9pbnB1dC9hbmFseXplci9lbGFzdGljc2VhcmNoLyNlbGFzdGljc2VhcmNodG9rZW4pIHdoZW4gdXNpbmcgaXQgaW4gYW4gJ0F1dGhvcml6YXRpb24nIGhlYWRlci4gY29tbW9ubHkgdXNlZCB2YWx1ZXMgYnkgZGlmZmVyZW50IGVsYXN0aWMgdmVuZG9ycyBhcmUgJ0FwaUtleScgYW5kICdCZWFyZXInIChEZWZhdWx0OiBBcGlLZXkpIiwKICAgICAgICAgICAgImRlZmF1bHQiIDogIkFwaUtleSIKICAgICAgICAgIH0sCiAgICAgICAgICAicXVlcnkiIDogewogICAgICAgICAgICAidHlwZSIgOiBbCiAgICAgICAgICAgICAgInN0cmluZyIsCiAgICAgICAgICAgICAgIm51bGwiCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJtYXJrZG93bkRlc2NyaXB0aW9uIiA6ICJRdWVyeSB0byBwYXNzIHRvIHRoZSBlbGFzdGljIHNlcnZlclxuXG5TZXRzIHRoZSBlbGFzdGljIHF1ZXJ5IHRvIHJlcXVlc3QgcGFnaW5hdGVkIGRvY3VtZW50cyBmcm9tIHRoZSAgJy9fc2VhcmNoJyBSRVNUIGVuZHBvaW50LiBUaGUgZGVmYXVsdCBxdWVyeSAoZGVmaW5lZCBpbiAnZWxhc3RpY3NlYXJjaC9xdWVyeS50eHQnKSByZXRyaWV2ZXMgcGFnaW5hdGVkIHZhbHVlcyBzb3J0ZWQgaW4gZGVzYyBvcmRlciBieSBAdGltZXN0YW1wLCBzdGFydGluZyBmcm9tIHRoZSB2YWx1ZSBvZiAnbm93KCknLiIKICAgICAgICAgIH0sCiAgICAgICAgICAibWVzc2FnZUZpZWxkIiA6IHsKICAgICAgICAgICAgInR5cGUiIDogWwogICAgICAgICAgICAgICJzdHJpbmciLAogICAgICAgICAgICAgICJudWxsIgogICAgICAgICAgICBdLAogICAgICAgICAgICAibWFya2Rvd25EZXNjcmlwdGlvbiIgOiAiTmFtZSBvZiB0aGUgZmllbGQgdXNlZCB0byBleHRyYWN0IHRoZSBsb2cgbWVzc2FnZSBmcm9tIHJldHJpZXZlZCBkb2N1bWVudHNcblxuU2V0cyB0aGUgbmFtZSBvZiB0aGUgZmllbGQgdXNlZCB0byBleHRyYWN0IHRoZSBsb2cgbWVzc2FnZSBmcm9tIHJldHJpZXZlZCBkb2N1bWVudHMgKERlZmF1bHQ6IGxvZykiLAogICAgICAgICAgICAiZGVmYXVsdCIgOiAibG9nIgogICAgICAgICAgfSwKICAgICAgICAgICJ0aW1lc3RhbXBGaWVsZCIgOiB7CiAgICAgICAgICAgICJ0eXBlIiA6IFsKICAgICAgICAgICAgICAic3RyaW5nIiwKICAgICAgICAgICAgICAibnVsbCIKICAgICAgICAgICAgXSwKICAgICAgICAgICAgIm1hcmtkb3duRGVzY3JpcHRpb24iIDogIk5hbWUgb2YgdGhlIGZpZWxkIHVzZWQgdG8gc29ydCByZXRyaWV2ZWQgZG9jdW1lbnRzIGJ5XG5cblNldHMgdGhlIG5hbWUgb2YgdGhlIGZpZWxkIHVzZWQgdG8gc29ydCByZXRyaWV2ZWQgZG9jdW1lbnRzIGJ5IChEZWZhdWx0OiBAdGltZXN0YW1wKSIsCiAgICAgICAgICAgICJkZWZhdWx0IiA6ICJAdGltZXN0YW1wIgogICAgICAgICAgfSwKICAgICAgICAgICJzdGFydFRpbWUiIDogewogICAgICAgICAgICAidHlwZSIgOiBbCiAgICAgICAgICAgICAgInN0cmluZyIsCiAgICAgICAgICAgICAgIm51bGwiCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJtYXJrZG93bkRlc2NyaXB0aW9uIiA6ICJUaGUgc3RhcnQgb2YgdGhlIHRpbWUgcmFuZ2UsIGV4cHJlc3NlZCBhcyBhIHJlbGF0aXZlIHN0cmluZyAoaS5lLiwgXCJub3ctN2RcIikgb3IgdGhlIG51bWJlciBvZiBtaWxsaXNlY29uZHMgYWZ0ZXIgSmFuIDEsIDE5NzAgMDA6MDA6MDAgVVRDLlxuXG5TZXRzIHRoZSBzdGFydCBvZiB0aGUgdGltZSByYW5nZSwgZXhwcmVzc2VkIGFzIGEgcmVsYXRpdmUgc3RyaW5nIChpLmUuLCBcIm5vdy03ZFwiKSBvciB0aGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyBhZnRlciBKYW4gMSwgMTk3MCAwMDowMDowMCBVVEMuIFRoZSBxdWVyeSBpbmNsdWRlcyBldmVudHMgd2l0aCBhIHRpbWVzdGFtcCBlcXVhbCBvciBsYXRlciB0byB0aGlzIHZhbHVlLiIKICAgICAgICAgIH0sCiAgICAgICAgICAiZW5kVGltZSIgOiB7CiAgICAgICAgICAgICJ0eXBlIiA6IFsKICAgICAgICAgICAgICAic3RyaW5nIiwKICAgICAgICAgICAgICAibnVsbCIKICAgICAgICAgICAgXSwKICAgICAgICAgICAgIm1hcmtkb3duRGVzY3JpcHRpb24iIDogIlRoZSBlbmQgb2YgdGhlIHRpbWUgcmFuZ2UsIGV4cHJlc3NlZCBhcyBhIHJlbGF0aXZlIHN0cmluZyAoaS5lLiwgXCJub3ctN2RcIikgb3IgdGhlIG51bWJlciBvZiBtaWxsaXNlY29uZHMgYWZ0ZXIgSmFuIDEsIDE5NzAgMDA6MDA6MDAgVVRDXG5cblNldHMgdGhlIGVuZCBvZiB0aGUgdGltZSByYW5nZSwgZXhwcmVzc2VkIGFzIGEgcmVsYXRpdmUgc3RyaW5nIChpLmUuLCBcIm5vdy03ZFwiKSBvciB0aGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyBhZnRlciBKYW4gMSwgMTk3MCAwMDowMDowMCBVVEMuIFRoZSBxdWVyeSBleGNsdWRlcyBldmVudHMgd2l0aCBhIHRpbWVzdGFtcCBsYXRlciB0aGFuIHRoaXMgdmFsdWUuIgogICAgICAgICAgfSwKICAgICAgICAgICJ0YXJnZXRzIiA6IHsKICAgICAgICAgICAgInR5cGUiIDogWwogICAgICAgICAgICAgICJhcnJheSIsCiAgICAgICAgICAgICAgInN0cmluZyIsCiAgICAgICAgICAgICAgIm51bGwiCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJtYXJrZG93bkRlc2NyaXB0aW9uIiA6ICJMaXN0IG9mIGRhdGEgc3RyZWFtcywgaW5kaWNlcywgYW5kIGFsaWFzZXMgdG8gc2VhcmNoXG5cblNldHMgbGlzdCBvZiBkYXRhIHN0cmVhbXMsIGluZGljZXMsIGFuZCBhbGlhc2VzIHRvIHNlYXJjaC4gVG8gc2VhcmNoIGFsbCBkYXRhIHN0cmVhbXMgYW5kIGluZGljZXMsIG9taXQgdGhpcyBwYXJhbWV0ZXIgb3IgdXNlICcqJyBvciAnX2FsbCcuIiwKICAgICAgICAgICAgIml0ZW1zIiA6IHsKICAgICAgICAgICAgICAidHlwZSIgOiAic3RyaW5nIgogICAgICAgICAgICB9CiAgICAgICAgICB9LAogICAgICAgICAgImVuZHBvaW50IiA6IHsKICAgICAgICAgICAgInR5cGUiIDogWwogICAgICAgICAgICAgICJzdHJpbmciLAogICAgICAgICAgICAgICJudWxsIgogICAgICAgICAgICBdLAogICAgICAgICAgICAibWFya2Rvd25EZXNjcmlwdGlvbiIgOiAiTmFtZSBvZiBzZWFyY2ggUkVTVCBlbmRwb2ludFxuXG5TZXRzIHRoZSBuYW1lIG9mIHRoZSBzZWFyY2ggUkVTVCBlbmRwb2ludC4gKERlZmF1bHQ6IF9zZWFyY2gpIiwKICAgICAgICAgICAgImRlZmF1bHQiIDogIl9zZWFyY2giCiAgICAgICAgICB9LAogICAgICAgICAgInF1ZXJ5U2l6ZSIgOiB7CiAgICAgICAgICAgICJ0eXBlIiA6IFsKICAgICAgICAgICAgICAibnVtYmVyIiwKICAgICAgICAgICAgICAic3RyaW5nIiwKICAgICAgICAgICAgICAibnVsbCIKICAgICAgICAgICAgXSwKICAgICAgICAgICAgIm1hcmtkb3duRGVzY3JpcHRpb24iIDogIk51bWJlciBvZiBkb2N1bWVudHMgdG8gcmVhZCBwZXIgYmF0Y2ggZnJvbSB0aGUgZWxhc3RpYyBzZXJ2ZXJcblxuU2V0cyB0aGUgbnVtYmVyIG9mIGRvY3VtZW50cyB0byByZXRyaWV2ZSB3aXRoIGVhY2ggcGFnZSBvZiByZXN1bHRzLiAoQWNjZXB0cyBudW1iZXIgb3Igc3RyaW5nIHdpdGggJD0gcHJlZml4IGZvciBydW50aW1lIGV2YWx1YXRpb24pIChEZWZhdWx0OiA1MDApIiwKICAgICAgICAgICAgImRlZmF1bHQiIDogNTAwCiAgICAgICAgICB9LAogICAgICAgICAgInJldHJ5VGltZW91dCIgOiB7CiAgICAgICAgICAgICJ0eXBlIiA6IFsKICAgICAgICAgICAgICAibnVtYmVyIiwKICAgICAgICAgICAgICAic3RyaW5nIiwKICAgICAgICAgICAgICAibnVsbCIKICAgICAgICAgICAgXSwKICAgICAgICAgICAgIm1hcmtkb3duRGVzY3JpcHRpb24iIDogIkEgdGltZW91dCBwZXJpb2QgKGluIG1pbGxpc2Vjb25kcykgdG8gd2FpdCBmb3IgcXVlcnlpbmcgb2YgbmV3IGRhdGFcblxuRGV0ZXJtaW5lcyBob3cgbG9uZyB0byB3YWl0IHRvIGludm9rZSB0aGUgc2VhcmNoIGVuZHBvaW50IEFQSSBhZ2FpbiB0byBxdWVyeSBmb3IgbmV3IGRhdGEuIFNlZSBbZWxhc3RpYy1pbnB1dC5qc10oaHR0cHM6Ly9naXRodWIuY29tL2xvZy0xMHgvbW9kdWxlcy9ibG9iL21haW4vcGlwZWxpbmVzL3J1bi9tb2R1bGVzL2lucHV0L2FuYWx5emVyL2VsYXN0aWNzZWFyY2gvZWxhc3RpYy1pbnB1dC5qcykuIChBY2NlcHRzIG51bWJlciBvciBzdHJpbmcgd2l0aCAkPSBwcmVmaXggZm9yIHJ1bnRpbWUgZXZhbHVhdGlvbikgKERlZmF1bHQ6IDEwMDAwKSIsCiAgICAgICAgICAgICJkZWZhdWx0IiA6IDEwMDAwCiAgICAgICAgICB9LAogICAgICAgICAgInRvdGFsQnl0ZXNMaW1pdCIgOiB7CiAgICAgICAgICAgICJ0eXBlIiA6IFsKICAgICAgICAgICAgICAibnVtYmVyIiwKICAgICAgICAgICAgICAic3RyaW5nIiwKICAgICAgICAgICAgICAibnVsbCIKICAgICAgICAgICAgXSwKICAgICAgICAgICAgIm1hcmtkb3duRGVzY3JpcHRpb24iIDogIk1heGltdW0gdG90YWwgYnl0ZXMgdG8gcmVhZCBmcm9tIGlucHV0IGJlZm9yZSBjbG9zaW5nXG5cblNldHMgdGhlIG1heGltdW0gbnVtYmVyIG9mIGJ5dGVzIGEgdGFyZ2V0IHBpcGVsaW5lIGlucHV0IHdpbGwgcmVhZCBpbnRvIHRoZSBwaXBlbGluZS4gVGhpcyB2YWx1ZSBsaW1pdHMgdGhlIHZvbHVtZSBvZiBldmVudHMgdG8gcmVhZCBmcm9tIGEgbG9jYWwvcmVtb3RlIHNvdXJjZSAoZS5nLiwgbG9nIGFuYWx5emVyKS4gICBGb3IgZXhhbXBsZTogYGBgIHlhbWwgZWxhc3RpY1NlYXJjaFRvdGFsQnl0ZXNMaW1pdDogJD1wYXJzZUJ5dGVzKFwiMUdCXCIpIGBgYCAoQWNjZXB0cyBudW1iZXIgb3Igc3RyaW5nIHdpdGggJD0gcHJlZml4IGZvciBydW50aW1lIGV2YWx1YXRpb24pIgogICAgICAgICAgfSwKICAgICAgICAgICJ0b3RhbEV2ZW50c0xpbWl0IiA6IHsKICAgICAgICAgICAgInR5cGUiIDogWwogICAgICAgICAgICAgICJudW1iZXIiLAogICAgICAgICAgICAgICJzdHJpbmciLAogICAgICAgICAgICAgICJudWxsIgogICAgICAgICAgICBdLAogICAgICAgICAgICAibWFya2Rvd25EZXNjcmlwdGlvbiIgOiAiTWF4aW11bSB0b3RhbCBldmVudHMgdG8gcmVhZCBmcm9tIGlucHV0IGJlZm9yZSBjbG9zaW5nXG5cblNldHMgdGhlIG1heGltdW0gbnVtYmVyIG9mIGV2ZW50cyBhIHRhcmdldCBwaXBlbGluZSBpbnB1dCB3aWxsIHJlYWQgaW50byB0aGUgcGlwZWxpbmUuIFRoaXMgdmFsdWUgbGltaXRzIHRoZSB2b2x1bWUgb2YgZXZlbnRzIHRvIHJlYWQgZnJvbSBhIGxvY2FsL3JlbW90ZSBzb3VyY2UgKGUuZy4sIGxvZyBhbmFseXplcikuIChBY2NlcHRzIG51bWJlciBvciBzdHJpbmcgd2l0aCAkPSBwcmVmaXggZm9yIHJ1bnRpbWUgZXZhbHVhdGlvbikgKERlZmF1bHQ6IDEwMDAwKSIsCiAgICAgICAgICAgICJkZWZhdWx0IiA6IDEwMDAwCiAgICAgICAgICB9LAogICAgICAgICAgInF1ZXJ5SW50ZXJ2YWwiIDogewogICAgICAgICAgICAidHlwZSIgOiBbCiAgICAgICAgICAgICAgIm51bWJlciIsCiAgICAgICAgICAgICAgInN0cmluZyIsCiAgICAgICAgICAgICAgIm51bGwiCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJtYXJrZG93bkRlc2NyaXB0aW9uIiA6ICJRdWVyeSBpbnRlcnZhbCAoaW4gbWlsbGlzZWNvbmRzKSBmb3IgY2hlY2tpbmcgbmV3IGRhdGEgZnJvbSByZW1vdGUgc291cmNlXG5cblNldHMgdGhlIGludGVydmFsIGJldHdlZW4gcXVlcmllcyB0byB0aGUgcmVtb3RlIEVsYXN0aWNzZWFyY2ggQVBJLiBUaGlzIGNvbnRyb2xzIGhvdyBmcmVxdWVudGx5IHRoZSBpbnB1dCBwb2xscyBmb3IgbmV3IGxvZyBkYXRhLiAgRm9yIGV4YW1wbGU6IGBgYCB5YW1sIGVsYXN0aWNTZWFyY2hRdWVyeUludGVydmFsOiAkPXBhcnNlRHVyYXRpb24oXCI1c1wiKSBgYGAgKEFjY2VwdHMgbnVtYmVyIG9yIHN0cmluZyB3aXRoICQ9IHByZWZpeCBmb3IgcnVudGltZSBldmFsdWF0aW9uKSAoRGVmYXVsdDogMjAwMCkiLAogICAgICAgICAgICAiZGVmYXVsdCIgOiAyMDAwCiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICAicmVxdWlyZWQiIDogWwogICAgICAgICAgImhvc3QiLAogICAgICAgICAgInRva2VuIgogICAgICAgIF0KICAgICAgfQogICAgfQogIH0sCiAgImFkZGl0aW9uYWxQcm9wZXJ0aWVzIiA6IHRydWUKfQ==</template>

    ```yaml
    # 🔟❎ 'run' Logz.io ElasticSearch input configuration
    
    # Configures a Logz.io ElasticSearch event input
    # To learn more see https://doc.log10x.com/run/input/analyzer/elasticsearch/
    
    # Set the 10x pipeline to 'run'
    tenx: run
    
    # =============================== Dependencies ================================
    
    include: run/modules/input/analyzer/elasticsearch
    
    # =============================== Logzio Options ==============================
    
    # Multiple Logz.io inputs can be defined below:
    elasticSearch:
    
        # 'name' sets a unique logical name across all pipeline inputs
      - name: logzioElasticSearch
    
        # --------------------------- Connection Options --------------------------
    
        # 'token' must be set to the Logz.io API token.
        #  See: https://docs.logz.io/user-guide/tokens/api-tokens.html
        token: null # (❗ REQUIRED)
    
        # 'host' and 'port' set the Logz.io service address to connect to
        host: api.logz.io
        port: 443
    
        # ----------------------------- Query Options -----------------------------
    
        # 'targets' lists data streams, indices, and aliases to search.
        #  To search all data streams and indices, use '*' or '_all'.
        targets:
          - v1
    
        # 'startTime' and 'endTime' set the time frame of the query.
        startTime: now-5m
        endTime: now
    
        # --------------------------- Backpressure Options -----------------------
    
        # 'queryInterval' sets the interval between queries to the remote API
        queryInterval: $=parseDuration("2s")
    
        # 'totalDuration' sets the max duration to try reading from the the remote input 
        totalDuration: $=parseDuration("5min")
    
        # 'totalBytesLimit' sets the max total bytes to read from the remote input
        totalBytesLimit: $=parseBytes("50MB")
    
        # 'totalEventsLimit' sets the max number of events to read the remote input
        totalEventsLimit: 10000
    
        # --------------------------- Ancillary Options ---------------------------
    
        # 'printProgress' controls whether to print a progress gage to the console
        #  This option helps debug and test the input
        printProgress: $=!TenXEnv.get("quiet")
    
        # --------------------------- Advanced Options ---------------------------
    
        # 'querySize' sets the number of documents retrieved with each results page.
        querySize: 500
    
        # 'query' sets the elastic query to request paginated documents from the  '/_search' REST endpoint.
        #  The default query (defined in 'input/analyzer/elasticsearch/query.txt')
        #  retrieves paginated values sorted in desc order by @timestamp
        query: null
        
        # 'endpoint' sets the REST API endpoint to query
        endpoint: search
    
        # 'messageField' defines the name of the field to extract from the retrieved
        # documents containing the log message.
        messageField: message
    ```

??? tenx-coralogix "Coralogix"

    <a id="coralogix"></a>
    ### Coralogix {.hidden-heading}



    Below is the default configuration from: [coralogix/config.yaml](https://github.dev/log-10x/config/blob/main/pipelines/run/input/analyzer/coralogix/config.yaml "coralogix/config.yaml"){target="\_blank"} (<span class="tenx-tooltip" data-tooltip="The config file below contains required fields to activate this module, marked with &#10071;">** Required Fields*</span>).  
  
    <div class="edit-options">
        <a class="md-button tenx-edit-online-button" data-tooltip="Edit online on github.dev" href="https://github.dev/log-10x/config/blob/main/pipelines/run/input/analyzer/coralogix/config.yaml" target="_blank" rel="noopener noreferrer">
            <span class="twemoji" style="margin-right: 0.3rem;">
                <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
                    <path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"></path>
                </svg>
            </span> Edit Online
        </a>
        <button class="md-button tenx-config.yaml2-edit-button" data-tooltip="Edit configuration file" data-dialog-id="config-yaml2-dialog">
            <span style="margin-right: 0.3rem;">
                <span class="twemoji">
                    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
                        <path d="M20.71,7.04C21.1,6.65 21.1,6 20.71,5.63L18.37,3.29C18,2.9 17.35,2.9 16.96,3.29L15.12,5.12L18.87,8.87M3,17.25V21H6.75L17.81,9.93L14.06,6.18L3,17.25Z"></path>
                    </svg>
                </span>
            </span>Edit Locally
        </button>
    </div>
    
    <dialog id="config-yaml2-dialog" class="md-dialog md-dialog--editor">
        <div class="editor-dialog-wrapper">
            <div class="editor-dialog-header">
                <span class="editor-dialog-title">Edit config.yaml Locally</span>
                <div class="editor-header-actions">
                    <button class="editor-toolbar-btn yaml-editor-locations" data-tooltip="Save">
                        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="currentColor" d="M5 20h14v-2H5v2m14-9h-4V3H9v8H5l7 7 7-7Z"></path></svg>
                    </button>
                    <button class="editor-toolbar-btn yaml-editor-reset" data-tooltip="Reset to default">
                        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="currentColor" d="M12.5 8c-2.65 0-5.05 1-6.9 2.6L2 7v9h9l-3.62-3.62c1.39-1.16 3.16-1.88 5.12-1.88 3.54 0 6.55 2.31 7.6 5.5l2.37-.78C21.08 11.03 17.15 8 12.5 8z"></path></svg>
                    </button>
                    <button class="editor-toolbar-btn yaml-editor-copy" data-tooltip="Copy to clipboard">
                        <svg class="icon-copy" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="currentColor" d="M19 21H8V7h11m0-2H8a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h11a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2m-3-4H4a2 2 0 0 0-2 2v14h2V3h12V1Z"></path></svg>
                        <svg class="icon-check" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" style="display:none;"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg>
                    </button>
                    <span class="header-divider"></span>
                    <button class="editor-toolbar-btn yaml-editor-fullscreen" data-tooltip="Fullscreen">
                        <svg class="icon-maximize" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="currentColor" d="M5,5H10V7H7V10H5V5M14,5H19V10H17V7H14V5M17,14H19V19H14V17H17V14M10,17V19H5V14H7V17H10Z"></path></svg>
                        <svg class="icon-minimize" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" style="display:none;"><path fill="currentColor" d="M5,16H8V19H10V14H5V16M14,14V19H16V16H19V14H14M16,5V8H19V10H14V5H16M10,5V10H5V8H8V5H10Z"></path></svg>
                    </button>
                    <span class="header-divider"></span>
                    <button class="editor-toolbar-btn editor-dialog-close" onclick="closeDialog('config-yaml2-dialog')" data-tooltip="Close">
                        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="currentColor" d="M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z"></path></svg>
                    </button>
                </div>
            </div>
            <div class="editor-dialog-content">
                <div class="yaml-editor-container"></div>
            </div>
            <div class="yaml-editor-statusbar">
                <span class="yaml-editor-status"></span>
            </div>
        </div>
        <!-- Locations Popup -->
        <div class="locations-popup" style="display: none;">
            <div class="locations-popup-content">
                <div class="locations-popup-header">
                    <span class="locations-header-label">Download and save to:</span>
                    <button class="locations-popup-close" aria-label="Close">
                        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="16" height="16">
                            <path fill="currentColor" d="M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z"></path>
                        </svg>
                    </button>
                </div>
                <ul class="locations-list">
                    <li>
                        <span class="location-label">Linux / Docker / macOS
                            <span class="help-icon" data-tooltip="Default system location. The engine automatically reads configs from here at startup. Best for production deployments.">
                                <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="12" height="12"><path fill="currentColor" d="M11 18h2v-2h-2v2m1-16A10 10 0 0 0 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2m0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8m0-14a4 4 0 0 0-4 4h2a2 2 0 0 1 2-2 2 2 0 0 1 2 2c0 2-3 1.75-3 5h2c0-2.25 3-2.5 3-5a4 4 0 0 0-4-4Z"/></svg>
                            </span>
                        </span>
                        <div class="location-path-row">
                            <code class="default-path location-path" data-tooltip=""
                                data-copy-osx="/etc/log10x/config/run/input/analyzer/coralogix/config.yaml"
                                data-copy-nix="/etc/log10x/config/run/input/analyzer/coralogix/config.yaml"
                                data-copy-win="C:\log10x\configs/run/input/analyzer/coralogix/config.yaml"></code>
                            <button class="copy-btn" data-tooltip="Copy path">
                                <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="14" height="14">
                                    <path fill="currentColor" d="M19 21H8V7h11m0-2H8a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h11a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2m-3-4H4a2 2 0 0 0-2 2v14h2V3h12V1Z"></path>
                                </svg>
                            </button>
                        </div>
                    </li>
                    <li>
                        <span class="location-label">Custom directory
                            <span class="help-icon" data-tooltip="Set TENX_CONFIG environment variable to point to a custom config directory. Useful when you want configs in a non-standard location.">
                                <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="12" height="12"><path fill="currentColor" d="M11 18h2v-2h-2v2m1-16A10 10 0 0 0 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2m0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8m0-14a4 4 0 0 0-4 4h2a2 2 0 0 1 2-2 2 2 0 0 1 2 2c0 2-3 1.75-3 5h2c0-2.25 3-2.5 3-5a4 4 0 0 0-4-4Z"/></svg>
                            </span>
                        </span>
                        <div class="location-path-row">
                            <code class="location-path" data-tooltip="$TENX_CONFIG/run/input/analyzer/coralogix/config.yaml">$TENX_CONFIG/run/input/analyzer/coralogix/config.yaml</code>
                            <button class="copy-btn" data-tooltip="Copy path">
                                <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="14" height="14">
                                    <path fill="currentColor" d="M19 21H8V7h11m0-2H8a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h11a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2m-3-4H4a2 2 0 0 0-2 2v14h2V3h12V1Z"></path>
                                </svg>
                            </button>
                        </div>
                    </li>
                    <li>
                        <span class="location-label">Within cloned repo
                            <span class="help-icon" data-tooltip="First run: git clone github.com/log-10x/config. Then save the file to this path within the cloned folder. Use for version control.">
                                <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="12" height="12"><path fill="currentColor" d="M11 18h2v-2h-2v2m1-16A10 10 0 0 0 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2m0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8m0-14a4 4 0 0 0-4 4h2a2 2 0 0 1 2-2 2 2 0 0 1 2 2c0 2-3 1.75-3 5h2c0-2.25 3-2.5 3-5a4 4 0 0 0-4-4Z"/></svg>
                            </span>
                        </span>
                        <div class="location-path-row">
                            <code class="location-path" data-tooltip="./pipelines/run/input/analyzer/coralogix/config.yaml">./pipelines/run/input/analyzer/coralogix/config.yaml</code>
                            <button class="copy-btn" data-tooltip="Copy path">
                                <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="14" height="14">
                                    <path fill="currentColor" d="M19 21H8V7h11m0-2H8a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h11a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2m-3-4H4a2 2 0 0 0-2 2v14h2V3h12V1Z"></path>
                                </svg>
                            </button>
                        </div>
                    </li>
                </ul>
                <div class="locations-popup-footer">
                    <button class="locations-download-btn" title="Download config file">
                        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="14" height="14">
                            <path fill="currentColor" d="M5 20h14v-2H5v2m14-9h-4V3H9v8H5l7 7 7-7Z"></path>
                        </svg>
                        <span>Download</span>
                    </button>
                </div>
            </div>
        </div>
    </dialog>
    
    <template class="tenx-config-schema" data-encoding="base64">ewogICJ0eXBlIiA6ICJvYmplY3QiLAogICJwcm9wZXJ0aWVzIiA6IHsKICAgICJpbmNsdWRlIiA6IHsKICAgICAgInR5cGUiIDogInN0cmluZyIKICAgIH0sCiAgICAidGVueCIgOiB7CiAgICAgICJ0eXBlIiA6ICJzdHJpbmciCiAgICB9LAogICAgImVsYXN0aWNTZWFyY2giIDogewogICAgICAidHlwZSIgOiAiYXJyYXkiLAogICAgICAiaXRlbXMiIDogewogICAgICAgICJ0eXBlIiA6ICJvYmplY3QiLAogICAgICAgICJhZGRpdGlvbmFsUHJvcGVydGllcyIgOiBmYWxzZSwKICAgICAgICAicHJvcGVydGllcyIgOiB7CiAgICAgICAgICAibmFtZSIgOiB7CiAgICAgICAgICAgICJ0eXBlIiA6IFsKICAgICAgICAgICAgICAic3RyaW5nIiwKICAgICAgICAgICAgICAibnVsbCIKICAgICAgICAgICAgXSwKICAgICAgICAgICAgIm1hcmtkb3duRGVzY3JpcHRpb24iIDogIkxvZ2ljYWwgbmFtZSBmb3IgdGhpcyBlbGFzdGljIGlucHV0XG5cblNldHMgYSBsb2dpY2FsIG5hbWUgKGUuZy4sICdteUVsYXN0aWMnKSBmb3IgdGhpcyBpbnB1dC4gVGhlIFtpbnB1dE5hbWVdKGh0dHBzOi8vZG9jLmxvZzEweC5jb20vYXBpL2pzLyNUZW5YQmFzZU9iamVjdCtpbnB1dE5hbWUpIGZpZWxkIHJldHVybnMgdGhpcyB2YWx1ZSBhdCBydW4gdGltZSB0byBhbGxvdyBmb3IgaWRlbnRpZnlpbmcgYW5kIG9wZXJhdGluZyBvbiBpbnN0YW5jZXMgb3JpZ2luYXRpbmcgZnJvbSB0aGlzIGlucHV0LiIKICAgICAgICAgIH0sCiAgICAgICAgICAiZW5hYmxlZCIgOiB7CiAgICAgICAgICAgICJ0eXBlIiA6IFsKICAgICAgICAgICAgICAiYm9vbGVhbiIsCiAgICAgICAgICAgICAgInN0cmluZyIsCiAgICAgICAgICAgICAgIm51bGwiCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJtYXJrZG93bkRlc2NyaXB0aW9uIiA6ICJTZXRzIHdoZXRoZXIgdGhpcyBpbnB1dCBpcyBlbmFibGVkXG5cblNldHMgd2hldGhlciB0byBvcGVuIHRoZSBpbnB1dCBzdHJlYW0uIFRvIGVuYWJsZSB0aGlzIGlucHV0IG9ubHkgd2hlbiBhICdlbGFzdGljU2VhcmNoSG9zdCcgc3RhcnR1cCBhcmd1bWVudCB2YWx1ZSBpcyB0cnV0aHksIHVzZTogYGBgIHlhbWwgZWxhc3RpY1NlYXJjaEVuYWJsZWQ6ICQ9VGVuWEVudi5nZXQoXCJlbGFzdGljU2VhcmNoSG9zdFwiKSBgYGAgVG8gbGVhcm4gbW9yZSBzZWUgW1RlblhFbnYuZ2V0XShodHRwczovL2RvYy5sb2cxMHguY29tL2FwaS9qcy8jVGVuWEVudi5nZXQpLiAoQWNjZXB0cyBib29sZWFuIG9yIHN0cmluZyB3aXRoICQ9IHByZWZpeCBmb3IgcnVudGltZSBldmFsdWF0aW9uKSAoRGVmYXVsdDogdHJ1ZSkiLAogICAgICAgICAgICAiZGVmYXVsdCIgOiB0cnVlCiAgICAgICAgICB9LAogICAgICAgICAgInByaW50UHJvZ3Jlc3MiIDogewogICAgICAgICAgICAidHlwZSIgOiBbCiAgICAgICAgICAgICAgImJvb2xlYW4iLAogICAgICAgICAgICAgICJzdHJpbmciLAogICAgICAgICAgICAgICJudWxsIgogICAgICAgICAgICBdLAogICAgICAgICAgICAibWFya2Rvd25EZXNjcmlwdGlvbiIgOiAiU2V0cyB3aGV0aGVyIHRoaXMgaW5wdXQgcHJpbnRzIHRocm91Z2hwdXQgc3RhdHMgdG8gdGhlIGNvbnNvbGVcblxuU2V0cyB3aGV0aGVyIHRoaXMgaW5wdXQgcHJpbnRzIHRocm91Z2hwdXQgc3RhdHMgdG8gdGhlIGNvbnNvbGUgZm9yIHRlc3RpbmcgYW4gaW50ZWdyYXRpb24gdG8gYSByZW1vdGUgZW5kcG9pbnQuIChBY2NlcHRzIGJvb2xlYW4gb3Igc3RyaW5nIHdpdGggJD0gcHJlZml4IGZvciBydW50aW1lIGV2YWx1YXRpb24pIChEZWZhdWx0OiBmYWxzZSkiLAogICAgICAgICAgICAiZGVmYXVsdCIgOiBmYWxzZQogICAgICAgICAgfSwKICAgICAgICAgICJ0b3RhbER1cmF0aW9uIiA6IHsKICAgICAgICAgICAgInR5cGUiIDogWwogICAgICAgICAgICAgICJzdHJpbmciLAogICAgICAgICAgICAgICJudWxsIgogICAgICAgICAgICBdLAogICAgICAgICAgICAibWFya2Rvd25EZXNjcmlwdGlvbiIgOiAiU2V0cyBtYXhpbXVtIHRpbWUgdG8gcXVlcnkgdGhlIGJhY2tlbmRcblxuU2V0cyB0aGUgbWF4aW11bSB0aW1lIHRoZSBwaXBlbGluZSB3aWxsIGNvbnRpbnVlIHRvIHF1ZXJ5IHRoZSBiYWNrZW5kIGJlZm9yZSBleGl0aW5nLiBGb3IgZXhhbXBsZSwgc2V0dGluZyB0aGlzIHRvICcxbWluJyBtZWFucyB0aGF0IHF1ZXJpZXMgdG8gdGhlIGJhY2tlbmQgd2lsbCBzdG9wIGFmdGVyIDEgbWludXRlIGhhcyBwYXNzZWQuIChEZWZhdWx0OiA1bWluKSIsCiAgICAgICAgICAgICJkZWZhdWx0IiA6ICI1bWluIgogICAgICAgICAgfSwKICAgICAgICAgICJleHRyYWN0b3JzIiA6IHsKICAgICAgICAgICAgInR5cGUiIDogWwogICAgICAgICAgICAgICJhcnJheSIsCiAgICAgICAgICAgICAgInN0cmluZyIsCiAgICAgICAgICAgICAgIm51bGwiCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJtYXJrZG93bkRlc2NyaXB0aW9uIiA6ICJMaXN0IG9mIGV4dHJhY3RvcnMgdG8gYXBwbHkgb24gdGhlIGV2ZW50cyByZXR1cm5pbmcgZnJvbSB0aGUgcXVlcnlcblxuU2V0cyBsaXN0IG9mIGV4dHJhY3RvciBuYW1lcyB3aGljaCB3aWxsIHdvcmsgb24gdGhlIGV2ZW50cyByZXR1cm5pbmcgZnJvbSB0aGUgcXVlcnkuIEZvciBtb3JlIGluZm8gb24gZXh0cmFjdG9ycywgc2VlOiBodHRwczovL2RvYy5sb2cxMHguY29tL3J1bi9pbnB1dC9leHRyYWN0IiwKICAgICAgICAgICAgIml0ZW1zIiA6IHsKICAgICAgICAgICAgICAidHlwZSIgOiAic3RyaW5nIgogICAgICAgICAgICB9CiAgICAgICAgICB9LAogICAgICAgICAgImhvc3QiIDogewogICAgICAgICAgICAidHlwZSIgOiBbCiAgICAgICAgICAgICAgInN0cmluZyIsCiAgICAgICAgICAgICAgIm51bGwiCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJtYXJrZG93bkRlc2NyaXB0aW9uIiA6ICJFbGFzdGljIGhvc3QgYWRkcmVzc1xuXG5TZXQgdGhlIGVsYXN0aWMgaG9zdCBhZGRyZXNzIHRvIGNvbm5lY3QgdG8uIEV4YW1wbGVzOiBjb3JhbG9naXgtZXNhcGkuY29yYWxvZ2l4LmNvbSBhcGkubG9nei5pbyA8ZGVwbG95bWVudC1pZD4udXMtY2VudHJhbDEuZ2NwLmNsb3VkLmVzLmlvIgogICAgICAgICAgfSwKICAgICAgICAgICJwb3J0IiA6IHsKICAgICAgICAgICAgInR5cGUiIDogWwogICAgICAgICAgICAgICJudW1iZXIiLAogICAgICAgICAgICAgICJzdHJpbmciLAogICAgICAgICAgICAgICJudWxsIgogICAgICAgICAgICBdLAogICAgICAgICAgICAibWFya2Rvd25EZXNjcmlwdGlvbiIgOiAiRWxhc3RpYyBzZXJ2ZXIgcG9ydFxuXG5TZXRzIHRoZSBlbGFzdGljIHNlcnZlciBwb3J0IHRvIGNvbm5lY3QgdG8gKGUuZy4sICc5NDQzJykgVGhlIHBvcnQgdmFsdWUgaXMgbm90IG5lZWRlZCBpZiBbZWxhc3RpY1NlYXJjaEhvc3RdKGh0dHBzOi8vZG9jLmxvZzEweC5jb20vcnVuL2lucHV0L2FuYWx5emVyL2VsYXN0aWNzZWFyY2gvI2VsYXN0aWNzZWFyY2hob3N0KSB2YWx1ZSBlbmNhcHN1bGF0ZXMgdGhlIHBvcnQgKEFjY2VwdHMgbnVtYmVyIG9yIHN0cmluZyB3aXRoICQ9IHByZWZpeCBmb3IgcnVudGltZSBldmFsdWF0aW9uKSIKICAgICAgICAgIH0sCiAgICAgICAgICAicHJvdG9jb2wiIDogewogICAgICAgICAgICAidHlwZSIgOiBbCiAgICAgICAgICAgICAgInN0cmluZyIsCiAgICAgICAgICAgICAgIm51bGwiCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJtYXJrZG93bkRlc2NyaXB0aW9uIiA6ICJEZWZpbmVzIHRoZSBwcm90b2NvbCB0byBjb25uZWN0IHRvIEVsYXN0aWNTZWFyY2hcblxuU2V0cyB0aGUgcHJvdG9jb2wgdG8gY29ubmVjdCB0byBlbGFzdGljIHdpdGggKGUuZy4sIGBodHRwc2ApLiAoRGVmYXVsdDogaHR0cHMpIiwKICAgICAgICAgICAgImRlZmF1bHQiIDogImh0dHBzIgogICAgICAgICAgfSwKICAgICAgICAgICJ0b2tlbiIgOiB7CiAgICAgICAgICAgICJ0eXBlIiA6IFsKICAgICAgICAgICAgICAic3RyaW5nIiwKICAgICAgICAgICAgICAibnVsbCIKICAgICAgICAgICAgXSwKICAgICAgICAgICAgIm1hcmtkb3duRGVzY3JpcHRpb24iIDogIkVsYXN0aWMgYXV0aGVudGljYXRpb24gdG9rZW5cblxuU2V0cyB0aGUgQVBJIHRva2VuIHVzZWQgdG8gYXV0aGVudGljYXRlIGFnYWluc3QgdGhlIHRhcmdldCBlbGFzdGljIGNsdXN0ZXIuIFRvIGxlYXJuIG1vcmUgc2VlOiBbYXBpIHRva2Vuc10oaHR0cHM6Ly93d3cuZWxhc3RpYy5jby9ndWlkZS9lbi9lbGFzdGljc2VhcmNoL3JlZmVyZW5jZS9jdXJyZW50L3NlY3VyaXR5LWFwaS1nZXQtdG9rZW4uaHRtbCkiCiAgICAgICAgICB9LAogICAgICAgICAgImF1dGhvcml6YXRpb25LZXlOYW1lIiA6IHsKICAgICAgICAgICAgInR5cGUiIDogWwogICAgICAgICAgICAgICJzdHJpbmciLAogICAgICAgICAgICAgICJudWxsIgogICAgICAgICAgICBdLAogICAgICAgICAgICAibWFya2Rvd25EZXNjcmlwdGlvbiIgOiAiUHJlZml4IGZvciB0aGUgZWxhc3RpYyBhdXRoZW50aWNhdGlvbiB0b2tlblxuXG5TZXRzIHRoZSBwcmVmaXggZm9yIHRoZSBwcm92aWRlZCBbZWxhc3RpY1NlYXJjaFRva2VuXShodHRwczovL2RvYy5sb2cxMHguY29tL3J1bi9pbnB1dC9hbmFseXplci9lbGFzdGljc2VhcmNoLyNlbGFzdGljc2VhcmNodG9rZW4pIHdoZW4gdXNpbmcgaXQgaW4gYW4gJ0F1dGhvcml6YXRpb24nIGhlYWRlci4gY29tbW9ubHkgdXNlZCB2YWx1ZXMgYnkgZGlmZmVyZW50IGVsYXN0aWMgdmVuZG9ycyBhcmUgJ0FwaUtleScgYW5kICdCZWFyZXInIChEZWZhdWx0OiBBcGlLZXkpIiwKICAgICAgICAgICAgImRlZmF1bHQiIDogIkFwaUtleSIKICAgICAgICAgIH0sCiAgICAgICAgICAicXVlcnkiIDogewogICAgICAgICAgICAidHlwZSIgOiBbCiAgICAgICAgICAgICAgInN0cmluZyIsCiAgICAgICAgICAgICAgIm51bGwiCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJtYXJrZG93bkRlc2NyaXB0aW9uIiA6ICJRdWVyeSB0byBwYXNzIHRvIHRoZSBlbGFzdGljIHNlcnZlclxuXG5TZXRzIHRoZSBlbGFzdGljIHF1ZXJ5IHRvIHJlcXVlc3QgcGFnaW5hdGVkIGRvY3VtZW50cyBmcm9tIHRoZSAgJy9fc2VhcmNoJyBSRVNUIGVuZHBvaW50LiBUaGUgZGVmYXVsdCBxdWVyeSAoZGVmaW5lZCBpbiAnZWxhc3RpY3NlYXJjaC9xdWVyeS50eHQnKSByZXRyaWV2ZXMgcGFnaW5hdGVkIHZhbHVlcyBzb3J0ZWQgaW4gZGVzYyBvcmRlciBieSBAdGltZXN0YW1wLCBzdGFydGluZyBmcm9tIHRoZSB2YWx1ZSBvZiAnbm93KCknLiIKICAgICAgICAgIH0sCiAgICAgICAgICAibWVzc2FnZUZpZWxkIiA6IHsKICAgICAgICAgICAgInR5cGUiIDogWwogICAgICAgICAgICAgICJzdHJpbmciLAogICAgICAgICAgICAgICJudWxsIgogICAgICAgICAgICBdLAogICAgICAgICAgICAibWFya2Rvd25EZXNjcmlwdGlvbiIgOiAiTmFtZSBvZiB0aGUgZmllbGQgdXNlZCB0byBleHRyYWN0IHRoZSBsb2cgbWVzc2FnZSBmcm9tIHJldHJpZXZlZCBkb2N1bWVudHNcblxuU2V0cyB0aGUgbmFtZSBvZiB0aGUgZmllbGQgdXNlZCB0byBleHRyYWN0IHRoZSBsb2cgbWVzc2FnZSBmcm9tIHJldHJpZXZlZCBkb2N1bWVudHMgKERlZmF1bHQ6IGxvZykiLAogICAgICAgICAgICAiZGVmYXVsdCIgOiAibG9nIgogICAgICAgICAgfSwKICAgICAgICAgICJ0aW1lc3RhbXBGaWVsZCIgOiB7CiAgICAgICAgICAgICJ0eXBlIiA6IFsKICAgICAgICAgICAgICAic3RyaW5nIiwKICAgICAgICAgICAgICAibnVsbCIKICAgICAgICAgICAgXSwKICAgICAgICAgICAgIm1hcmtkb3duRGVzY3JpcHRpb24iIDogIk5hbWUgb2YgdGhlIGZpZWxkIHVzZWQgdG8gc29ydCByZXRyaWV2ZWQgZG9jdW1lbnRzIGJ5XG5cblNldHMgdGhlIG5hbWUgb2YgdGhlIGZpZWxkIHVzZWQgdG8gc29ydCByZXRyaWV2ZWQgZG9jdW1lbnRzIGJ5IChEZWZhdWx0OiBAdGltZXN0YW1wKSIsCiAgICAgICAgICAgICJkZWZhdWx0IiA6ICJAdGltZXN0YW1wIgogICAgICAgICAgfSwKICAgICAgICAgICJzdGFydFRpbWUiIDogewogICAgICAgICAgICAidHlwZSIgOiBbCiAgICAgICAgICAgICAgInN0cmluZyIsCiAgICAgICAgICAgICAgIm51bGwiCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJtYXJrZG93bkRlc2NyaXB0aW9uIiA6ICJUaGUgc3RhcnQgb2YgdGhlIHRpbWUgcmFuZ2UsIGV4cHJlc3NlZCBhcyBhIHJlbGF0aXZlIHN0cmluZyAoaS5lLiwgXCJub3ctN2RcIikgb3IgdGhlIG51bWJlciBvZiBtaWxsaXNlY29uZHMgYWZ0ZXIgSmFuIDEsIDE5NzAgMDA6MDA6MDAgVVRDLlxuXG5TZXRzIHRoZSBzdGFydCBvZiB0aGUgdGltZSByYW5nZSwgZXhwcmVzc2VkIGFzIGEgcmVsYXRpdmUgc3RyaW5nIChpLmUuLCBcIm5vdy03ZFwiKSBvciB0aGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyBhZnRlciBKYW4gMSwgMTk3MCAwMDowMDowMCBVVEMuIFRoZSBxdWVyeSBpbmNsdWRlcyBldmVudHMgd2l0aCBhIHRpbWVzdGFtcCBlcXVhbCBvciBsYXRlciB0byB0aGlzIHZhbHVlLiIKICAgICAgICAgIH0sCiAgICAgICAgICAiZW5kVGltZSIgOiB7CiAgICAgICAgICAgICJ0eXBlIiA6IFsKICAgICAgICAgICAgICAic3RyaW5nIiwKICAgICAgICAgICAgICAibnVsbCIKICAgICAgICAgICAgXSwKICAgICAgICAgICAgIm1hcmtkb3duRGVzY3JpcHRpb24iIDogIlRoZSBlbmQgb2YgdGhlIHRpbWUgcmFuZ2UsIGV4cHJlc3NlZCBhcyBhIHJlbGF0aXZlIHN0cmluZyAoaS5lLiwgXCJub3ctN2RcIikgb3IgdGhlIG51bWJlciBvZiBtaWxsaXNlY29uZHMgYWZ0ZXIgSmFuIDEsIDE5NzAgMDA6MDA6MDAgVVRDXG5cblNldHMgdGhlIGVuZCBvZiB0aGUgdGltZSByYW5nZSwgZXhwcmVzc2VkIGFzIGEgcmVsYXRpdmUgc3RyaW5nIChpLmUuLCBcIm5vdy03ZFwiKSBvciB0aGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyBhZnRlciBKYW4gMSwgMTk3MCAwMDowMDowMCBVVEMuIFRoZSBxdWVyeSBleGNsdWRlcyBldmVudHMgd2l0aCBhIHRpbWVzdGFtcCBsYXRlciB0aGFuIHRoaXMgdmFsdWUuIgogICAgICAgICAgfSwKICAgICAgICAgICJ0YXJnZXRzIiA6IHsKICAgICAgICAgICAgInR5cGUiIDogWwogICAgICAgICAgICAgICJhcnJheSIsCiAgICAgICAgICAgICAgInN0cmluZyIsCiAgICAgICAgICAgICAgIm51bGwiCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJtYXJrZG93bkRlc2NyaXB0aW9uIiA6ICJMaXN0IG9mIGRhdGEgc3RyZWFtcywgaW5kaWNlcywgYW5kIGFsaWFzZXMgdG8gc2VhcmNoXG5cblNldHMgbGlzdCBvZiBkYXRhIHN0cmVhbXMsIGluZGljZXMsIGFuZCBhbGlhc2VzIHRvIHNlYXJjaC4gVG8gc2VhcmNoIGFsbCBkYXRhIHN0cmVhbXMgYW5kIGluZGljZXMsIG9taXQgdGhpcyBwYXJhbWV0ZXIgb3IgdXNlICcqJyBvciAnX2FsbCcuIiwKICAgICAgICAgICAgIml0ZW1zIiA6IHsKICAgICAgICAgICAgICAidHlwZSIgOiAic3RyaW5nIgogICAgICAgICAgICB9CiAgICAgICAgICB9LAogICAgICAgICAgImVuZHBvaW50IiA6IHsKICAgICAgICAgICAgInR5cGUiIDogWwogICAgICAgICAgICAgICJzdHJpbmciLAogICAgICAgICAgICAgICJudWxsIgogICAgICAgICAgICBdLAogICAgICAgICAgICAibWFya2Rvd25EZXNjcmlwdGlvbiIgOiAiTmFtZSBvZiBzZWFyY2ggUkVTVCBlbmRwb2ludFxuXG5TZXRzIHRoZSBuYW1lIG9mIHRoZSBzZWFyY2ggUkVTVCBlbmRwb2ludC4gKERlZmF1bHQ6IF9zZWFyY2gpIiwKICAgICAgICAgICAgImRlZmF1bHQiIDogIl9zZWFyY2giCiAgICAgICAgICB9LAogICAgICAgICAgInF1ZXJ5U2l6ZSIgOiB7CiAgICAgICAgICAgICJ0eXBlIiA6IFsKICAgICAgICAgICAgICAibnVtYmVyIiwKICAgICAgICAgICAgICAic3RyaW5nIiwKICAgICAgICAgICAgICAibnVsbCIKICAgICAgICAgICAgXSwKICAgICAgICAgICAgIm1hcmtkb3duRGVzY3JpcHRpb24iIDogIk51bWJlciBvZiBkb2N1bWVudHMgdG8gcmVhZCBwZXIgYmF0Y2ggZnJvbSB0aGUgZWxhc3RpYyBzZXJ2ZXJcblxuU2V0cyB0aGUgbnVtYmVyIG9mIGRvY3VtZW50cyB0byByZXRyaWV2ZSB3aXRoIGVhY2ggcGFnZSBvZiByZXN1bHRzLiAoQWNjZXB0cyBudW1iZXIgb3Igc3RyaW5nIHdpdGggJD0gcHJlZml4IGZvciBydW50aW1lIGV2YWx1YXRpb24pIChEZWZhdWx0OiA1MDApIiwKICAgICAgICAgICAgImRlZmF1bHQiIDogNTAwCiAgICAgICAgICB9LAogICAgICAgICAgInJldHJ5VGltZW91dCIgOiB7CiAgICAgICAgICAgICJ0eXBlIiA6IFsKICAgICAgICAgICAgICAibnVtYmVyIiwKICAgICAgICAgICAgICAic3RyaW5nIiwKICAgICAgICAgICAgICAibnVsbCIKICAgICAgICAgICAgXSwKICAgICAgICAgICAgIm1hcmtkb3duRGVzY3JpcHRpb24iIDogIkEgdGltZW91dCBwZXJpb2QgKGluIG1pbGxpc2Vjb25kcykgdG8gd2FpdCBmb3IgcXVlcnlpbmcgb2YgbmV3IGRhdGFcblxuRGV0ZXJtaW5lcyBob3cgbG9uZyB0byB3YWl0IHRvIGludm9rZSB0aGUgc2VhcmNoIGVuZHBvaW50IEFQSSBhZ2FpbiB0byBxdWVyeSBmb3IgbmV3IGRhdGEuIFNlZSBbZWxhc3RpYy1pbnB1dC5qc10oaHR0cHM6Ly9naXRodWIuY29tL2xvZy0xMHgvbW9kdWxlcy9ibG9iL21haW4vcGlwZWxpbmVzL3J1bi9tb2R1bGVzL2lucHV0L2FuYWx5emVyL2VsYXN0aWNzZWFyY2gvZWxhc3RpYy1pbnB1dC5qcykuIChBY2NlcHRzIG51bWJlciBvciBzdHJpbmcgd2l0aCAkPSBwcmVmaXggZm9yIHJ1bnRpbWUgZXZhbHVhdGlvbikgKERlZmF1bHQ6IDEwMDAwKSIsCiAgICAgICAgICAgICJkZWZhdWx0IiA6IDEwMDAwCiAgICAgICAgICB9LAogICAgICAgICAgInRvdGFsQnl0ZXNMaW1pdCIgOiB7CiAgICAgICAgICAgICJ0eXBlIiA6IFsKICAgICAgICAgICAgICAibnVtYmVyIiwKICAgICAgICAgICAgICAic3RyaW5nIiwKICAgICAgICAgICAgICAibnVsbCIKICAgICAgICAgICAgXSwKICAgICAgICAgICAgIm1hcmtkb3duRGVzY3JpcHRpb24iIDogIk1heGltdW0gdG90YWwgYnl0ZXMgdG8gcmVhZCBmcm9tIGlucHV0IGJlZm9yZSBjbG9zaW5nXG5cblNldHMgdGhlIG1heGltdW0gbnVtYmVyIG9mIGJ5dGVzIGEgdGFyZ2V0IHBpcGVsaW5lIGlucHV0IHdpbGwgcmVhZCBpbnRvIHRoZSBwaXBlbGluZS4gVGhpcyB2YWx1ZSBsaW1pdHMgdGhlIHZvbHVtZSBvZiBldmVudHMgdG8gcmVhZCBmcm9tIGEgbG9jYWwvcmVtb3RlIHNvdXJjZSAoZS5nLiwgbG9nIGFuYWx5emVyKS4gICBGb3IgZXhhbXBsZTogYGBgIHlhbWwgZWxhc3RpY1NlYXJjaFRvdGFsQnl0ZXNMaW1pdDogJD1wYXJzZUJ5dGVzKFwiMUdCXCIpIGBgYCAoQWNjZXB0cyBudW1iZXIgb3Igc3RyaW5nIHdpdGggJD0gcHJlZml4IGZvciBydW50aW1lIGV2YWx1YXRpb24pIgogICAgICAgICAgfSwKICAgICAgICAgICJ0b3RhbEV2ZW50c0xpbWl0IiA6IHsKICAgICAgICAgICAgInR5cGUiIDogWwogICAgICAgICAgICAgICJudW1iZXIiLAogICAgICAgICAgICAgICJzdHJpbmciLAogICAgICAgICAgICAgICJudWxsIgogICAgICAgICAgICBdLAogICAgICAgICAgICAibWFya2Rvd25EZXNjcmlwdGlvbiIgOiAiTWF4aW11bSB0b3RhbCBldmVudHMgdG8gcmVhZCBmcm9tIGlucHV0IGJlZm9yZSBjbG9zaW5nXG5cblNldHMgdGhlIG1heGltdW0gbnVtYmVyIG9mIGV2ZW50cyBhIHRhcmdldCBwaXBlbGluZSBpbnB1dCB3aWxsIHJlYWQgaW50byB0aGUgcGlwZWxpbmUuIFRoaXMgdmFsdWUgbGltaXRzIHRoZSB2b2x1bWUgb2YgZXZlbnRzIHRvIHJlYWQgZnJvbSBhIGxvY2FsL3JlbW90ZSBzb3VyY2UgKGUuZy4sIGxvZyBhbmFseXplcikuIChBY2NlcHRzIG51bWJlciBvciBzdHJpbmcgd2l0aCAkPSBwcmVmaXggZm9yIHJ1bnRpbWUgZXZhbHVhdGlvbikgKERlZmF1bHQ6IDEwMDAwKSIsCiAgICAgICAgICAgICJkZWZhdWx0IiA6IDEwMDAwCiAgICAgICAgICB9LAogICAgICAgICAgInF1ZXJ5SW50ZXJ2YWwiIDogewogICAgICAgICAgICAidHlwZSIgOiBbCiAgICAgICAgICAgICAgIm51bWJlciIsCiAgICAgICAgICAgICAgInN0cmluZyIsCiAgICAgICAgICAgICAgIm51bGwiCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJtYXJrZG93bkRlc2NyaXB0aW9uIiA6ICJRdWVyeSBpbnRlcnZhbCAoaW4gbWlsbGlzZWNvbmRzKSBmb3IgY2hlY2tpbmcgbmV3IGRhdGEgZnJvbSByZW1vdGUgc291cmNlXG5cblNldHMgdGhlIGludGVydmFsIGJldHdlZW4gcXVlcmllcyB0byB0aGUgcmVtb3RlIEVsYXN0aWNzZWFyY2ggQVBJLiBUaGlzIGNvbnRyb2xzIGhvdyBmcmVxdWVudGx5IHRoZSBpbnB1dCBwb2xscyBmb3IgbmV3IGxvZyBkYXRhLiAgRm9yIGV4YW1wbGU6IGBgYCB5YW1sIGVsYXN0aWNTZWFyY2hRdWVyeUludGVydmFsOiAkPXBhcnNlRHVyYXRpb24oXCI1c1wiKSBgYGAgKEFjY2VwdHMgbnVtYmVyIG9yIHN0cmluZyB3aXRoICQ9IHByZWZpeCBmb3IgcnVudGltZSBldmFsdWF0aW9uKSAoRGVmYXVsdDogMjAwMCkiLAogICAgICAgICAgICAiZGVmYXVsdCIgOiAyMDAwCiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICAicmVxdWlyZWQiIDogWwogICAgICAgICAgImhvc3QiLAogICAgICAgICAgInRva2VuIgogICAgICAgIF0KICAgICAgfQogICAgfQogIH0sCiAgImFkZGl0aW9uYWxQcm9wZXJ0aWVzIiA6IHRydWUKfQ==</template>

    ```yaml
    # 🔟❎ 'run' Coralogix ElasticSearch input configuration
    
    # This configuration defines a Coralogix ElasticSearch input from
    # which events are read and transformed into TenXObjects for aggregation and reporting.
    
    # Set the 10x pipeline to 'run'
    tenx: run
    
    # =============================== Dependencies ================================
    
    include: run/modules/input/analyzer/elasticsearch
    
    # ============================== Coralogix Options ============================
    
    # Multiple Coralogix inputs can be defined below
    elasticSearch:
    
        # 'name' sets a unique logical name across all pipeline inputs
      - name: coralogixElasticSearch
    
        # ------------------------- Connection Options ----------------------------
    
        # 'token' must be set to the Coralogix send data API key
        #  To learn more see: https://coralogix.com/docs/user-guides/account-management/api-keys/send-your-data-api-key/
        token: null # (❗ REQUIRED)
        
        # 'authorizationKeyName' must be set to match Coralogix auth type
        #  To learn more see: https://coralogix.com/docs/user-guides/visualizations/hosted-opensearch-view/opensearch-api/
        authorizationKeyName: Bearer
    
        # 'host' and 'port' set the Coralogix service address to connect to
        host: api.coralogix.us/data/os-api
    
        # --------------------------- Query Options -------------------------------
    
        # 'targets' lists data streams, indices, and aliases to search.
        #  To search all data streams and indices, use '*' or '_all.'
        targets:
          - '*'
    
        # 'startTime' and 'endTime' set the time frame of the query.
        startTime: now-5m
        endTime: now
    
        # --------------------------- Backpressure Options -----------------------
    
        # 'queryInterval' sets the interval between queries to the remote API
        queryInterval: $=parseDuration("2s")
    
        # 'totalDuration' sets the max duration to try reading from the the remote input 
        totalDuration: $=parseDuration("5min")
    
        # 'totalBytesLimit' sets the max total bytes to read from the remote input
        totalBytesLimit: $=parseBytes("50MB")
    
        # 'totalEventsLimit' sets the max number of events to read the remote input
        totalEventsLimit: 10000
    
        # --------------------------- Ancillary Options ---------------------------
    
        # 'printProgress' controls whether to print a progress gage to the console
        #  This option helps debug and test the input
        printProgress: $=!TenXEnv.get("quiet")
    
        # --------------------------- Advanced Options ----------------------------
    
        # 'querySize' sets the number of documents retrieved with each results page.
        querySize: 500
    
        # 'query' sets the elastic query to request paginated documents from the  '/_search' REST endpoint.
        #  The default query (defined in 'input/analyzer/elasticsearch/query.txt')
        #  retrieves paginated values sorted in desc order by @timestamp
        query: null
        
        # 'timestampField' specifies the name of the field to get the event timestamp from.
        timestampField: coralogix.timestamp
    
        # 'messageField' defines the name of the field to extract from the retrieved
        #  documents containing the log message.
        messageField: log
    ```

## :material-menu: Options

Specify the options below to [configure](/config "configure") multiple ElasticSearch input:

|Name|Description|Category|
|---|---|---|
|[elasticSearchName](#elasticsearchname "logical name for this elastic input")|Logical name for this elastic input|General|
|[elasticSearchEnabled](#elasticsearchenabled "sets whether this input is enabled")|Sets whether this input is enabled|General|
|[elasticSearchPrintProgress](#elasticsearchprintprogress "sets whether this input prints throughput stats to the console")|Sets whether this input prints throughput stats to the console|General|
|[elasticSearchTotalDuration](#elasticsearchtotalduration "sets maximum time to query the backend")|Sets maximum time to query the backend|General|
|[elasticSearchExtractors](#elasticsearchextractors "list of extractors to apply on the events returning from the query")|List of extractors to apply on the events returning from the query|General|
|[elasticSearchHost](#elasticsearchhost "elastic host address")|Elastic host address|Authentication|
|[elasticSearchPort](#elasticsearchport "elastic server port")|Elastic server port|Authentication|
|[elasticSearchProtocol](#elasticsearchprotocol "defines the protocol to connect to ElasticSearch")|Defines the protocol to connect to ElasticSearch|Authentication|
|[elasticSearchToken](#elasticsearchtoken "elastic authentication token")|Elastic authentication token|Authentication|
|[elasticSearchAuthorizationKeyName](#elasticsearchauthorizationkeyname "prefix for the elastic authentication token")|Prefix for the elastic authentication token|Authentication|
|[elasticSearchQuery](#elasticsearchquery "query to pass to the elastic server")|Query to pass to the elastic server|Query|
|[elasticSearchMessageField](#elasticsearchmessagefield "name of the field used to extract the log message from retrieved documents")|Name of the field used to extract the log message from retrieved documents|Query|
|[elasticSearchTimestampField](#elasticsearchtimestampfield "name of the field used to sort retrieved documents by")|Name of the field used to sort retrieved documents by|Query|
|[elasticSearchStartTime](#elasticsearchstarttime "The start of the time range, expressed as a relative string (i.e., \"now-7d\") or the number of milliseconds after Jan 1, 1970 00:00:00 UTC.")|The start of the time range, expressed as a relative string (i.e., "now-7d") or the number of milliseconds after Jan 1, 1970 00:00:00 UTC.|Query|
|[elasticSearchEndTime](#elasticsearchendtime "The end of the time range, expressed as a relative string (i.e., \"now-7d\") or the number of milliseconds after Jan 1, 1970 00:00:00 UTC")|The end of the time range, expressed as a relative string (i.e., "now-7d") or the number of milliseconds after Jan 1, 1970 00:00:00 UTC|Query|
|[elasticSearchTargets](#elasticsearchtargets "list of data streams, indices, and aliases to search")|List of data streams, indices, and aliases to search|Query|
|[elasticSearchEndpoint](#elasticsearchendpoint "name of search REST endpoint")|Name of search REST endpoint|Query|
|[elasticSearchQuerySize](#elasticsearchquerysize "number of documents to read per batch from the elastic server")|Number of documents to read per batch from the elastic server|Query|
|[elasticSearchRetryTimeout](#elasticsearchretrytimeout "a timeout period (in milliseconds) to wait for querying of new data")|A timeout period (in milliseconds) to wait for querying of new data|Query|
|[elasticSearchTotalBytesLimit](#elasticsearchtotalbyteslimit "maximum total bytes to read from input before closing")|Maximum total bytes to read from input before closing|Backpressure|
|[elasticSearchTotalEventsLimit](#elasticsearchtotaleventslimit "maximum total events to read from input before closing")|Maximum total events to read from input before closing|Backpressure|
|[elasticSearchQueryInterval](#elasticsearchqueryinterval "query interval (in milliseconds) for checking new data from remote source")|Query interval (in milliseconds) for checking new data from remote source|Backpressure|

### General

#### :material-menu-right-outline:**`elasticSearchName`**

Logical name for this elastic input.

|Type|Default|Category|
|---|---|---|
|String|""|General|

Sets a logical name (e.g., 'myElastic') for this input.
The [inputName](https://doc.log10x.com/api/js/#TenXBaseObject+inputName "Returns the context in which the current object, template or summary was created.") field
returns this value at run time to allow for identifying and operating on instances originating from this input.


#### :material-menu-right-outline:**`elasticSearchEnabled`**

Sets whether this input is enabled.

|Type|Default|Category|
|---|---|---|
|Boolean|true|General|

Sets whether to open the input stream.
To enable this input only when a 'elasticSearchHost' startup argument value is truthy, use:

```yaml
elasticSearchEnabled: $=TenXEnv.get("elasticSearchHost")
```

To learn more see [TenXEnv.get](https://doc.log10x.com/api/js/#TenXEnv.get).


#### :material-menu-right-outline:**`elasticSearchPrintProgress`**

Sets whether this input prints throughput stats to the console.

|Type|Default|Category|
|---|---|---|
|Boolean|false|General|

Sets whether this input prints throughput stats to the console
for testing an integration to a remote endpoint.


#### :material-menu-right-outline:**`elasticSearchTotalDuration`**

Sets maximum time to query the backend.

|Type|Default|Category|
|---|---|---|
|String|5min|General|

Sets the maximum time the pipeline will continue to query the backend before exiting.
For example, setting this to '1min' means that queries to the backend will stop after 1 minute has passed.


#### :material-menu-right-outline:**`elasticSearchExtractors`**

List of extractors to apply on the events returning from the query.

|Type|Default|Category|
|---|---|---|
|List|\[\]|General|

Sets list of extractor names which will work on the events returning from the query.
For more info on extractors, see: https://doc.log10x.com/run/input/extract.


### Authentication

#### :material-menu-right-outline:**`elasticSearchHost`**

Elastic host address.

|Type|Required|Category|
|---|---|---|
|String|✔|Authentication|

Set the elastic host address to connect to. Examples:
coralogix-esapi.coralogix.com
api.logz.io
<deployment-id>.us-central1.gcp.cloud.es.io.


#### :material-menu-right-outline:**`elasticSearchPort`**

Elastic server port.

|Type|Default|Category|
|---|---|---|
|Number|0|Authentication|

Sets the elastic server port to connect to (e.g., '9443')
The port value is not needed if [elasticSearchHost](https://doc.log10x.com/run/input/analyzer/elasticsearch/#elasticsearchhost "elastic host address") value encapsulates the port.


#### :material-menu-right-outline:**`elasticSearchProtocol`**

Defines the protocol to connect to ElasticSearch.

|Type|Default|Category|
|---|---|---|
|String|https|Authentication|

Sets the protocol to connect to elastic with (e.g., `https`).


#### :material-menu-right-outline:**`elasticSearchToken`**

Elastic authentication token.

|Type|Required|Category|
|---|---|---|
|String|✔|Authentication|

Sets the API token used to authenticate against the target elastic cluster.
To learn more see: [api tokens](https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-get-token.html){target="\_blank"}.


#### :material-menu-right-outline:**`elasticSearchAuthorizationKeyName`**

Prefix for the elastic authentication token.

|Type|Default|Category|
|---|---|---|
|String|ApiKey|Authentication|

Sets the prefix for the provided [elasticSearchToken](https://doc.log10x.com/run/input/analyzer/elasticsearch/#elasticsearchtoken "elastic authentication token") when using it in an 'Authorization' header.
commonly used values by different elastic vendors are 'ApiKey' and 'Bearer'.


### Query

#### :material-menu-right-outline:**`elasticSearchQuery`**

Query to pass to the elastic server.

|Type|Default|Category|
|---|---|---|
|String|""|Query|

Sets the elastic query to request paginated documents from the  '/\_search' REST endpoint.
The default query (defined in 'elasticsearch/query.txt') retrieves paginated
values sorted in desc order by @timestamp, starting from the value of 'now()'.


#### :material-menu-right-outline:**`elasticSearchMessageField`**

Name of the field used to extract the log message from retrieved documents.

|Type|Default|Category|
|---|---|---|
|String|log|Query|

Sets the name of the field used to extract the log message from retrieved documents.


#### :material-menu-right-outline:**`elasticSearchTimestampField`**

Name of the field used to sort retrieved documents by.

|Type|Default|Category|
|---|---|---|
|String|@timestamp|Query|

Sets the name of the field used to sort retrieved documents by.


#### :material-menu-right-outline:**`elasticSearchStartTime`**

The start of the time range, expressed as a relative string (i.e., "now-7d") or the number of milliseconds after Jan 1, 1970 00:00:00 UTC.

|Type|Default|Category|
|---|---|---|
|String|""|Query|

Sets the start of the time range, expressed as a relative string (i.e., "now-7d") or the
number of milliseconds after Jan 1, 1970 00:00:00 UTC.
The query includes events with a timestamp equal or later to this value.


#### :material-menu-right-outline:**`elasticSearchEndTime`**

The end of the time range, expressed as a relative string (i.e., "now-7d") or the number of milliseconds after Jan 1, 1970 00:00:00 UTC.

|Type|Default|Category|
|---|---|---|
|String|""|Query|

Sets the end of the time range, expressed as a relative string (i.e., "now-7d") or the
number of milliseconds after Jan 1, 1970 00:00:00 UTC.
The query excludes events with a timestamp later than this value.


#### :material-menu-right-outline:**`elasticSearchTargets`**

List of data streams, indices, and aliases to search.

|Type|Default|Category|
|---|---|---|
|List|\[\]|Query|

Sets list of data streams, indices, and aliases to search.
To search all data streams and indices, omit this parameter or use '\*' or '\_all'.


#### :material-menu-right-outline:**`elasticSearchEndpoint`**

Name of search REST endpoint.

|Type|Default|Category|
|---|---|---|
|String|\_search|Query|

Sets the name of the search REST endpoint.


#### :material-menu-right-outline:**`elasticSearchQuerySize`**

Number of documents to read per batch from the elastic server.

|Type|Default|Category|
|---|---|---|
|Number|500|Query|

Sets the number of documents to retrieve with each page of results.


#### :material-menu-right-outline:**`elasticSearchRetryTimeout`**

A timeout period (in milliseconds) to wait for querying of new data.

|Type|Default|Category|
|---|---|---|
|Number|10000|Query|

Determines how long to wait to invoke the search endpoint API again
to query for new data. See [elastic-input.js](https://github.com/log-10x/modules/blob/main/pipelines/run/modules/input/analyzer/elasticsearch/elastic-input.js){target="\_blank"}.


### Backpressure

#### :material-menu-right-outline:**`elasticSearchTotalBytesLimit`**

Maximum total bytes to read from input before closing.

|Type|Default|Category|
|---|---|---|
|Number|50000000|Backpressure|

sets the maximum number of bytes a target pipeline input will read into the pipeline.
This value limits the volume of events to read from a local/remote source (e.g., log analyzer).

For example:

```yaml
elasticSearchTotalBytesLimit: $=parseBytes("1GB")
```


#### :material-menu-right-outline:**`elasticSearchTotalEventsLimit`**

Maximum total events to read from input before closing.

|Type|Default|Category|
|---|---|---|
|Number|10000|Backpressure|

Sets the maximum number of events a target pipeline input will read into the pipeline.
This value limits the volume of events to read from a local/remote source (e.g., log analyzer).


#### :material-menu-right-outline:**`elasticSearchQueryInterval`**

Query interval (in milliseconds) for checking new data from remote source.

|Type|Default|Category|
|---|---|---|
|Number|2000|Backpressure|

sets the interval between queries to the remote Elasticsearch API.
This controls how frequently the input polls for new log data.

For example:

```yaml
elasticSearchQueryInterval: $=parseDuration("5s")
```


<br/>:material-github: This module is defined in [elasticsearch/module.yaml](https://github.com/log-10x/modules/tree/main/pipelines/run/modules/input/analyzer/elasticsearch/module.yaml "elasticsearch/module.yaml"){target="\_blank"}.

