Mission
Provide specific API interface to end-user which would allow to manipulate with database log files.
Design
Log manipulations are designed to let user perform log investigations. Since Trove is PaaS - level project, it's user cannot interact with compute instance directly, only with database through given API (database operations).
Deployer would decide which log files would be available for trove user.
API Schema
DownloadDBLogFile request parameters and DBLog Model
-
- Description: Downloads current database log file.
Request Parameters:
Parameter name |
Description |
Type |
Required
|
Instance ID or Name |
The customer-assigned name of the DB instance that contains the log files. |
String |
Yes
|
LogFileName |
DBLog entry name |
String |
Yes
|
Marker |
For paginating |
String |
No
|
Response Elements
Name |
Description |
Type |
Errors
|
LogFileData |
The following elements are returned in a structure named DBLog |
DBLog |
DBInstanceNotFound. HTTP 404
|
DBLog Database Model
- DBLog is responsible for database log file stored in Swift container
Name |
Description |
Type
|
ID |
UUDI |
String
|
DBInstanceID |
Instance ID |
String
|
Location |
URL. Storage location. |
String
|
CreatedAt |
Date |
String
|
DeletedAt |
Date |
String
|
LogFileName |
Example |
Example
|
Deleted |
Signals if record is deleted |
Boolen
|
Server-side configuration
- Trove taskmanager and api services would require next conf values:
- log_file_storage_dir per datastore (could be retrieved from database configuration at guest side).
- pagination limit.
Guest-side configuration
- Same as server side, guest side requires several configuration values:
- naming convention: uuid+daytime.log
- manifest convention: *.log or *tar.bz2 or *tar.gz
- Storage Strategy: Swift
- Container: logs_files