quick links

support

Transfer database logging schema
for Aspera Enterprise Server on all platforms – version 2.5.2

1. Introduction

Aspera Enterprise Server can log transfers to a MySQL server with a database containing the proper tables. The default name for this database is aspera_console, although if desired this can be changed by modifying the <DATABASE> section of the aspera.conf file.

Aspera Management Console creates a database upon installation that the Enterprise Server's database logger can use. This database contains additional tables that are used by the Console application that are not needed just for database logging.

This document covers the tables used by the database logger. The database logger requires MySQL version 4.1.20-1 or higher. Default format for the database should be UTF-8 to allow recording of file names with foreign characters.

2. Database Overview

The following lists this a list of tables used by the database logger. You can jump to the fields section by clicking the table name in the overview section.

Database Logger Tables
fasp_files A single file transferred in a fasp™ session. If a transfer is occurring between two nodes that are both logging to the same database, there will be two records in this table for each file being transferred, one for each side being logged.
fasp_nodes A node is a single server with Aspera software installed. It must have the database logger configured (in the aspera.conf file) in order to work with the Console
fasp_rates Initial rates and subsequent rate changes for a single fasp™ session. If a transfer is occurring between two nodes that are both logging to the same database, there may be two records in this table for each rate set/change event, one for each side being logged.
fasp_sessions One fasp™ transfer session recorded by one node. If a transfer is occurring between two nodes that are both logging to the same database, there will be two records in this table for the transfer, one for each side being logged.

3. fasp_files

Name MySQL Type Null Allowed? Description
id int(11) No Sequential integer, unique record id, assigned automatically by MySQL
logged_from varchar(255) No MySQL user name used by the logger, plus the IP address of the node from MySQL server's point of view. Example: 'logger'@'192.168.1.101'. Although this field is populated and updated by a query from the database logger, the actual value is determined by MySQL, since the logger may not know what its IP address looks like to the database server. This is done by using MySQL's USER() function in the SQL statement.
node_uuid varchar(36) No Foreign key referring to record in fasp_nodes for the node that logged this session
session_id varchar(36) No fasp™ session id - for fasp™ 1.x, a 32 bit unsigned integer. Forfasp™ 2.x, a UUID string of format 12345678-1234-1234-1234-123456789abc. In fasp™ 1.x, each side of a single transfer has its own session id. In fasp™ 2.x, both sides (endpoints) of a single transfer use the same session id.
status varchar(16) No One of the following values (case sensitive): started, completed, paused, error, orphaned, cancelled, willretry.
created_at datetime No Time/date record created - maintained by Database Logger, not populated automatically by MySQL, but the time is from the database server's point of view - done by using MySQL's NOW() function in SQL statements
started_at datetime Yes Time/date file started transferring. Might be null if the database server was inaccessible to the logger at the start of the file transfer. Time is from the database server's point of view - done by using MySQL's NOW() function in SQL statements
stopped_at datetime Yes Time/date file stopped transferring, either successfully or with an error. Null if file is still transferring, or if database server was inaccessible to logger at time of file termination. Time is from the database server's point of view - done by using MySQL's NOW() function in SQL statements
file_fullpath text No Full, expanded pathname (including file name) from Central's perspective.
file_index varchar(32) No A unique identifier for each file in a single transfer. A sequential, numerical identifier is recommended, but any unique identifier will do. This field only needs to be unique within the context of a single node and transfer. If both sides of a transfer are being logged, the file_index only has to be unique to each side of the transfer, which is why node_uuid is part of the unique index. The file_index for a file on one side of the transfer might not be the same as the file_index for the same file on the other side of the transfer (the receiving node might number the files differently than the sending node).
file_basename text No Filename only, no path. Not currently implemented
source_item text Yes The source item (file or directory) chosen to transfer that caused this particular file to be transferred. If a directory containing more than one file was chosen, then there will be multiple records (one per file in the directory) that all have the same value for this field.
size bigint(20) No Size of the file in bytes
start_byte bigint(20) No For resumed transfers, the point in the file at which transfer started. Only applies to files that were previously incompletely transferred
bytes_written bigint(20) No Number of file bytes written to disk on the receiving machine
bytes_contig bigint(20) No Number of contiguous file bytes transferred
bytes_lost bigint(20) No Number of file bytes lost (and retransmitted) due to network packet loss
usecs bigint(20) No Number of microseconds elapsed since start of file transfer
checksum varchar(255) Yes Optional checksum for file. Not supplied automatically by fasp™.
checksum_type varchar(16) Yes String description of checksum method
err_code int(11) No fasp™ error code for file, 0 if no error.
err_desc varchar(255) Yes fasp™ error description for file, null if no error.

4. fasp_nodes

