Elastic
Publish TenXSummary instance values as metric counters to an ElasticSearch Micrometer registry.
Availability
This implementation is only available by default in the 10x Engine Cloud flavor to reduce the footprint of the edge/JIT-edge flavors.
Querying Metrics
The Micrometer ElasticMeterRegistry disables _source storage for metrics documents to optimize storage. This means individual metric documents cannot be retrieved directly. Use Elasticsearch aggregation queries to analyze the metrics:
Configuration
To configure the ElasticSearch metrics output module, Edit these settings.
Below is the default configuration from: elastic/config.yaml (* Required Fields).
ewogICJ0eXBlIiA6ICJvYmplY3QiLAogICJwcm9wZXJ0aWVzIiA6IHsKICAgICJpbmNsdWRlIiA6IHsKICAgICAgInR5cGUiIDogInN0cmluZyIKICAgIH0sCiAgICAidGVueCIgOiB7CiAgICAgICJ0eXBlIiA6ICJzdHJpbmciCiAgICB9LAogICAgImVsYXN0aWMiIDogewogICAgICAidHlwZSIgOiAiYXJyYXkiLAogICAgICAiaXRlbXMiIDogewogICAgICAgICJ0eXBlIiA6ICJvYmplY3QiLAogICAgICAgICJhZGRpdGlvbmFsUHJvcGVydGllcyIgOiBmYWxzZSwKICAgICAgICAicHJvcGVydGllcyIgOiB7CiAgICAgICAgICAiZW5hYmxlZCIgOiB7CiAgICAgICAgICAgICJ0eXBlIiA6IFsKICAgICAgICAgICAgICAiYm9vbGVhbiIsCiAgICAgICAgICAgICAgInN0cmluZyIKICAgICAgICAgICAgXSwKICAgICAgICAgICAgIm1hcmtkb3duRGVzY3JpcHRpb24iIDogIkVuYWJsZSB0aGlzIG91dHB1dFxuXG5FbmFibGUgb3IgZGlzYWJsZSB0aGlzIG91dHB1dC4gKEFjY2VwdHMgYm9vbGVhbiBvciBzdHJpbmcgd2l0aCAkPSBwcmVmaXggZm9yIHJ1bnRpbWUgZXZhbHVhdGlvbikgKERlZmF1bHQ6IHRydWUpIiwKICAgICAgICAgICAgImRlZmF1bHQiIDogdHJ1ZQogICAgICAgICAgfSwKICAgICAgICAgICJuYW1lRmllbGQiIDogewogICAgICAgICAgICAidHlwZSIgOiBbCiAgICAgICAgICAgICAgInN0cmluZyIsCiAgICAgICAgICAgICAgIm51bGwiCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJtYXJrZG93bkRlc2NyaXB0aW9uIiA6ICJOYW1lIG9mIHRoZSBUZW5YU3VtbWFyeSBmaWVsZCBpZGVudGlmeWluZyB0aGUgbWV0cmljXG5cbkRlZmluZXMgdGhlIG5hbWUgb2YgdGhlIFRlblhTdW1tYXJ5IGZpZWxkIHdob3NlIHZhbHVlIGlkZW50aWZpZXMgYSBtZXRyaWMgY291bnRlci4gRGVmYXVsdHMgdG8gdGhlIFtzdW1tYXJ5VmFsdWVzXShodHRwczovL2RvYy5sb2cxMHguY29tL2FwaS9qcy8jVGVuWFN1bW1hcnkrc3VtbWFyeVZhbHVlcykgZmllbGQgd2hpY2ggaG9sZHMgdGhlIHZhbHVlKHMpIGJ5IHdoaWNoIFRlblhPYmplY3RzIGFyZSBncm91cGVkIGludG8gdGhlIGN1cnJlbnQgVGVuWFN1bW1hcnkgaW5zdGFuY2UuIFRvIGxlYXJuIG1vcmUgc2VlIFttaWNyb21ldGVyIGNvdW50ZXJzXShodHRwczovL3d3dy5iYWVsZHVuZy5jb20vbWljcm9tZXRlciMyLWNvdW50ZXIpIChEZWZhdWx0OiBbc3VtbWFyeVZhbHVlc10oaHR0cHM6Ly9kb2MubG9nMTB4LmNvbS9hcGkvanMvI1RlblhTdW1tYXJ5K3N1bW1hcnlWYWx1ZXMpKSIsCiAgICAgICAgICAgICJkZWZhdWx0IiA6ICJbc3VtbWFyeVZhbHVlc10oaHR0cHM6Ly9kb2MubG9nMTB4LmNvbS9hcGkvanMvI1RlblhTdW1tYXJ5K3N1bW1hcnlWYWx1ZXMpIgogICAgICAgICAgfSwKICAgICAgICAgICJjb3VudGVyRmllbGRzIiA6IHsKICAgICAgICAgICAgInR5cGUiIDogWwogICAgICAgICAgICAgICJhcnJheSIsCiAgICAgICAgICAgICAgIm51bGwiCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJtYXJrZG93bkRlc2NyaXB0aW9uIiA6ICJOYW1lcyBvZiB0aGUgVGVuWFN1bW1hcnkgZmllbGRzIHVzZWQgdG8gaW5jcmVtZW50IHRoZSBtZXRyaWMgY291bnRlciB2YWx1ZVxuXG5EZWZpbmVzIHRoZSBuYW1lIG9mIHRoZSBUZW5YU3VtbWFyeSBmaWVsZCBieSB3aG9zZSB2YWx1ZSB0byBpbmNyZW1lbnQgdGhlIGNvdW50ZXIuIiwKICAgICAgICAgICAgIml0ZW1zIiA6IHsKICAgICAgICAgICAgICAidHlwZSIgOiAic3RyaW5nIgogICAgICAgICAgICB9CiAgICAgICAgICB9LAogICAgICAgICAgInRhZ0ZpZWxkcyIgOiB7CiAgICAgICAgICAgICJ0eXBlIiA6IFsKICAgICAgICAgICAgICAiYXJyYXkiLAogICAgICAgICAgICAgICJudWxsIgogICAgICAgICAgICBdLAogICAgICAgICAgICAibWFya2Rvd25EZXNjcmlwdGlvbiIgOiAiTGlzdCBvZiBUZW5YU3VtbWFyeSBmaWVsZHMgdG8gdXNlIGFzIG1ldHJpYyB0YWcgdmFsdWVzXG5cbkRlZmluZXMgdGhlIFRlblhTdW1tYXJ5IGZpZWxkIG5hbWVzIHRvIHVzZSBhcyBgdGFnYCB2YWx1ZXMuIFRhZ3MgYXJlIGRpbWVuc2lvbnMgdGhhdCBlbmFibGUgc2xpY2luZyBhIHBhcnRpY3VsYXIgbmFtZWQgbWV0cmljIHRvIGRyaWxsIGRvd24gdG8gcmVhc29uIGFib3V0IGl0cyB2YWx1ZS4gVG8gbGVhcm4gbW9yZSBzZWUgW21pY3JvbWV0ZXIgdGFnc10oaHR0cHM6Ly93d3cuYmFlbGR1bmcuY29tL21pY3JvbWV0ZXIjMS10YWdzKSIsCiAgICAgICAgICAgICJpdGVtcyIgOiB7CiAgICAgICAgICAgICAgInR5cGUiIDogInN0cmluZyIKICAgICAgICAgICAgfQogICAgICAgICAgfSwKICAgICAgICAgICJ0YWdGaWVsZE5hbWVzIiA6IHsKICAgICAgICAgICAgInR5cGUiIDogWwogICAgICAgICAgICAgICJhcnJheSIsCiAgICAgICAgICAgICAgIm51bGwiCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJtYXJrZG93bkRlc2NyaXB0aW9uIiA6ICJMaXN0IG9mIGN1c3RvbSBuYW1lcyB0byB1c2UgZm9yIFRlblhTdW1tYXJ5IGZpZWxkcy5cblxuRGVmaW5lcyB0aGUgYSBsaXN0IG9mIGN1c3RvbSBuYW1lcyB0byBnaXZlIGZpZWxkcyB3aGVuIHJlcG9ydGluZyB0aGVtLiBGb3JtYXQgYXMgYSBsaXN0IG9mIG5hbWUxLCBjdXN0b20xLCBuYW1lMiwgY3VzdG9tMi4gIEZvciBleGFtcGxlLCB0byBzZXQgYSBjdXN0b20gbmFtZSBvZiAnTXktQ3VzdG9tLUZpZWxkJyB0byBhbiBleGlzdGluZyAnaW50cmluc2ljLWZpZWxkJzogYGBgIHlhbWwgZWxhc3RpYzogICB0YWdGaWVsZE5hbWVzOiAgICAgLSBpbnRyaW5zaWMtZmllbGQgICAgIC0gTXktQ3VzdG9tLUZpZWxkIiwKICAgICAgICAgICAgIml0ZW1zIiA6IHsKICAgICAgICAgICAgICAidHlwZSIgOiAic3RyaW5nIgogICAgICAgICAgICB9CiAgICAgICAgICB9LAogICAgICAgICAgImZpbHRlciIgOiB7CiAgICAgICAgICAgICJ0eXBlIiA6IFsKICAgICAgICAgICAgICAic3RyaW5nIiwKICAgICAgICAgICAgICAibnVsbCIKICAgICAgICAgICAgXSwKICAgICAgICAgICAgIm1hcmtkb3duRGVzY3JpcHRpb24iIDogIkEgSmF2YVNjcmlwdCBleHByZXNzaW9uIGFuIFRlblhTdW1tYXJ5IG11c3QgZXZhbHVhdGUgYXMgJ3RydXRoeScgYWdhaW5zdCB0byBiZSB3cml0dGVuIHRvIHRoaXMgb3V0cHV0XG5cblNwZWNpZmllcyBhIEphdmFTY3JpcHQgZXhwcmVzc2lvbiB0aGF0IGFuIFRlblhTdW1tYXJ5IG11c3QgZXZhbHVhdGUgYXMgdHJ1dGh5IHRvIHdyaXRlIGl0cyBpbnN0YW5jZS90ZW1wbGF0ZSBmaWVsZCB2YWx1ZXMgdG8gdGhlIHRhcmdldCBjb3VudGVyLiAgRm9yIGV4YW1wbGUsIHRvIG9ubHkgZW1pdCBUZW5YU3VtbWFyaWVzIHByb2R1Y2VkIGJ5IHRoZSAnbXlNZXRyaWMnIGFnZ3JlZ2F0b3IsIHNwZWNpZnk6IGBgYCB5YW1sIGVsYXN0aWM6ICAgZmlsdGVyOiB0aGlzLmlucHV0TmFtZSA9PSBcIm15TWV0cmljXCIgYGBgICBUbyBsZWFybiBtb3JlIHNlZSBbaW5wdXROYW1lXShodHRwczovL2RvYy5sb2cxMHguY29tL2FwaS9qcy8jVGVuWEJhc2VPYmplY3QraW5wdXROYW1lKSIKICAgICAgICAgIH0sCiAgICAgICAgICAibWF4Q2FyZGluYWxpdHkiIDogewogICAgICAgICAgICAidHlwZSIgOiBbCiAgICAgICAgICAgICAgIm51bWJlciIsCiAgICAgICAgICAgICAgInN0cmluZyIKICAgICAgICAgICAgXSwKICAgICAgICAgICAgIm1hcmtkb3duRGVzY3JpcHRpb24iIDogIk1heGltdW0gbnVtYmVyIG9mIHVuaXF1ZSBtZXRyaWMgY29tYmluYXRpb25zIGFsbG93ZWRcblxuU2V0cyB0aGUgbWF4aW11bSBudW1iZXIgb2YgdW5pcXVlIG1ldHJpYyBjb21iaW5hdGlvbnMgKGNhcmRpbmFsaXR5KSBhbGxvd2VkIGZvciB0aGlzIG91dHB1dC4gV2hlbiBleGNlZWRlZCwgbWV0cmljcyB3aWxsIGJlIGRyb3BwZWQgdG8gcHJldmVudCBleGNlc3NpdmUgY2FyZGluYWxpdHkuIChBY2NlcHRzIG51bWJlciBvciBzdHJpbmcgd2l0aCAkPSBwcmVmaXggZm9yIHJ1bnRpbWUgZXZhbHVhdGlvbikgKERlZmF1bHQ6IDUwMCkiLAogICAgICAgICAgICAiZGVmYXVsdCIgOiA1MDAKICAgICAgICAgIH0sCiAgICAgICAgICAic3RlcCIgOiB7CiAgICAgICAgICAgICJ0eXBlIiA6IFsKICAgICAgICAgICAgICAic3RyaW5nIiwKICAgICAgICAgICAgICAibnVsbCIKICAgICAgICAgICAgXSwKICAgICAgICAgICAgIm1hcmtkb3duRGVzY3JpcHRpb24iIDogIlRoZSBpbnRlcnZhbCBhdCB3aGljaCB0byBwdWJsaXNoIG1ldHJpY3MgdG8gb3V0cHV0XG5cblNldHMgdGhlIGludGVydmFsIGF0IHdoaWNoIHRvIHB1Ymxpc2ggbWV0cmljcyB0byB0aGUgdGltZS1zZXJpZXMgZGVzdGluYXRpb24gKGUuZy4sICcxbScpLiBUbyBsZWFybiBtb3JlIHNlZSBbcmF0ZS1hZ2dyZWdhdGlvbl0oaHR0cHM6Ly9taWNyb21ldGVyLmlvL2RvY3MvY29uY2VwdHMjcmF0ZS1hZ2dyZWdhdGlvbikgKERlZmF1bHQ6IDEgbWludXRlLikiLAogICAgICAgICAgICAiZGVmYXVsdCIgOiAiMSBtaW51dGUuIgogICAgICAgICAgfSwKICAgICAgICAgICJob3N0IiA6IHsKICAgICAgICAgICAgInR5cGUiIDogWwogICAgICAgICAgICAgICJzdHJpbmciLAogICAgICAgICAgICAgICJudWxsIgogICAgICAgICAgICBdLAogICAgICAgICAgICAibWFya2Rvd25EZXNjcmlwdGlvbiIgOiAiSG9zdCB0byBzZW5kIG1ldHJpY3MgdG9cblxuU2V0cyB0aGUgaG9zdCB0byBzZW5kIG1ldHJpY3MgdG8uIChEZWZhdWx0OiBodHRwOi8vbG9jYWxob3N0OjkyMDApIiwKICAgICAgICAgICAgImRlZmF1bHQiIDogImh0dHA6Ly9sb2NhbGhvc3Q6OTIwMCIKICAgICAgICAgIH0sCiAgICAgICAgICAiYXBpS2V5Q3JlZGVudGlhbHMiIDogewogICAgICAgICAgICAidHlwZSIgOiBbCiAgICAgICAgICAgICAgInN0cmluZyIsCiAgICAgICAgICAgICAgIm51bGwiCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJtYXJrZG93bkRlc2NyaXB0aW9uIiA6ICJCYXNlNjQtZW5jb2RlZCBjcmVkZW50aWFscyBzdHJpbmdcblxuU2V0cyBhIGJhc2U2NC1lbmNvZGVkIGNyZWRlbnRpYWxzIHN0cmluZyBUbyBsZWFybiBtb3JlIHNlZTogW0VsYXN0aWMgY3JlZGVudGlhbHNdKGh0dHBzOi8vd3d3LmVsYXN0aWMuY28vZ3VpZGUvZW4vZWxhc3RpY3NlYXJjaC9yZWZlcmVuY2UvY3VycmVudC9zZWN1cml0eS1hcGktY3JlYXRlLWFwaS1rZXkuaHRtbCkiCiAgICAgICAgICB9LAogICAgICAgICAgInVzZXJOYW1lIiA6IHsKICAgICAgICAgICAgInR5cGUiIDogWwogICAgICAgICAgICAgICJzdHJpbmciLAogICAgICAgICAgICAgICJudWxsIgogICAgICAgICAgICBdLAogICAgICAgICAgICAibWFya2Rvd25EZXNjcmlwdGlvbiIgOiAiQmFzaWMgQXV0aGVudGljYXRpb24gdXNlcm5hbWVcblxuU2V0cyB0aGUgdGhlIEJhc2ljIEF1dGhlbnRpY2F0aW9uIHVzZXJuYW1lLiBJZiAnZWxhc3RpY0FwaUtleUNyZWRlbnRpYWxzJyBub3QgaXMgc2V0LCBpdCB3aWxsIGJlIHVzZWQgaW5zdGVhZCIKICAgICAgICAgIH0sCiAgICAgICAgICAicGFzc3dvcmQiIDogewogICAgICAgICAgICAidHlwZSIgOiBbCiAgICAgICAgICAgICAgInN0cmluZyIsCiAgICAgICAgICAgICAgIm51bGwiCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJtYXJrZG93bkRlc2NyaXB0aW9uIiA6ICJCYXNpYyBBdXRoZW50aWNhdGlvbiBwYXNzd29yZFxuXG5TZXRzIGEgQmFzaWMgQXV0aGVudGljYXRpb24gcGFzc3dvcmQuIElmICdlbGFzdGljQXBpS2V5Q3JlZGVudGlhbHMnIGlzIG5vdCBzZXQgaXQgd2lsbCBiZSB1c2VkIGluc3RlYWQiCiAgICAgICAgICB9LAogICAgICAgICAgImluZGV4IiA6IHsKICAgICAgICAgICAgInR5cGUiIDogWwogICAgICAgICAgICAgICJzdHJpbmciLAogICAgICAgICAgICAgICJudWxsIgogICAgICAgICAgICBdLAogICAgICAgICAgICAibWFya2Rvd25EZXNjcmlwdGlvbiIgOiAiVGhlIGluZGV4IG5hbWUgdG8gd3JpdGUgbWV0cmljcyB0b1xuXG5TZXRzIHRoZSBpbmRleCBuYW1lIHRvIHdyaXRlIG1ldHJpY3MgdG8uIChEZWZhdWx0OiBtaWNyb21ldGVyLW1ldHJpY3MpIiwKICAgICAgICAgICAgImRlZmF1bHQiIDogIm1pY3JvbWV0ZXItbWV0cmljcyIKICAgICAgICAgIH0sCiAgICAgICAgICAiYXV0b0NyZWF0ZUluZGV4IiA6IHsKICAgICAgICAgICAgInR5cGUiIDogWwogICAgICAgICAgICAgICJib29sZWFuIiwKICAgICAgICAgICAgICAic3RyaW5nIgogICAgICAgICAgICBdLAogICAgICAgICAgICAibWFya2Rvd25EZXNjcmlwdGlvbiIgOiAiV2hldGhlciB0byBjcmVhdGUgdGhlIGluZGV4IGF1dG9tYXRpY2FsbHkgaWYgaXQgZG9lc24ndCBleGlzdFxuXG5TZXRzIHdoZXRoZXIgdG8gY3JlYXRlIHRoZSBpbmRleCBhdXRvbWF0aWNhbGx5IGlmIGl0IGRvZXNuJ3QgZXhpc3QuIChBY2NlcHRzIGJvb2xlYW4gb3Igc3RyaW5nIHdpdGggJD0gcHJlZml4IGZvciBydW50aW1lIGV2YWx1YXRpb24pIChEZWZhdWx0OiB0cnVlKSIsCiAgICAgICAgICAgICJkZWZhdWx0IiA6IHRydWUKICAgICAgICAgIH0sCiAgICAgICAgICAicGlwZWxpbmUiIDogewogICAgICAgICAgICAidHlwZSIgOiBbCiAgICAgICAgICAgICAgInN0cmluZyIsCiAgICAgICAgICAgICAgIm51bGwiCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJtYXJrZG93bkRlc2NyaXB0aW9uIiA6ICJUaGUgaW5nZXN0IHBpcGVsaW5lIG5hbWVcblxuVGhlIGluZ2VzdCBwaXBlbGluZSBuYW1lIgogICAgICAgICAgfSwKICAgICAgICAgICJpbmRleERhdGVGb3JtYXQiIDogewogICAgICAgICAgICAidHlwZSIgOiBbCiAgICAgICAgICAgICAgInN0cmluZyIsCiAgICAgICAgICAgICAgIm51bGwiCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJtYXJrZG93bkRlc2NyaXB0aW9uIiA6ICJJbmRleCBkYXRlIGZvcm1hdCB1c2VkIGZvciByb2xsaW5nIGluZGljZXNcblxuU2V0cyB0aGUgaW5kZXggZGF0ZSBmb3JtYXQgdXNlZCBmb3Igcm9sbGluZyBpbmRpY2VzLiBUaGlzIGlzIGFwcGVuZGVkIHRvIHRoZSBpbmRleCBuYW1lLCBzZXBhcmF0ZWQgYnkgJ2VsYXN0aWNJbmRleERhdGVTZXBhcmF0b3InLiAoRGVmYXVsdDogeXl5eS1NTSkiLAogICAgICAgICAgICAiZGVmYXVsdCIgOiAieXl5eS1NTSIKICAgICAgICAgIH0sCiAgICAgICAgICAidGltZXN0YW1wRmllbGROYW1lIiA6IHsKICAgICAgICAgICAgInR5cGUiIDogWwogICAgICAgICAgICAgICJzdHJpbmciLAogICAgICAgICAgICAgICJudWxsIgogICAgICAgICAgICBdLAogICAgICAgICAgICAibWFya2Rvd25EZXNjcmlwdGlvbiIgOiAiTmFtZSBvZiB0aGUgZWxhc3RpYyB0aW1lc3RhbXAgZmllbGRcblxuU2V0cyB0aGUgbmFtZSBvZiB0aGUgZWxhc3RpYyB0aW1lc3RhbXAgZmllbGQuIChEZWZhdWx0OiBAdGltZXN0YW1wKSIsCiAgICAgICAgICAgICJkZWZhdWx0IiA6ICJAdGltZXN0YW1wIgogICAgICAgICAgfSwKICAgICAgICAgICJpbmRleERhdGVTZXBhcmF0b3IiIDogewogICAgICAgICAgICAidHlwZSIgOiBbCiAgICAgICAgICAgICAgInN0cmluZyIsCiAgICAgICAgICAgICAgIm51bGwiCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJtYXJrZG93bkRlc2NyaXB0aW9uIiA6ICJTZXBhcmF0b3IgYmV0d2VlbiB0aGUgaW5kZXggbmFtZSBhbmQgdGhlIGRhdGUgcGFydFxuXG5TZXRzIHRoZSBzZXBhcmF0b3IgYmV0d2VlbiB0aGUgaW5kZXggbmFtZSBhbmQgdGhlIGRhdGUgcGFydCAoRGVmYXVsdDogLSkiLAogICAgICAgICAgICAiZGVmYXVsdCIgOiAiLSIKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgIH0KICB9LAogICJhZGRpdGlvbmFsUHJvcGVydGllcyIgOiBmYWxzZQp9
# 🔟❎ 'run' ElasticSearch metric output configuration
# Configure ElasticSearch metric counter outputs.
# To learn more see https://doc.log10x.com/run/output/metric/elastic/
# Set the 10x pipeline to 'run'
tenx: run
# =============================== Dependencies ================================
include: run/modules/output/metric/elastic
# =============================== Elastic Options =============================
# Define multiple Elastic metric outputs below
elastic:
# --------------------------- Connection Options --------------------------
# 'host' sets the host to send metrics to (e.g., https://<deployment-name>.us-central1.gcp.cloud.es.io).
- host: "" # (❗ REQUIRED)
# 'apiKeyCredentials' sets base64-encoded credentials string
# To learn more see: https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-create-api-key.html
apiKeyCredentials: $=TenXEnv.get("ELASTIC_API_KEY") # (❗ EnvVar REQUIRED)
# 'userName' sets the the Basic Authentication username if 'apiKeyCredentials' is not set.
userName: $=TenXEnv.get("ELASTIC_USERNAME") # (❗ EnvVar REQUIRED)
# 'password' sets a Basic Authentication password.
password: $=TenXEnv.get("ELASTIC_PASSWORD") # (❗ EnvVar REQUIRED)
# ---------------------------- Counter Options ----------------------------
# 'nameField' sets the TenXSummary field whose value identifies the micrometer counter to increment.
# The 'inputName' field returns the name of the aggregator that produced the target TenXSummary instance.
# To learn more see https://doc.log10x.com/run/aggregate
nameField: inputName
# 'counterFields' specifies the TenXSummary fields whose values are used to increment the counter.
# To learn more see https://doc.log10x.com/run/aggregate/#summary-fields
counterFields:
- summaryVolume
- summaryBytes
- summaryTotals
# 'tagFields' sets the TenXSummary fields used as the counter tag dimension values.
# Defaults to https://doc.log10x.com/run/initialize/#enrichmentFields
tagFields:
- $=yield TenXEnv.get("enrichmentFields")
# 'tagFieldNames' allows setting custom names to aggregated fields for metrics reporting.
# Defaults to https://doc.log10x.com/run/initialize/#metricFieldNames
tagFieldNames:
- $=yield TenXEnv.get("metricFieldNames")
# 'filter' sets a JavaScript expression that TenXSummaries must evaluate as truthy to write to the output.
# To learn more see https://doc.log10x.com/run/output/regulate/#filter-expressions
filter: isSummary
# ---------------------------- Publish Options ----------------------------
# 'step' sets the interval for sending metrics to Elastic (e.g., '1m').
# To learn more see: https://micrometer.io/docs/concepts#rate-aggregation
step: 5s
# ----------------------------- Index Options -----------------------------
# 'elasticIndex' sets the index name to which to write metrics.
index: tenx-metrics
# 'autoCreateIndex' sets whether to create the index automatically if it doesn't exist.
autoCreateIndex: true
# 'indexDateFormat' sets the index date format used for rolling indices.
# This is appended to the index name, separated by 'elasticIndexDateSeparator'.
indexDateFormat: 'yyyy-MM'
# 'indexDateFormat' sets the separator between the index name and the date part
indexDateSeparator: '-'
# 'pipeline' sets the ingest pipeline name
pipeline: null
# 'timestampFieldName' sets the name of the elastic timestamp field.
timestampFieldName: '@timestamp'
Options
Specify the options below to configure multiple ElasticSearch metrics output:
| Name | Description | Category |
|---|---|---|
| elasticEnabled | Enable this output | General |
| elasticNameField | Name of the TenXSummary field identifying the metric | Counter |
| elasticCounterFields | Names of the TenXSummary fields used to increment the metric counter value | Counter |
| elasticTagFields | List of TenXSummary fields to use as metric tag values | Counter |
| elasticTagFieldNames | List of custom names to use for TenXSummary fields. | Counter |
| elasticFilter | A JavaScript expression an TenXSummary must evaluate as 'truthy' against to be written to this output | Counter |
| elasticMaxCardinality | Maximum number of unique metric combinations allowed | Counter |
| elasticStep | The interval at which to publish metrics to output | Counter |
| elasticHost | Host to send metrics to | Authentication |
| elasticApiKeyCredentials | Base64-encoded credentials string | Authentication |
| elasticUserName | Basic Authentication username | Authentication |
| elasticPassword | Basic Authentication password | Authentication |
| elasticIndex | The index name to write metrics to | Index |
| elasticAutoCreateIndex | Whether to create the index automatically if it doesn't exist | Index |
| elasticPipeline | The ingest pipeline name | Index |
| elasticIndexDateFormat | Index date format used for rolling indices | Index |
| elasticTimestampFieldName | Name of the elastic timestamp field | Index |
| elasticIndexDateSeparator | Separator between the index name and the date part | Index |
General
elasticEnabled
Enable this output.
| Type | Default | Category |
|---|---|---|
| Boolean | true | General |
Enable or disable this output.
Counter
elasticNameField
Name of the TenXSummary field identifying the metric.
| Type | Default | Category |
|---|---|---|
| String | summaryValues | Counter |
Defines the name of the TenXSummary field whose value identifies a metric counter. Defaults to the summaryValues field which holds the value(s) by which TenXObjects are grouped into the current TenXSummary instance. To learn more see micrometer counters.
elasticCounterFields
Names of the TenXSummary fields used to increment the metric counter value.
| Type | Default | Category |
|---|---|---|
| List | summaryVolume | Counter |
Defines the name of the TenXSummary field by whose value to increment the counter.
elasticTagFields
List of TenXSummary fields to use as metric tag values.
| Type | Default | Category |
|---|---|---|
| List | [] | Counter |
Defines the TenXSummary field names to use as tag values.
Tags are dimensions that enable slicing a particular named metric to drill down to reason about its value.
To learn more see micrometer tags.
elasticTagFieldNames
List of custom names to use for TenXSummary fields.
| Type | Default | Category |
|---|---|---|
| List | [] | Counter |
Defines the a list of custom names to give fields when reporting them. Format as a list of name1, custom1, name2, custom2.
For example, to set a custom name of 'My-Custom-Field' to an existing 'intrinsic-field':
elasticFilter
A JavaScript expression an TenXSummary must evaluate as 'truthy' against to be written to this output.
| Type | Default | Category |
|---|---|---|
| String | "" | Counter |
Specifies a JavaScript expression that an TenXSummary must evaluate as truthy to write its instance/template field values to the target counter.
For example, to only emit TenXSummaries produced by the 'myMetric' aggregator, specify:
To learn more see inputName.
elasticMaxCardinality
Maximum number of unique metric combinations allowed.
| Type | Default | Category |
|---|---|---|
| Number | 500 | Counter |
Sets the maximum number of unique metric combinations (cardinality) allowed for this output. When exceeded, metrics will be dropped to prevent excessive cardinality.
elasticStep
The interval at which to publish metrics to output.
| Type | Default | Category |
|---|---|---|
| String | 1 minute. | Counter |
Sets the interval at which to publish metrics to the time-series destination (e.g., '1m'). To learn more see rate-aggregation.
Authentication
elasticHost
Host to send metrics to.
| Type | Default | Category |
|---|---|---|
| String | http://localhost:9200 | Authentication |
Sets the host to send metrics to.
elasticApiKeyCredentials
Base64-encoded credentials string.
| Type | Default | Category |
|---|---|---|
| String | "" | Authentication |
Sets a base64-encoded credentials string To learn more see: Elastic credentials.
elasticUserName
Basic Authentication username.
| Type | Default | Category |
|---|---|---|
| String | "" | Authentication |
Sets the the Basic Authentication username. If 'elasticApiKeyCredentials' not is set, it will be used instead.
elasticPassword
Basic Authentication password.
| Type | Default | Category |
|---|---|---|
| String | "" | Authentication |
Sets a Basic Authentication password. If 'elasticApiKeyCredentials' is not set it will be used instead.
Index
elasticIndex
The index name to write metrics to.
| Type | Default | Category |
|---|---|---|
| String | micrometer-metrics | Index |
Sets the index name to write metrics to.
elasticAutoCreateIndex
Whether to create the index automatically if it doesn't exist.
| Type | Default | Category |
|---|---|---|
| Boolean | true | Index |
Sets whether to create the index automatically if it doesn't exist.
elasticPipeline
The ingest pipeline name.
| Type | Default | Category |
|---|---|---|
| String | "" | Index |
The ingest pipeline name.
elasticIndexDateFormat
Index date format used for rolling indices.
| Type | Default | Category |
|---|---|---|
| String | yyyy-MM | Index |
Sets the index date format used for rolling indices. This is appended to the index name, separated by 'elasticIndexDateSeparator'.
elasticTimestampFieldName
Name of the elastic timestamp field.
| Type | Default | Category |
|---|---|---|
| String | @timestamp | Index |
Sets the name of the elastic timestamp field.
elasticIndexDateSeparator
Separator between the index name and the date part.
| Type | Default | Category |
|---|---|---|
| String | - | Index |
Sets the separator between the index name and the date part.
This module is defined in elastic/module.yaml.