Symbol
Load symbol library files which enable the run pipeline to transform input log/trace events into typed TenXObjects.
The pipeline can pull up-to-date symbol library files from GitHub at start-up/periodically as part of a centralized GitOps configuration management approach.
Configuration
To configure the Symbol loader unit, Edit these settings.
Below is the default configuration from: symbol/config.yaml.
ewogICJ0eXBlIiA6ICJvYmplY3QiLAogICJwcm9wZXJ0aWVzIiA6IHsKICAgICJ0ZW54IiA6IHsKICAgICAgInR5cGUiIDogInN0cmluZyIKICAgIH0sCiAgICAic3ltYm9sIiA6IHsKICAgICAgInR5cGUiIDogIm9iamVjdCIsCiAgICAgICJhZGRpdGlvbmFsUHJvcGVydGllcyIgOiBmYWxzZSwKICAgICAgInByb3BlcnRpZXMiIDogewogICAgICAgICJwYXRocyIgOiB7CiAgICAgICAgICAidHlwZSIgOiBbCiAgICAgICAgICAgICJhcnJheSIsCiAgICAgICAgICAgICJudWxsIgogICAgICAgICAgXSwKICAgICAgICAgICJtYXJrZG93bkRlc2NyaXB0aW9uIiA6ICJJbnB1dCBzeW1ib2wgZmlsZXMgYW5kIGZvbGRlcnNcblxuU3BlY2lmaWVzIGEgbGlzdCBvZiBnbG9iIHBhdHRlcm5zIHVzZWQgdG8gbG9hZCBzeW1ib2xzIGZpbGVzICguanNvbiwgLmNzdikgaW50byB0aGUgcGlwZWxpbmUgdXBvbiBpbml0aWFsaXphdGlvbi4gWmlwIGFyY2hpdmVzIGFyZSBleHRyYWN0ZWQgdG8gdGhlIHRlbXAgZm9sZGVyIGFuZCBkZWxldGVkIG9uIGV4aXQuIChEZWZhdWx0OiBbXCJwYXRoKFxcXCJzYW1wbGUvc3ltYm9sc1xcXCIpXCJdKSIsCiAgICAgICAgICAiaXRlbXMiIDogewogICAgICAgICAgICAidHlwZSIgOiAic3RyaW5nIgogICAgICAgICAgfSwKICAgICAgICAgICJkZWZhdWx0IiA6IFsKICAgICAgICAgICAgInBhdGgoXCJzYW1wbGUvc3ltYm9sc1wiKSIKICAgICAgICAgIF0KICAgICAgICB9LAogICAgICAgICJsaXRlcmFscyIgOiB7CiAgICAgICAgICAidHlwZSIgOiBbCiAgICAgICAgICAgICJhcnJheSIsCiAgICAgICAgICAgICJudWxsIgogICAgICAgICAgXSwKICAgICAgICAgICJtYXJrZG93bkRlc2NyaXB0aW9uIiA6ICJTeW1ib2wgbGl0ZXJhbCB2YWx1ZXNcblxuU3BlY2lmaWVzIGEgbGlzdCBvZiBsaXRlcmFsIHN5bWJvbCB2YWx1ZXMgdG8gYWRkIHRvIHRoZSBob3N0IHBpcGVsaW5lJ3Mgc3ltYm9sIGNvbGxlY3Rpb24uIFRoaXMgb3B0aW9uIGVuYWJsZXMgZGVjbGFyaW5nIHN5bWJvbCB2YWx1ZXMgZGlyZWN0bHkgdGhyb3VnaCB0aGUgY29tbWFuZCBsaW5lIG9yIHZpYSBZQU1ML0pTT04gY29uZmlndXJhdGlvbi4iLAogICAgICAgICAgIml0ZW1zIiA6IHsKICAgICAgICAgICAgInR5cGUiIDogInN0cmluZyIKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgIH0sCiAgICAibWF4U3ltYm9sVW5pdHNQZXJUb2tlbiIgOiB7CiAgICAgICJ0eXBlIiA6IFsKICAgICAgICAibnVtYmVyIiwKICAgICAgICAic3RyaW5nIgogICAgICBdLAogICAgICAibWFya2Rvd25EZXNjcmlwdGlvbiIgOiAiTnVtYmVyIG9mIHN5bWJvbCB1bml0cyB0byByZXRyaWV2ZSB3aGVuIHNlYXJjaGluZyBmb3IgdGhlIG9yaWdpbiBvZiBhbiBUZW5YVGVtcGxhdGUgc3ltYm9sIHNlcXVlbmNlXG5cbkNvbnRyb2xzIHRoZSBtYXhpbXVtIG51bWJlciBvZiBzeW1ib2wgdW5pdHMgdG8gbG9hZCBmcm9tIHRoZSBwaXBlbGluZSdzIHN5bWJvbCBsaWJyYXJ5IHdoZW4gc2VhcmNoaW5nIGZvciB0aGUgW29yaWdpbl0oaHR0cHM6Ly9kb2MubG9nMTB4LmNvbS9ydW4vdHJhbnNmb3JtL3N5bWJvbC8pIG9mIGEgc3BlY2lmaWMgW1RlblhUZW1wbGF0ZV0oaHR0cHM6Ly9kb2MubG9nMTB4LmNvbS9ydW4vdGVtcGxhdGUvKSBzeW1ib2wuICAgVGhlIFtzeW1ib2xTZXF1ZW5jZV0oaHR0cHM6Ly9kb2MubG9nMTB4LmNvbS9hcGkvanMvI1RlblhPYmplY3Qrc3ltYm9sU2VxdWVuY2UpIGZ1bmN0aW9uIHF1ZXJpZXMgdGhlIHNvdXJjZSBjb2RlL2JpbmFyeSBvcmlnaW4gb2Ygc3ltYm9sIHNlcXVlbmNlcyBpbiBhIHRhcmdldCBUZW5YVGVtcGxhdGUgdG8gaWRlbnRpZnkgdGhlIGxvZ2ljYWwgXCJtZXNzYWdlXCIgcG9ydGlvbnMgb2YgYXBwL2luZnJhIGV2ZW50cyB2cy4gdmFyaWFibGUgdmFsdWVzIGFuZCBbTURDIGNvbnRleHRdKGh0dHBzOi8vbG9nZ2luZy5hcGFjaGUub3JnL2xvZzRqLzIueC9tYW51YWwvdGhyZWFkLWNvbnRleHQuaHRtbCkuICAgU2luY2Ugc3ltYm9scyBtYXkgYXBwZWFyIGluIGh1bmRyZWRzIG9yIG1vcmUgbG9jYXRpb25zIGFjcm9zcyBhIGNvZGUgYmFzZSwgIGxpbWl0aW5nIHRoZSBudW1iZXIgb2Ygc3ltYm9sIHVuaXRzIHRvIGxvYWQgaXMgbmVjZXNzYXJ5IHRvIHJlZHVjZSBtZW1vcnkgY29uc3VtcHRpb24uICAgICBBIHNlY29uZCBjb25zaWRlcmF0aW9uIGluIHBsYWNpbmcgYW4gdXBwZXIgbGltaXQgb24gdGhlIG51bWJlciBvZiB1bml0cyB0byBsb2FkIGZyb20gdGhlIHN5bWJvbCBsaWJyYXJ5ICBpcyB0aGUgbW9yZSBmcmVxdWVudCBhIHN5bWJvbCBpcywgdGhlIGxvd2VyIHRoZSBwcm9iYWJpbGl0eSBvZiBzZWxlY3RpbmcgaXRzIGNvcnJlY3Qgb3JpZ2luLiAoQWNjZXB0cyBudW1iZXIgb3Igc3RyaW5nIHdpdGggJD0gcHJlZml4IGZvciBydW50aW1lIGV2YWx1YXRpb24pIChEZWZhdWx0OiAxMjgpIiwKICAgICAgImRlZmF1bHQiIDogMTI4CiAgICB9CiAgfSwKICAiYWRkaXRpb25hbFByb3BlcnRpZXMiIDogZmFsc2UKfQ==
# 🔟❎ 'run' symbol file configuration
# Loads symbol library files to transform events into well-defined TenXObjects.
# To learn more see https://doc.log10x.com/run/symbol
# Set the 10x pipeline to 'run'
tenx: run
# ============================ Symbol Options =================================
symbol:
# 'paths' specifies the file/folder locations to scan for symbol library files.
# To learn more see https://doc.log10x.com/run/symbol/#symbolpaths
paths:
- $=path("data/shared/symbols", false)
- $=path("<TENX_SYMBOLS_PATH>", false)
literals: []
Options
Specify the options below to configure the Symbol loader:
| Name | Description | Category |
|---|---|---|
| symbolPaths | Input symbol files and folders | General |
| symbolLiterals | Symbol literal values | General |
| maxSymbolUnitsPerToken | Number of symbol units to retrieve when searching for the origin of an TenXTemplate symbol sequence | Advanced |
General
symbolPaths
Input symbol files and folders.
| Type | Default | Category |
|---|---|---|
| List | [path("sample/symbols")] | General |
Specifies a list of glob patterns used to load symbols files (.json, .csv) into the pipeline upon initialization. Zip archives are extracted to the temp folder and deleted on exit.
symbolLiterals
Symbol literal values.
| Type | Default | Category |
|---|---|---|
| List | [] | General |
Specifies a list of literal symbol values to add to the host pipeline's symbol collection. This option enables declaring symbol values directly through the command line or via YAML/JSON configuration.
Advanced
maxSymbolUnitsPerToken
Number of symbol units to retrieve when searching for the origin of an TenXTemplate symbol sequence.
| Type | Default | Category |
|---|---|---|
| Number | 128 | Advanced |
Controls the maximum number of symbol units to load from the pipeline's symbol library when searching for the origin of a specific TenXTemplate symbol.
The symbolSequence function queries the source code/binary origin of symbol sequences in a target TenXTemplate to identify the logical "message" portions of app/infra events vs. variable values and MDC context.
Since symbols may appear in hundreds or more locations across a code base,
limiting the number of symbol units to load is necessary to reduce memory consumption.
A second consideration in placing an upper limit on the number of units to load from the symbol library
is the more frequent a symbol is, the lower the probability of selecting its correct origin.
This unit is defined in symbol/unit.yaml.