Name MySQL Type Null Allowed? Description
id int(11) No Sequential integer, unique record id, assigned automatically by MySQL
created_at datetime No Time/date record created - maintained by Console and Database Logger, not populated automatically by MySQL, but the time is from the database server's point of view - done by using MySQL's NOW() function in SQL statements.
updated_at datetime No Time/date record last updated - maintained by Console and Database Logger, not populated automatically by MySQL, but the time is from the database server's point of view - done by using MySQL's NOW() function in SQL statements
node_address varchar(128) No IP address of node. Used to grant permission to the node to access the database.
node_name varchar(255) No Human-friendly descriptive name for node
node_uuid varchar(36) Yes Unique id for each node, a randomly generated UUID string of 12345678-1234-1234-1234-123456789abc format, generated by the database logger on first startup. Preserves identity of node even if its IP address is changed. When a node is added using the Console web interface, this field is blank until the database logger contacts it. If the database is on the same machine as the database logger it is not necessary to insert a row for the node first, as long as the logger has been configured with the root user and password for MySQL
node_bandwidth_cap_in int(11) Yes Inbound virtual link cap for node, in kilobits/second.Not currently implemented.
node_bandwidth_cap_out int(11) Yes Outbound virtual link cap for node, in kilobits/second.Not currently implemented.
cluster_id int(11) Yes Cluster that this node is assigned to. May be null, nodes do not have to be assigned to a cluster.
reported_hostname varchar(255) Yes Hostname of the node. This field is populated and maintained by the database logger. Initially null if node record was added through the Console web interface.
reported_central_uri varchar(255) Yes URI protocol, address and port that Aspera Central is listening on for SOAP calls. This field is populated and maintained by the database logger. Example: http://0.0.0.0:40001. This URI reflects values specified in the node's aspera.conf file.
reported_active_sessions int(11) Yes Number of active fasp™ transfer sessions for the node.Not currently implemented
reported_logger_version varchar(255) Yes Internal version number of the node's database logger software.Not currently implemented
reported_os varchar(16) Yes Operating system reported by database logger. One of the following values (case sensitive): windows, solaris, mac, linux, freebsd, isilon. Null if node record was added using the Console web interface and the logger has not contacted the database yet.
reported_os_version varchar(255) Yes Additional os version / platform information reported by database logger. Null if node record was added using the Console web interface and the logger has not contacted the database yet.
reported_from varchar(255) Yes MySQL user name used by the logger, plus the IP address of the node from MySQL server's point of view. Example: 'logger'@'192.168.1.101'. Although this field is populated and updated by a query from the database logger, the actual value is determined by MySQL, since the logger may not know what its IP address looks like to the database server. This is done by using MySQL's USER() function in the SQL statement.
reported_at datetime Yes Time/date record last updated by database logger. This field is populated and maintained by the database logger, but the time is from the database server's point of view - done by using MySQL's NOW() function in SQL statements

5. fasp_rates

Name MySQL Type Null Allowed? Description
id int(11) No Sequential integer, unique record id, assigned automatically by MySQL
logged_from varchar(255) No MySQL user name used by the logger, plus the IP address of the node from MySQL server's point of view. Example: 'logger'@'192.168.1.101'. Although this field is populated and updated by a query from the database logger, the actual value is determined by MySQL, since the logger may not know what its IP address looks like to the database server. This is done by using MySQL's USER() function in the SQL statement.
node_uuid varchar(36) No Foreign key referring to record in fasp_nodes for the node that logged this session
session_id varchar(36) No fasp™ session id - for fasp™ 1.x, a 32 bit unsigned integer. For fasp™ 2.x, a UUID string of format 12345678-1234-1234-1234-123456789abc. In fasp™ 1.x, each side of a single transfer has its own session id. In fasp™ 2.x, both sides (endpoints) of a single transfer use the same session id.
applied_at datetime No Time/date rate change was applied. Time is from the database server's point of view - done by using MySQL's NOW() function in SQL statements
policy varchar(16) No Transfer policy. One of the following values (case sensitive): Fixed, Adaptive, Trickle
target_rate int(11) No Target rate in kilobits per second.
min_rate int(11) No Requested minimum rate in kilobits per second.
bw_cap int(11) No Maximum allowed rate in kilobits per second.
priority varchar(255) Yes Transfer priority.

6. fasp_sessions

