Back to Redis

Diagnostic Logging

content/operate/rs/clusters/logging/diagnostic-logging.md

latest6.3 KB
Original Source

The diagnostic logging service collects detailed system logs, which you can use to troubleshoot Redis Software.

View diagnostic logs

Diagnostic logs are collected at scheduled intervals and saved in the /var/opt/redislabs/log/diagnostics/ directory. Each diagnostic log file is overwritten with the new data at the scheduled collection interval.

View log collector settings

To view the current log collection schedule and parameters for each log collector, use the REST API to [get the diagnostic logging service configuration]({{<relref "/operate/rs/references/rest-api/requests/diagnostics#get-diagnostics">}}).

sh
GET /v1/diagnostics

Example response:

json
{
    "bdb_client_list_target": {
        "cron_expression": "*/10 * * * *"
    },
    "bdb_info_target": {
        "cron_expression": "*/10 * * * *"
    },
    "bdb_target": {
        "cron_expression": "*/10 * * * *"
    },
    "command_stats_target": {
        "cron_expression": "*/30 * * * *"
    },
    "network_stats_target": {
        "cron_expression": "*/30 * * * *"
    },
    "persistent_files_target": {
        "cron_expression": "*/10 * * * *"
    },
    "rladmin_status_target": {
        "cron_expression": "*/10 * * * *"
    },
    "shard_info_target": {
        "cron_expression": "*/10 * * * *"
    },
    "shard_latency_histogram_target": {
        "cron_expression": "*/10 * * * *"
    },
    "shard_latency_target": {
        "cron_expression": "*/10 * * * *"
    },
    "shard_target": {
        "cron_expression": "*/10 * * * *"
    },
    "slowlog_target": {
        "cron_expression": "*/10 * * * *",
        "max_entries": 100
    },
    "socket_files_target": {
        "cron_expression": "*/10 * * * *"
    }
}

Change log collector settings

To change how often a log is collected, set the cron_expression when you [update the diagnostic logging service configuration]({{<relref "/operate/rs/references/rest-api/requests/diagnostics#put-diagnostics">}}) with the REST API.

sh
PUT /v1/diagnostics
{
  "<log_collector>_target": {
    "cron_expression": "*/5 * * * *"
  }
}
  • Replace <log_collector> with the name of the log collector you want to turn off.

  • Use standard cron syntax to set the collection interval in the cron_expression.

For the slowlog collector only, you can also set max_entries to change the maximum number of slow log entries to collect:

sh
PUT /v1/diagnostics
{
  "slowlog_target": {
    "cron_expression": "*/5 * * * *",
    "max_entries": 200
  }
}

Turn off log collectors

To turn off a log collector, set its cron_expression to an empty string when you [update the diagnostic logging service configuration]({{<relref "/operate/rs/references/rest-api/requests/diagnostics#put-diagnostics">}}) with the REST API.

sh
PUT /v1/diagnostics
{
  "<log_collector>_target": {
    "cron_expression": ""
  }
}

Replace <log_collector> with the name of the log collector you want to turn off.

Log collectors

Each log collector runs independently and writes a separate log file. The following table describes the log collectors.

Default cron_expression values:

  • */10 * * * *: Logs are collected every 10 minutes.

  • */30 * * * *: Logs are collected every 30 minutes.

Log collectorDescription
bdbLogs database metadata similar to [GET /bdbs]({{<relref "/operate/rs/references/rest-api/requests/bdbs">}}). Each entry is in JSON format.
Default settings:
{{<code>}}"cron_expression": "*/10 * * * *"{{</code>}}
bdb_client_listLogs database client lists, with a separate file for each database. Each entry is in JSON format.
Default settings:
{{<code>}}"cron_expression": "*/10 * * * *"{{</code>}}
bdb_infoLogs the result of running [INFO ALL]({{<relref "/commands/info">}}) on a database, excluding commandstats, with a separate file for each database. Each entry is in JSON format.
Default settings:
{{<code>}}"cron_expression": "*/10 * * * *"{{</code>}}
command_statsLogs [INFO commandstats]({{<relref "/commands/info">}}) for each database, with a separate file for each database. Each entry is in JSON format.
Default settings:
{{<code>}}"cron_expression": "*/30 * * * *"{{</code>}}
network_statsLogs the node's network statistics.
Default settings:
{{<code>}}"cron_expression": "*/30 * * * *"{{</code>}}
persistent_filesLists persistent files from /var/opt/redislabs/persist/redis
Default settings:
{{<code>}}"cron_expression": "*/10 * * * *"{{</code>}}
rladmin_statusLogs data about nodes, databases, endpoints, and shards from [rladmin status]({{<relref "/operate/rs/references/cli-utilities/rladmin/status">}}). Each entry is in JSON format.
Default settings:
{{<code>}}"cron_expression": "*/10 * * * *"{{</code>}}
shardLogs shard status similar to [GET /shards]({{<relref "/operate/rs/references/rest-api/requests/shards">}}). Each entry is in JSON format.
Default settings:
{{<code>}}"cron_expression": "*/10 * * * *"{{</code>}}
shard_infoLogs the result of running [INFO ALL]({{<relref "/commands/info">}}) on a shard, with a separate file for each shard. Each entry is in JSON format.
Default settings:
{{<code>}}"cron_expression": "*/10 * * * *"{{</code>}}
shard_latencyLogs the result of running [latency latest]({{<relref "/commands/latency-latest">}}) on a shard, with a separate file for each shard.
Default settings:
{{<code>}}"cron_expression": "*/10 * * * *"{{</code>}}
<span class="break-all">shard_latency_histogram</span>Logs the result of running [latency histogram]({{<relref "/commands/latency-histogram">}}) on a shard, with a separate file for each shard.
Default settings:
{{<code>}}"cron_expression": "*/10 * * * *"{{</code>}}
slowlogLogs slow commands from the databases using [SLOWLOG GET]({{<relref "/commands/slowlog-get">}}), with a separate file for each database. Each entry is in JSON format. The log is sanitized, only the commands are visible.
Default settings:
{{<code>}}"cron_expression": "*/10 * * * *",
"max_entries": 100{{</code>}}
socket_filesLists socket files used by Redis Software.
Default settings:
{{<code>}}"cron_expression": "*/10 * * * *"{{</code>}}