Folder
Checks the contents of a folder for size, age, and count. Folder based checks are useful in a number of scenarios:
- Verifying that backups have been uploaded and are the appropriate size
- Checking that logs or other temporary files are being cleaned up
- For batch processes:
- Checking if files are being processed (and/or produced)
- Checking the size of queue processing backlog
- Checking if any error (
.err
or.log
) files have been produced.
folder-check.yamlapiVersion: canaries.flanksource.com/v1
kind: Canary
metadata:
name: folder-check
spec:
schedule: "@every 5m"
folder:
- path: /etc/
name: folder-check-min
description: Checks if there are at least 10 files in the folder
minCount: 10
Field | Description | Scheme |
---|---|---|
name* | Name of the check, must be unique within the canary |
|
path* | A local folder path or a remote folder | |
awsConnection | AWS Access credentials | |
filter | Filter objects out before checking if they are valid | |
gcpConnection | Connection details for GCP | |
maxAge | The oldest age a file can be, often used to check for unprocessed files or files that have not been cleaned up | |
maxCount | The maximum number of files inside the |
|
maxSize | The maximum file size | |
minAge | The youngest age a file can be | |
minCount | The minimum number of files inside the |
|
minSize | The minimum file size, can be used to detect backups that did not upload successfully | |
sftpConnection | Connection details | |
smbConnection | SMB connection details | |
description | Description for the check |
|
display | Expression to change the formatting of the display | |
icon | Icon for overwriting default icon on the dashboard | |
labels | Labels for check | map[string]string |
metrics | Metrics to export from | |
test | Evaluate whether a check is healthy | |
transform | Transform data from a check into multiple individual checks |
FolderFilter
Field | Description | Scheme | Required |
---|---|---|---|
maxAge | MaxAge the latest object should be younger than defined age | Duration | |
maxSize | MaxSize of the files inside the searchPath | Size | |
minAge | MinAge the latest object should be older than defined age | Duration | |
minSize | MinSize of the files inside the searchPath | Size | |
regex | Filter files based on regular expression | regex |
e.g. to verify that database backups are being performed
postgres-backup-check.yamlapiVersion: canaries.flanksource.com/v1
kind: Canary
metadata:
name: folder-check
spec:
schedule: "@every 5m"
folder:
- name: pg-backup checks
path: /data/backups
filter:
regex: "pg-backups-.*.zip"
maxAge: 1d # require a daily backup
minSize: 10mb # the backup should be at least 10mb
Result Variables
The following fields are available in test
, display
and transform
expressions
Field | Scheme |
---|---|
Oldest | os.FileInfo |
Newest | os.FileInfo |
MinSize | os.FileInfo |
MaxSize | os.FileInfo |
SupportsTotalSize (Only true for SMB folders) | bool |
SupportsAvailableSize (Only true for SMB folders) | bool |
TotalSize | int64 |
AvailableSize | int64 |
Files | []os.FileInfo |