Name MySQL Type Null Allowed? Description
id int(11) No Sequential integer, unique record id, assigned automatically by MySQL
logged_from varchar(255) No MySQL user name used by the logger, plus the IP address of the node from the database server's point of view. Example: 'logger'@'192.168.1.101'. Although this field is populated and updated by a query from the database logger, the actual value is determined by MySQL, since the logger may not know what its IP address looks like to the database server. This is done by using MySQL's USER() function in the SQL statement.
node_uuid varchar(36) No Foreign key referring to record in the fasp_nodes table for the node that logged this session
session_id varchar(36) No fasp™ session id - for fasp™ 1.x, a 32 bit unsigned integer. For fasp™ 2.x, a UUID string of format 12345678-1234-1234-1234-123456789abc. In fasp™ 1.x, each side of a single transfer has its own session id. In fasp™ 2.x, both sides (endpoints) of a single transfer use the same session id.
status varchar(16) No One of the following values (case sensitive): started, completed, paused, error, orphaned, cancelled, willretry . The 'orphaned' status is assigned when a session is found in the database that has status set to 'started' or 'paused', but the node itself reports that there is no active session with the specified session id. This may happen if the database server was inaccessible to the logger at time of termination. The 'paused' status means that target rate for the session has been set to zero. The 'unknown' status is assigned when a session is found in the database with status of 'started' or 'paused' but the node cannot be reached to query current session status. When connection to the node is restored, status will be updated to either 'started', 'paused', or 'orphaned'.
created_at datetime No Time/date record created - maintained by Database Logger, not populated automatically by MySQL, but the time is from the database server's point of view - done by using MySQL's NOW() function in SQL statements
started_at datetime Yes Time/date transfer started. Might be null if the database server was inaccessible to the logger at the start of a transfer. Time is from the database server's point of view - done by using MySQL's NOW() function in SQL statements
stopped_at datetime Yes Time/date transfer stopped, either successfully or with an error. Null if transfer is active, or if database server was inaccessible to logger at time of termination. Time is from the database server's point of view - done by using MySQL's NOW() function in SQL statements
user varchar(128) Yes Ssh user for transfer. Can be null if session failed to start. In the future, this may also be null for servers configured for open access.
cookie text Yes extra user defined data attached to transfer
token text Yes extra application defined data attached to transfer - used by Aspera Faspex to hold authentication token for a specific transfer request
initiator varchar(16) No One of the following values (case sensitive): Local, Remote. If the transfer was initiated by the logging node, then initiator=Local, else initiator=Remote.
operation varchar(16) No
  • If initiator is local and direction is in, the operation is Download.
  • If initiator is local and direction is out, the operation is Upload.
  • If initiator is remote and direction is in, the operation is Upload.
  • If initiator is remote and direction is out, the operation is Download.
server_addr varchar(255) Yes Non-initiator's IP address or network name - blank on server side in fasp™ 1.x. The transfer initiator is always considered the CLIENT. The non-initiator is always considered the SERVER.
server_sshport int(11) No Ssh port used to login to the non-initiator (server).
server_faspport int(11) No UDP port used for the transfer on the non-initiator (server) side.
client_addr varchar(255) Yes Initiator's (client's) IP address or network name
client_faspport int(11) No UDP port used for the transfer on the initiator (client) side.
cipher varchar(16) No Encryption cipher used for the transfer. Currently one of the following values (case sensitive): None, AES128.
dest_path text Yes Initiator's (client's) destination path for the entire session - full local system path for download, remote path relative to docroot for upload. Blank on the non-initiator's (server's) side.
files_complete int(11) No Number of files successfully transferred
files_failed int(11) No Number of files that failed to transfer
bytes_written bigint(20) No Number of bytes written to disk on inbound side
bytes_transferred bigint(20) No Number of bytes actually sent over network
bytes_lost bigint(20) No Number of bytes lost (and retransmitted) due to network packet loss
usecs bigint(20) No Microseconds elapsed since start of transfer
temp_prev_usecs bigint(20) Yes Internal field used by Console for current rate calculation
temp_prev_bytes_transferred bigint(20) Yes Internal field used by Console for current rate calculation
temp_bitrate bigint(20) Yes Internal field used by Console for current rate calculation
temp_bitrate_calculated_at datetime Yes Internal field used by Console for current rate calculation
network_delay Int(11) Yes Network delay in milliseconds. Null for fasp™ 1.x, only available for fasp™ 2.x transfers
err_code int(11) No fasp™ error code for session, 0 if no error
err_desc varchar(255) Yes fasp™ error description for session, null if no error
source_paths text Yes Source file paths. Not all source paths are recorded due to buffer limits.
args_attempted int(11) Yes Number of command-line arguments being assigned.
args_completed int(11) Yes Number of command-line arguments being completed.
paths_attempted int(11) Yes File or directory paths traversed.
paths_failed int(11) Yes File or directory paths with errors
paths_irreg int(11) Yes File or directory paths with special files.
paths_excluded int(11) Yes File or directory paths excluded due to exclude settings.
dirscans_completed int(11) Yes Directory scans completed.
filescans_completed int(11) Yes File scans completed.
mkdirs_attempted int(11) Yes Attempts to create directories.
mkdirs_failed int(11) Yes Failed directory creations.
mkdirs_passed int(11) Yes Successful directory creations.
files_attempted int(11) Yes File transfers attempted.
files_skipped int(11) Yes File transfers skipped.
fallback_protocol varchar(16) Yes Alternate transport protocol.
transport varchar(16) Yes Transport protocol.
retry_timeout int(11) Yes Retry timeout specified.