An object store can be used as data storage location for metrics, and logs which can then be leveraged for systems observability.
Metrics
Prometheus
Prometheus itself has no object store capabilities, however two projects exist which support storing metrics in an object store:
System logs
Vector
Vector natively supports S3 as a data sink (and source).
This can be configured with Garage with the following:
garage key new --name vector-system-logs
garage bucket create system-logs
garage bucket allow system-logs --read --write --key vector-system-logs
The vector.toml
can then be configured as follows:
[sources.journald]
type = "journald"
current_boot_only = true
[sinks.out]
encoding.codec = "json"
type = "aws_s3"
inputs = [ "journald" ]
bucket = "system-logs"
key_prefix = "%F/"
compression = "none"
region = "garage"
endpoint = "https://my-garage-instance.mydomain.tld"
auth.access_key_id = ""
auth.secret_access_key = ""
This is an example configuration - please refer to the Vector documentation for all configuration and transformation possibilities. Also note that Garage performs its own compression, so this should be disabled in Vector.