| 1 | # OpenTelemetry Signal Viewer (otel-signal-viewer.plugin) |
| 2 | |
| 3 | The `otel-signal-viewer` plugin is a [Netdata](https://github.com/netdata/netdata) external plugin |
| 4 | that reads, indexes, and visualizes OpenTelemetry logs stored in |
| 5 | `systemd`-compatible [journal files](https://systemd.io/JOURNAL_FILE_FORMAT/) |
| 6 | written by the [`otel`](../../netdata-otel/otel-plugin/README.md) plugin. |
| 7 | |
| 8 | > These journal files can also be inspected directly with |
| 9 | > [`journalctl`](https://www.freedesktop.org/software/systemd/man/latest/journalctl.html). |
| 10 | > Note that the output will contain logs with remapped field names for |
| 11 | > `systemd`-compatibility. |
| 12 | |
| 13 | ## Configuration |
| 14 | |
| 15 | Edit the [otel-signal-viewer.yaml](https://github.com/netdata/netdata/blob/master/src/crates/netdata-log-viewer/otel-signal-viewer-plugin/configs/otel-signal-viewer.yaml.in) |
| 16 | configuration file using `edit-config` from the Netdata |
| 17 | [config directory](/docs/netdata-agent/configuration/README.md#locate-your-config-directory), |
| 18 | which is typically located under `/etc/netdata`. |
| 19 | |
| 20 | ```bash |
| 21 | cd /etc/netdata # Replace this path with your Netdata config directory |
| 22 | sudo ./edit-config otel-signal-viewer.yaml |
| 23 | ``` |
| 24 | |
| 25 | ### Journal |
| 26 | |
| 27 | The `journal` section specifies the directories containing journal files to |
| 28 | watch and index. By default, it points to the same directory the `otel` |
| 29 | plugin uses to store OpenTelemetry logs. At least one path must be specified: |
| 30 | |
| 31 | ```yaml |
| 32 | journal: |
| 33 | paths: |
| 34 | - "/var/log/netdata/otel/v1" |
| 35 | ``` |
| 36 | |
| 37 | ### Cache |
| 38 | |
| 39 | The `cache` section configures the hybrid memory and disk cache used for |
| 40 | indexed journal data. |
| 41 | |
| 42 | | Option | Default | Description | |
| 43 | |--------------------|-----------------------------------|------------------------------------------------------| |
| 44 | | `directory` | `/var/cache/netdata/otel-signal-viewer` | Directory to store the disk-backed cache | |
| 45 | | `memory_capacity` | `1000` | Number of indexed journal files to keep in memory | |
| 46 | | `disk_capacity` | `32MB` | Maximum size of the disk-backed cache | |
| 47 | | `block_size` | `4MB` | Size of individual cache blocks | |
| 48 | | `workers` | number of CPU cores | Number of background workers for indexing | |
| 49 | | `queue_capacity` | `100` | Queue capacity for pending indexing requests | |
| 50 | |
| 51 | ```yaml |
| 52 | cache: |
| 53 | directory: "/var/cache/netdata/otel-signal-viewer" |
| 54 | memory_capacity: 1000 |
| 55 | disk_capacity: "32MB" |
| 56 | block_size: "4MB" |
| 57 | # workers: <number-of-CPU-cores> |
| 58 | queue_capacity: 100 |
| 59 | ``` |
| 60 | |
| 61 | ### Indexing |
| 62 | |
| 63 | The `indexing` section controls how journal fields are indexed, with limits to |
| 64 | prevent unbounded memory growth from high-cardinality fields. |
| 65 | |
| 66 | | Option | Default | Description | |
| 67 | |--------------------------------|---------|--------------------------------------------------------------| |
| 68 | | `max_unique_values_per_field` | `500` | Maximum unique values to index per field | |
| 69 | | `max_field_payload_size` | `100` | Maximum payload size (in bytes) for field values to index | |
| 70 | |
| 71 | ```yaml |
| 72 | indexing: |
| 73 | max_unique_values_per_field: 500 |
| 74 | max_field_payload_size: 100 |
| 75 | ``` |