aboutsummaryrefslogtreecommitdiff
path: root/doc/book/connect/observability.md
diff options
context:
space:
mode:
authorAlex <alex@adnab.me>2023-01-19 12:34:14 +0000
committerAlex <alex@adnab.me>2023-01-19 12:34:14 +0000
commit18bf45061a7548f76e1c7b7b0a92b8ad1609010c (patch)
tree4309c0d1c1088b7719a14e35b9276a4fee6bf8d8 /doc/book/connect/observability.md
parentaff9c264c8455180bc4459c20ec2368d5aad0ddf (diff)
parent97bb1102193e274208ed1db7dc2a8b9445959f94 (diff)
downloadgarage-18bf45061a7548f76e1c7b7b0a92b8ad1609010c.tar.gz
garage-18bf45061a7548f76e1c7b7b0a92b8ad1609010c.zip
Merge pull request 'doc: Added observability.md.' (#477) from jpds/garage:observability-doc into main
Reviewed-on: https://git.deuxfleurs.fr/Deuxfleurs/garage/pulls/477
Diffstat (limited to 'doc/book/connect/observability.md')
-rw-r--r--doc/book/connect/observability.md57
1 files changed, 57 insertions, 0 deletions
diff --git a/doc/book/connect/observability.md b/doc/book/connect/observability.md
new file mode 100644
index 00000000..c5037fa4
--- /dev/null
+++ b/doc/book/connect/observability.md
@@ -0,0 +1,57 @@
++++
+title = "Observability"
+weight = 25
++++
+
+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:
+
+ - [Cortex](https://cortexmetrics.io/)
+ - [Thanos](https://thanos.io/)
+
+## System logs
+
+### Vector
+
+[Vector](https://vector.dev/) natively supports S3 as a
+[data sink](https://vector.dev/docs/reference/configuration/sinks/aws_s3/)
+(and [source](https://vector.dev/docs/reference/configuration/sources/aws_s3/)).
+
+This can be configured with Garage with the following:
+
+```bash
+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:
+
+```toml
+[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.