Logging

The database logs are located in the /opt/atsd/atsd/logs directory.

The log files can be also downloaded from the Settings > Server Logs page.

Logs are rolled over and archived according to the retention settings in the /opt/atsd/atsd/conf/logback.xml file.

Log Files

Log Name Description
atsd.log Main database log.
command.log Received commands log.
command_malformed.log Malformed commands log. Includes commands with invalid syntax.
command_discarded.log Discarded commands log. Includes commands received for disabled entities/metrics.
command_ignored.log Ignored commands log.
update.log Update log.
metrics.txt Snapshot of current database metrics. Refreshed every 15 seconds.
start.log Start log.
stop.log Stop log.
err.log Standard error.
alert.log Alert log.

Logging Properties

File Count

To increase the number of files stored by a given logger, increase the value in the maxIndex tag.

<maxIndex>20</maxIndex>

File Size

To increase the size of files rolled over by a given logger, increase the maxFileSize tag value. This setting determines the size of the file before the file is rolled over and compressed. The compressed file is typically 10-20 smaller than the original file.

<maxFileSize>100Mb</maxFileSize>

File Name

To change the name of the current and archived files, change the file and fileNamePattern tags.

<file>../logs/command.log</file>
<fileNamePattern>../logs/command.%i.log.zip</fileNamePattern>

Logging Level

To adjust tracing level, add a logging declaration containing the full class name and the level such as DEBUG, INFO, WARN, ERROR.

<logger name="com.axibase.tsd.service.MetricServiceImpl" level="DEBUG"/>

Applying Changes

Logging properties can be modified in the logback.xml file located in the /opt/atsd/atsd/conf directory or using the Settings > Configuration Files editor.

Database restart is not required. The changes are scanned and automatically applied every 60 seconds, as specified in the scanPeriod tag.

Command Logging

For performance purposes, logging of incoming commands to command*.log files must be enabled both in the logback.xml file as well as with the Command Log Enabled setting on the Settings > Input Settings page.

Input Settings

The command.log file contains received series, property, and message data commands and is continuously appended with incoming commands.

2018-06-28 14:11:55,841;atsd.incoming.api.command.raw;series e:nurswgvml007 m:os.disk.fs.percent_used=45.62672958755293  t:disk=/
2018-06-28 14:11:55,849;atsd.incoming.api.command.raw;message e:nurswgvml008 ms:1530195115844 t:job_type="DOCKER" t:job_name="docker-hbs-to-nur" t:source="docker-hbs-to-nur" t:type="collector-job" t:status="COMPLETED"
2018-06-28 14:13:19,841;atsd.internal.command;property t:java_method e:atsd ms:1530195199841 k:host=NURSWGVML007 v:java_method_invoke_last=5

command.log file format:

date_received_iso;channel_type;command

Each message in the file contains the received date and the channel type, for example:

  • incoming.tcp.raw
  • atsd.incoming.api.command.raw
  • atsd.internal.command.

The data command is printed out in the Network API syntax and can be replayed on any ATSD instance by uploading the commands via TCP/UDP protocol, /api/v1/command endpoint, or on the Data > Data Entry page.

The retention settings for received commands can be modified by increasing the maxIndex or maxFileSize tags in the logback.xml file.

<!-- command.log -->
<appender name="commandsLogRoller" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>../logs/command.log</file>

    <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
        <fileNamePattern>../logs/command.%i.log.zip</fileNamePattern>
        <minIndex>1</minIndex>
        <maxIndex>20</maxIndex>
    </rollingPolicy>

    <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
        <maxFileSize>25Mb</maxFileSize>
    </triggeringPolicy>

    <encoder>
        <pattern>%date{ISO8601};%logger;%message%n</pattern>
    </encoder>
</appender>

To log the data commands without the received date and channel, remove the corresponding fields from the pattern tag.

<encoder>
    <pattern>%message%n</pattern>
</encoder>

The %date{ISO8601} token formats the date in ISO8601 format in local time zone.

2018-06-28 14:11:55,841

To customize the pattern and the timezone, us the following pattern instead %d{"yyyy-MM-dd'T'HH:mm:ss.SSSXXX",UTC}.

2018-06-28T17:20:00.000Z