Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add some documentation on the log fields #463

Merged
merged 1 commit into from
Sep 13, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ docker run --rm -e "SYNCV3_SERVER=https://matrix-client.matrix.org" -e "SYNCV3_S

Download the binary for your architcture (eg. `syncv3_linux_amd64` for 64-bit AMD/Intel) from https://github.com/matrix-org/sliding-sync/releases/latest
```
$ SYNCV3_SECRET=$(cat .secret) SYNCV3_SERVER="https://matrix-client.matrix.org" SYNCV3_DB="user=$(whoami) dbname=syncv3 sslmode=disable password='DATABASE_PASSWORD_HERE'" SYNCV3_BINDADDR=0.0.0.0:8008 ./syncv3_linux_amd64
$ SYNCV3_SECRET=$(cat .secret) SYNCV3_SERVER="https://matrix-client.matrix.org" SYNCV3_DB="user=$(whoami) dbname=syncv3 sslmode=disable password='DATABASE_PASSWORD_HERE'" SYNCV3_BINDADDR=0.0.0.0:8008 ./syncv3_linux_amd64
```

Optionally also set `SYNCV3_TLS_CERT=path/to/cert.pem` and `SYNCV3_TLS_KEY=path/to/key.pem` to listen on HTTPS instead of HTTP.
Expand All @@ -119,6 +119,8 @@ Wait for the first initial v2 sync to be processed (this can take minutes!) and

Note that some clients might require that your home server advertises support for sliding-sync in the `.well-known/matrix/client` endpoint; details are in [the work-in-progress specification document](https://github.com/matrix-org/matrix-spec-proposals/blob/kegan/sync-v3/proposals/3575-sync.md#unstable-prefix).

There are some notes on the log format in [docs/log_format.md](./docs/log_format.md).

### Prometheus

To enable metrics, pass `SYNCV3_PROM=:2112` to listen on that port and expose a scraping endpoint `GET /metrics`.
Expand Down
20 changes: 20 additions & 0 deletions docs/log_format.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Log line format

Log lines may contain the following fields:

* `u`: user ID.
* `dev`: device ID.
* `p`: `pos` parameter from incoming requests.
* `q`: `pos` value from outgoing responses.
* `t`: transaction ID.
* `c`: connection ID.
* `b`: buffer summary.
* Update counts in outgoing responses, each of which are omitted if zero:
* `r`: rooms.
* `d`: to-device events.
* `ag`: global account data updates.
* `dl-c`: changed devices.
* `dl-l`: left devices.
* `sub`: room subscriptions.
* `usub`: room unsubscriptions.
* `l`: lists.
4 changes: 4 additions & 0 deletions internal/context.go
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,10 @@ func DecorateLogger(ctx context.Context, l *zerolog.Event) *zerolog.Event {
return l
}
da := d.(*data)

// NOTE: These log fields are documented in `docs/log_format.md`: remember to
// keep that document up-to-date.

if da.userID != "" {
l = l.Str("u", da.userID)
}
Expand Down
Loading